summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJohn Stebbins <[email protected]>2017-11-09 13:43:53 -0800
committerGitHub <[email protected]>2017-11-09 13:43:53 -0800
commit65597ee7f4bfa11838d815fceb6bc6dd24150c1f (patch)
treed044e1fb014797b4526508d4d423194079d746a5 /test
parent86d6345771e3b2fb22255620aa91cf77fdf15f10 (diff)
Add adaptive streaming support (#972)
"Adaptive streaming" allows changing video parameters mid-stream at IDR boundaries. Such changes require new SPS and PPS NALs at the IDR. MP4 supports this with 'avc3' and 'hev1' sample entry types.
Diffstat (limited to 'test')
-rw-r--r--test/test.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/test.c b/test/test.c
index da1f07c2e..f2ab5ab93 100644
--- a/test/test.c
+++ b/test/test.c
@@ -59,6 +59,7 @@
/* Options */
static int debug = HB_DEBUG_ALL;
static int json = 0;
+static int inline_parameter_sets = -1;
static int align_av_start = -1;
static int dvdnav = 1;
static char * input = NULL;
@@ -1358,6 +1359,9 @@ static void ShowHelp()
" --align-av Add audio silence or black video frames to start\n"
" of streams so that all streams start at exactly\n"
" the same time\n"
+" --inline-parameter-sets Create adaptive streaming compatible output.\n"
+" Inserts parameter sets (SPS and PPS) inline\n"
+" in the video stream before each IDR.\n"
"\n"
"\n"
"Video Options ----------------------------------------------------------------\n"
@@ -2130,6 +2134,8 @@ static int ParseOptions( int argc, char ** argv )
{ "angle", required_argument, NULL, ANGLE },
{ "markers", optional_argument, NULL, 'm' },
{ "no-markers", no_argument, &chapter_markers, 0 },
+ { "inline-parameter-sets", no_argument, &inline_parameter_sets, 1 },
+ { "no-inline-parameter-sets", no_argument, &inline_parameter_sets, 0 },
{ "align-av", no_argument, &align_av_start, 1 },
{ "no-align-av", no_argument, &align_av_start, 0 },
{ "audio-lang-list", required_argument, NULL, AUDIO_LANG_LIST },
@@ -3371,6 +3377,11 @@ static hb_dict_t * PreparePreset(const char *preset_name)
{
hb_dict_set(preset, "AlignAVStart", hb_value_bool(align_av_start));
}
+ if (inline_parameter_sets != -1)
+ {
+ hb_dict_set(preset, "InlineParameterSets",
+ hb_value_bool(inline_parameter_sets));
+ }
hb_value_array_t *subtitle_lang_array;
subtitle_lang_array = hb_dict_get(preset, "SubtitleLanguageList");
if (subtitle_lang_array == NULL)