aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavindra2018-03-05 15:07:26 +0530
committerKarthick Jeyapal2018-03-18 12:36:28 +0530
commit99230b7ef874129ffd3ccca0e799c66970258203 (patch)
tree0844441c9a328cbf127890009cfddab29302155e
parent86c7d8df95c15625ee582254e92f0d494e7d2d9f (diff)
libavformat/dashenc: Option to set timeout for socket I/O operation
-rw-r--r--doc/muxers.texi2
-rw-r--r--libavformat/dashenc.c4
2 files changed, 6 insertions, 0 deletions
diff --git a/doc/muxers.texi b/doc/muxers.texi
index 3a63da7fe7..cb75c261c5 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.
+@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 79d63e52d4..9feb4f1afb 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 },
};