[FFmpeg-devel] [PATCH v2 1/1] libavformat/dashenc: Option to set timeout for socket I/O operation

Jeyapal, Karthick kjeyapal at akamai.com
Sun Mar 18 09:24:22 EET 2018



On 3/5/18 3:07 PM, rpatagar at akamai.com wrote:
> From: 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 3a63da7..cb75c26 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 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 79d63e5..9feb4f1 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -117,6 +117,7 @@ typedef struct DASHContext {
>      AVIOContext *mpd_out;
>      AVIOContext *m3u8_out;
>      int streaming;
> +    int64_t 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,
> @@ -1440,6 +1443,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 for socket I/O operations", OFFSET(timeout), AV_OPT_TYPE_DURATION, { .i64 = -1 }, -1, INT_MAX, .flags = E },
>      { NULL },
>  };
>  
Pushed





More information about the ffmpeg-devel mailing list