Shaka Packager SDK
mpd_flags.cc
1 // Copyright 2014 Google Inc. All rights reserved.
2 //
3 // Use of this source code is governed by a BSD-style
4 // license that can be found in the LICENSE file or at
5 // https://developers.google.com/open-source/licenses/bsd
6 //
7 // Defines Mpd flags.
8 
9 #include "packager/app/mpd_flags.h"
10 
11 DEFINE_bool(generate_static_live_mpd,
12  false,
13  "Set to true to generate static mpd. If segment_template is "
14  "specified in stream descriptors, shaka-packager generates dynamic "
15  "mpd by default; if this flag is enabled, shaka-packager generates "
16  "static mpd instead. Note that if segment_template is not "
17  "specified, shaka-packager always generates static mpd regardless "
18  "of the value of this flag.");
19 DEFINE_bool(output_media_info,
20  false,
21  "Create a human readable format of MediaInfo. The output file name "
22  "will be the name specified by output flag, suffixed with "
23  "'.media_info'.");
24 DEFINE_string(mpd_output, "", "MPD output file name.");
25 DEFINE_string(base_urls,
26  "",
27  "Comma separated BaseURLs for the MPD. The values will be added "
28  "as <BaseURL> element(s) immediately under the <MPD> element.");
29 DEFINE_double(min_buffer_time,
30  2.0,
31  "Specifies, in seconds, a common duration used in the definition "
32  "of the MPD Representation data rate.");
33 DEFINE_double(minimum_update_period,
34  5.0,
35  "Indicates to the player how often to refresh the media "
36  "presentation description in seconds. This value is used for "
37  "dynamic MPD only.");
38 DEFINE_double(suggested_presentation_delay,
39  0.0,
40  "Specifies a delay, in seconds, to be added to the media "
41  "presentation time. This value is used for dynamic MPD only.");
42 DEFINE_string(utc_timings,
43  "",
44  "Comma separated UTCTiming schemeIdUri and value pairs for the "
45  "MPD. This value is used for dynamic MPD only.");
46 DEFINE_bool(generate_dash_if_iop_compliant_mpd,
47  true,
48  "Try to generate DASH-IF IOP compliant MPD. This is best effort "
49  "and does not guarantee compliance.");
50 DEFINE_bool(
51  allow_approximate_segment_timeline,
52  false,
53  "For live profile only. "
54  "If enabled, segments with close duration (i.e. with difference less than "
55  "one sample) are considered to have the same duration. This enables MPD "
56  "generator to generate less SegmentTimeline entries. If all segments are "
57  "of the same duration except the last one, we will do further optimization "
58  "to use SegmentTemplate@duration instead and omit SegmentTimeline "
59  "completely."
60  "Ignored if $Time$ is used in segment template, since $Time$ requires "
61  "accurate Segment Timeline.");
62 DEFINE_bool(allow_codec_switching,
63  false,
64  "If enabled, allow adaptive switching between different codecs, "
65  "if they have the same language, media type (audio, video etc) and "
66  "container type.");
67 DEFINE_bool(include_mspr_pro_for_playready,
68  true,
69  "If enabled, PlayReady Object <mspr:pro> will be inserted into "
70  "<ContentProtection ...> element alongside with <cenc:pssh> "
71  "when using PlayReady protection system.");
72 DEFINE_bool(dash_force_segment_list,
73  false,
74  "Uses SegmentList instead of SegmentBase. Use this if the "
75  "content is huge and the total number of (sub)segment references "
76  "is greater than what the sidx atom allows (65535). Currently "
77  "this flag is only supported in DASH ondemand profile.");