Add --profile to set default options to ensure comformance
Change-Id: If114b9f10e029cb8ca53ae64c865a46558d1daca
This commit is contained in:
parent
2af92f67d2
commit
e60156a3dd
|
@ -8,10 +8,14 @@
|
||||||
|
|
||||||
#include "app/muxer_flags.h"
|
#include "app/muxer_flags.h"
|
||||||
|
|
||||||
|
DEFINE_string(profile,
|
||||||
|
"",
|
||||||
|
"Specify the target DASH profile: on-demand or live. This will "
|
||||||
|
"set proper option values to ensure conformance to the desired "
|
||||||
|
"profile.");
|
||||||
DEFINE_double(clear_lead,
|
DEFINE_double(clear_lead,
|
||||||
10.0f,
|
10.0f,
|
||||||
"Clear lead in seconds if encryption is enabled.");
|
"Clear lead in seconds if encryption is enabled.");
|
||||||
|
|
||||||
DEFINE_bool(single_segment,
|
DEFINE_bool(single_segment,
|
||||||
true,
|
true,
|
||||||
"Generate a single segment for the media presentation. This option "
|
"Generate a single segment for the media presentation. This option "
|
||||||
|
|
|
@ -11,8 +11,8 @@
|
||||||
|
|
||||||
#include <gflags/gflags.h>
|
#include <gflags/gflags.h>
|
||||||
|
|
||||||
|
DECLARE_string(profile);
|
||||||
DECLARE_double(clear_lead);
|
DECLARE_double(clear_lead);
|
||||||
|
|
||||||
DECLARE_bool(single_segment);
|
DECLARE_bool(single_segment);
|
||||||
DECLARE_double(segment_duration);
|
DECLARE_double(segment_duration);
|
||||||
DECLARE_bool(segment_sap_aligned);
|
DECLARE_bool(segment_sap_aligned);
|
||||||
|
|
|
@ -210,6 +210,9 @@ bool RunPackager(const StringVector& stream_descriptors) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!AssignFlagsFromProfile())
|
||||||
|
return false;
|
||||||
|
|
||||||
// Get basic muxer options.
|
// Get basic muxer options.
|
||||||
MuxerOptions muxer_options;
|
MuxerOptions muxer_options;
|
||||||
if (!GetMuxerOptions(&muxer_options))
|
if (!GetMuxerOptions(&muxer_options))
|
||||||
|
|
|
@ -86,6 +86,35 @@ scoped_ptr<EncryptionKeySource> CreateEncryptionKeySource() {
|
||||||
return encryption_key_source.Pass();
|
return encryption_key_source.Pass();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AssignFlagsFromProfile() {
|
||||||
|
bool single_segment = FLAGS_single_segment;
|
||||||
|
bool normalize_pts = FLAGS_normalize_presentation_timestamp;
|
||||||
|
if (FLAGS_profile == "on-demand") {
|
||||||
|
single_segment = true;
|
||||||
|
normalize_pts = true;
|
||||||
|
} else if (FLAGS_profile == "live") {
|
||||||
|
single_segment = false;
|
||||||
|
normalize_pts = false;
|
||||||
|
} else if (FLAGS_profile != "") {
|
||||||
|
fprintf(stderr, "ERROR: --profile '%s' is not supported.\n",
|
||||||
|
FLAGS_profile.c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FLAGS_single_segment != single_segment) {
|
||||||
|
FLAGS_single_segment = single_segment;
|
||||||
|
fprintf(stdout, "Profile %s: set --single_segment to %s.\n",
|
||||||
|
FLAGS_profile.c_str(), single_segment ? "true" : "false");
|
||||||
|
}
|
||||||
|
if (FLAGS_normalize_presentation_timestamp != normalize_pts) {
|
||||||
|
FLAGS_normalize_presentation_timestamp = normalize_pts;
|
||||||
|
fprintf(stdout,
|
||||||
|
"Profile %s: set --normalize_presentation_timestamp to %s.\n",
|
||||||
|
FLAGS_profile.c_str(), normalize_pts ? "true" : "false");
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool GetMuxerOptions(MuxerOptions* muxer_options) {
|
bool GetMuxerOptions(MuxerOptions* muxer_options) {
|
||||||
DCHECK(muxer_options);
|
DCHECK(muxer_options);
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,9 @@ void DumpStreamInfo(const std::vector<MediaStream*>& streams);
|
||||||
/// encryption is not required.
|
/// encryption is not required.
|
||||||
scoped_ptr<EncryptionKeySource> CreateEncryptionKeySource();
|
scoped_ptr<EncryptionKeySource> CreateEncryptionKeySource();
|
||||||
|
|
||||||
|
/// Set flags according to profile.
|
||||||
|
bool AssignFlagsFromProfile();
|
||||||
|
|
||||||
/// Fill MuxerOptions members using provided command line options.
|
/// Fill MuxerOptions members using provided command line options.
|
||||||
bool GetMuxerOptions(MuxerOptions* muxer_options);
|
bool GetMuxerOptions(MuxerOptions* muxer_options);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue