[FFmpeg-devel] [PATCH 1/1] libavformat/dashenc: Option to set timeout for socket I/O operation
Michael Niedermayer
michael at niedermayer.cc
Fri Mar 2 23:42:55 EET 2018
On Fri, Mar 02, 2018 at 12:27:40PM +0530, rpatagar at akamai.com wrote:
> From: Ravindra Patagar <rpatagar at akamai.com>
>
> Signed-off-by: Ravindra <rpatagar at akamai.com>
> ---
> doc/muxers.texi | 2 ++
> libavformat/dashenc.c | 4 ++++
> 2 files changed, 6 insertions(+)
>
> diff --git a/doc/muxers.texi b/doc/muxers.texi
> index e41f8c6..c456a42 100644
> --- a/doc/muxers.texi
> +++ b/doc/muxers.texi
> @@ -264,6 +264,8 @@ of the adaptation sets and a,b,c,d and e are the indices of the mapped streams.
> To map all video (or audio) streams to an AdaptationSet, "v" (or "a") can be used as stream identifier instead of IDs.
>
> When no assignment is defined, this defaults to an AdaptationSet for each stream.
> + at item -timeout @var{timeout}
> +Set timeout (in microseconds) for socket I/O operations. Applicable only for HTTP output.
> @end table
>
> @anchor{framecrc}
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index 83e0cff..3b4346d 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -117,6 +117,7 @@ typedef struct DASHContext {
> AVIOContext *mpd_out;
> AVIOContext *m3u8_out;
> int streaming;
> + int timeout;
> } DASHContext;
>
> static struct codec_string {
> @@ -269,6 +270,8 @@ static void set_http_options(AVDictionary **options, DASHContext *c)
> av_dict_set(options, "user_agent", c->user_agent, 0);
> if (c->http_persistent)
> av_dict_set_int(options, "multiple_requests", 1, 0);
> + if (c->timeout >= 0)
> + av_dict_set_int(options, "timeout", c->timeout, 0);
> }
>
> static void get_hls_playlist_name(char *playlist_name, int string_size,
> @@ -1418,6 +1421,7 @@ static const AVOption options[] = {
> { "http_persistent", "Use persistent HTTP connections", OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, E },
> { "hls_playlist", "Generate HLS playlist files(master.m3u8, media_%d.m3u8)", OFFSET(hls_playlist), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
> { "streaming", "Enable/Disable streaming mode of output. Each frame will be moof fragment", OFFSET(streaming), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
> + { "timeout", "set timeout (in microseconds) for socket I/O operations", OFFSET(timeout), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, .flags = E },
> { NULL },
newly added time* options should use AV_OPT_TYPE_DURATION for consistency
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Old school: Use the lowest level language in which you can solve the problem
conveniently.
New school: Use the highest level language in which the latest supercomputer
can solve the problem without the user falling asleep waiting.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20180302/84bdc58f/attachment.sig>
More information about the ffmpeg-devel
mailing list