]> git.sesse.net Git - ffmpeg/commitdiff
avformat/dashenc: configuring container format options
authorVishwanath Dixit <vdixit@akamai.com>
Mon, 7 May 2018 09:58:02 +0000 (15:28 +0530)
committerKarthick Jeyapal <kjeyapal@akamai.com>
Tue, 15 May 2018 05:43:36 +0000 (11:13 +0530)
doc/muxers.texi
libavformat/dashenc.c

index 57948cfb9a7c59a42915f61aeec556ed19c7ecc8..59e20bf4267d29542aebac237abd32529b601e0f 100644 (file)
@@ -284,6 +284,10 @@ corrects that index value.
 Typically this logic is needed in live streaming use cases. The network bandwidth
 fluctuations are common during long run streaming. Each fluctuation can cause
 the segment indexes fall behind the expected real time position.
+@item -format_options @var{options_list}
+Set container format (mp4/webm) options using a @code{:} separated list of
+key=value parameters. Values containing @code{:} special characters must be
+escaped.
 @end table
 
 @anchor{framecrc}
index 1dd633365da61908466533460559620f3d4f0107..e27b61c096cf74e3fc68d6d4e95f058ecb382a08 100644 (file)
@@ -125,6 +125,7 @@ typedef struct DASHContext {
     int streaming;
     int64_t timeout;
     int index_correction;
+    char *format_options_str;
 } DASHContext;
 
 static struct codec_string {
@@ -1017,6 +1018,11 @@ static int dash_init(AVFormatContext *s)
         av_dict_free(&opts);
         os->init_start_pos = 0;
 
+        if (c->format_options_str) {
+            ret = av_dict_parse_string(&opts, c->format_options_str, "=", ":", 0);
+            if (ret < 0)
+                return ret;
+        }
         if (!strcmp(os->format_name, "mp4")) {
             if (c->streaming)
                 av_dict_set(&opts, "movflags", "frag_every_frame+dash+delay_moov", 0);
@@ -1538,6 +1544,7 @@ static const AVOption options[] = {
     { "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 },
     { "index_correction", "Enable/Disable segment index correction logic", OFFSET(index_correction), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
+    { "format_options","set list of options for the container format (mp4/webm) used for dash", OFFSET(format_options_str), AV_OPT_TYPE_STRING, {.str = NULL},  0, 0, E},
     { NULL },
 };