Change --generate_static_mpd to --generate_static_live_mpd (#672)

This commit is contained in:
Tomohiro IKEDA 2019-11-16 04:53:47 +09:00 committed by Kongqun Yang
parent 981515e6c8
commit 0b53b40428
8 changed files with 26 additions and 13 deletions

View File

@ -1,7 +1,7 @@
DASH options DASH options
^^^^^^^^^^^^ ^^^^^^^^^^^^
--generate_static_mpd --generate_static_live_mpd
If enabled, generates static mpd. If segment_template is specified in If enabled, generates static mpd. If segment_template is specified in
stream descriptors, shaka-packager generates dynamic mpd by default; if stream descriptors, shaka-packager generates dynamic mpd by default; if

View File

@ -34,7 +34,7 @@ respectively.
'in=h264_main_720p_3000.mp4,stream=video,init_segment=h264_720p/init.mp4,segment_template=h264_720p/$Number$.m4s' \ 'in=h264_main_720p_3000.mp4,stream=video,init_segment=h264_720p/init.mp4,segment_template=h264_720p/$Number$.m4s' \
'in=h264_high_1080p_6000.mp4,stream=video,init_segment=h264_1080p/init.mp4,segment_template=h264_1080p/$Number$.m4s' \ 'in=h264_high_1080p_6000.mp4,stream=video,init_segment=h264_1080p/init.mp4,segment_template=h264_1080p/$Number$.m4s' \
--ad_cues 600;1800;3000 \ --ad_cues 600;1800;3000 \
--generate_static_mpd --mpd_output h264.mpd --generate_static_live_mpd --mpd_output h264.mpd
* DASH with on-demand profile:: * DASH with on-demand profile::

View File

@ -71,7 +71,7 @@ genereated with the previous command.
'in=h264_main_480p_1000.mp4,stream=video,init_segment=h264_480p/init.mp4,segment_template=h264_480p/$Number$.m4s' \ 'in=h264_main_480p_1000.mp4,stream=video,init_segment=h264_480p/init.mp4,segment_template=h264_480p/$Number$.m4s' \
'in=h264_main_720p_3000.mp4,stream=video,init_segment=h264_720p/init.mp4,segment_template=h264_720p/$Number$.m4s' \ 'in=h264_main_720p_3000.mp4,stream=video,init_segment=h264_720p/init.mp4,segment_template=h264_720p/$Number$.m4s' \
'in=h264_high_1080p_6000.mp4,stream=video,init_segment=h264_1080p/init.mp4,segment_template=h264_1080p/$Number$.m4s' \ 'in=h264_high_1080p_6000.mp4,stream=video,init_segment=h264_1080p/init.mp4,segment_template=h264_1080p/$Number$.m4s' \
--generate_static_mpd --mpd_output h264.mpd --generate_static_live_mpd --mpd_output h264.mpd
The above packaging command creates five groups of segments (each with an init The above packaging command creates five groups of segments (each with an init
segment and a series of media segments) for the five streams and a manifest, segment and a series of media segments) for the five streams and a manifest,

View File

@ -8,8 +8,7 @@
#include "packager/app/mpd_flags.h" #include "packager/app/mpd_flags.h"
// TODO(kqyang): Rename to generate_static_live_mpd. DEFINE_bool(generate_static_live_mpd,
DEFINE_bool(generate_static_mpd,
false, false,
"Set to true to generate static mpd. If segment_template is " "Set to true to generate static mpd. If segment_template is "
"specified in stream descriptors, shaka-packager generates dynamic " "specified in stream descriptors, shaka-packager generates dynamic "

View File

@ -11,7 +11,7 @@
#include <gflags/gflags.h> #include <gflags/gflags.h>
DECLARE_bool(generate_static_mpd); DECLARE_bool(generate_static_live_mpd);
DECLARE_bool(output_media_info); DECLARE_bool(output_media_info);
DECLARE_string(mpd_output); DECLARE_string(mpd_output);
DECLARE_string(base_urls); DECLARE_string(base_urls);

View File

@ -452,7 +452,7 @@ base::Optional<PackagingParams> GetPackagingParams() {
mpd_params.default_language = FLAGS_default_language; mpd_params.default_language = FLAGS_default_language;
mpd_params.default_text_language = FLAGS_default_text_language; mpd_params.default_text_language = FLAGS_default_text_language;
mpd_params.generate_static_live_mpd = FLAGS_generate_static_mpd; mpd_params.generate_static_live_mpd = FLAGS_generate_static_live_mpd;
mpd_params.generate_dash_if_iop_compliant_mpd = mpd_params.generate_dash_if_iop_compliant_mpd =
FLAGS_generate_dash_if_iop_compliant_mpd; FLAGS_generate_dash_if_iop_compliant_mpd;
mpd_params.allow_approximate_segment_timeline = mpd_params.allow_approximate_segment_timeline =

View File

@ -44,6 +44,9 @@ DEFINE_bool(generate_playready_pssh,
DEFINE_bool(generate_common_pssh, DEFINE_bool(generate_common_pssh,
false, false,
"This flag is deprecated. Use --protection_systems instead."); "This flag is deprecated. Use --protection_systems instead.");
DEFINE_bool(generate_static_mpd,
false,
"This flag is deprecated. Use --generate_static_live_mpd instead.");
// The current gflags library does not provide a way to check whether a flag is // The current gflags library does not provide a way to check whether a flag is
// set in command line. If a flag has a different value to its default value, // set in command line. If a flag has a different value to its default value,
@ -89,6 +92,16 @@ bool InformRetiredPsshGenerationFlag(const char* flagname, bool value) {
return true; return true;
} }
bool InformRetiredGenerateStaticMpdFlag(const char* flagname, bool value) {
if (value) {
fprintf(stderr,
"WARNING: %s is deprecated and ignored. Please switch to "
"--generate_static_live_mpd.\n",
flagname);
}
return true;
}
DEFINE_validator(profile, &InformRetiredStringFlag); DEFINE_validator(profile, &InformRetiredStringFlag);
DEFINE_validator(single_segment, &InformRetiredDefaultTrueFlag); DEFINE_validator(single_segment, &InformRetiredDefaultTrueFlag);
DEFINE_validator(webm_subsample_encryption, &InformRetiredDefaultTrueFlag); DEFINE_validator(webm_subsample_encryption, &InformRetiredDefaultTrueFlag);
@ -101,3 +114,4 @@ DEFINE_validator(num_subsegments_per_sidx, &InformRetiredDefaultInt32Flag);
DEFINE_validator(generate_widevine_pssh, &InformRetiredPsshGenerationFlag); DEFINE_validator(generate_widevine_pssh, &InformRetiredPsshGenerationFlag);
DEFINE_validator(generate_playready_pssh, &InformRetiredPsshGenerationFlag); DEFINE_validator(generate_playready_pssh, &InformRetiredPsshGenerationFlag);
DEFINE_validator(generate_common_pssh, &InformRetiredPsshGenerationFlag); DEFINE_validator(generate_common_pssh, &InformRetiredPsshGenerationFlag);
DEFINE_validator(generate_static_mpd, &InformRetiredGenerateStaticMpdFlag);

View File

@ -431,7 +431,7 @@ class PackagerAppTest(unittest.TestCase):
time_shift_buffer_depth=0.0, time_shift_buffer_depth=0.0,
preserved_segments_outside_live_window=0, preserved_segments_outside_live_window=0,
utc_timings=None, utc_timings=None,
generate_static_mpd=False, generate_static_live_mpd=False,
ad_cues=None, ad_cues=None,
default_language=None, default_language=None,
segment_duration=1.0, segment_duration=1.0,
@ -508,8 +508,8 @@ class PackagerAppTest(unittest.TestCase):
if utc_timings: if utc_timings:
flags += ['--utc_timings', utc_timings] flags += ['--utc_timings', utc_timings]
if generate_static_mpd: if generate_static_live_mpd:
flags += ['--generate_static_mpd'] flags += ['--generate_static_live_mpd']
if ad_cues: if ad_cues:
flags += ['--ad_cues', ad_cues] flags += ['--ad_cues', ad_cues]
@ -1091,7 +1091,7 @@ class PackagerFunctionalTest(PackagerAppTest):
output_format='mp4') output_format='mp4')
] ]
flags = self._GetFlags(output_dash=True, output_hls=True, flags = self._GetFlags(output_dash=True, output_hls=True,
generate_static_mpd=True, ad_cues='1.5') generate_static_live_mpd=True, ad_cues='1.5')
self.assertPackageSuccess(streams, flags) self.assertPackageSuccess(streams, flags)
# Mpd cannot be validated right now since we don't generate determinstic # Mpd cannot be validated right now since we don't generate determinstic
# mpd with multiple inputs due to thread racing. # mpd with multiple inputs due to thread racing.
@ -1442,7 +1442,7 @@ class PackagerFunctionalTest(PackagerAppTest):
def testLiveStaticProfile(self): def testLiveStaticProfile(self):
self.assertPackageSuccess( self.assertPackageSuccess(
self._GetStreams(['audio', 'video'], segmented=True), self._GetStreams(['audio', 'video'], segmented=True),
self._GetFlags(output_dash=True, generate_static_mpd=True)) self._GetFlags(output_dash=True, generate_static_live_mpd=True))
self._CheckTestResults('live-static-profile') self._CheckTestResults('live-static-profile')
def testLiveStaticProfileWithTimeInSegmentName(self): def testLiveStaticProfileWithTimeInSegmentName(self):
@ -1450,7 +1450,7 @@ class PackagerFunctionalTest(PackagerAppTest):
self._GetStreams(['audio', 'video'], self._GetStreams(['audio', 'video'],
segmented=True, segmented=True,
using_time_specifier=True), using_time_specifier=True),
self._GetFlags(output_dash=True, generate_static_mpd=True)) self._GetFlags(output_dash=True, generate_static_live_mpd=True))
self._CheckTestResults('live-static-profile-with-time-in-segment-name') self._CheckTestResults('live-static-profile-with-time-in-segment-name')
def testLiveProfileAndEncryption(self): def testLiveProfileAndEncryption(self):