Shaka Packager SDK
mpd_flags.cc
1 // Copyright 2014 Google LLC. 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 ABSL_FLAG(bool,
12  generate_static_live_mpd,
13  false,
14  "Set to true to generate static mpd. If segment_template is "
15  "specified in stream descriptors, shaka-packager generates dynamic "
16  "mpd by default; if this flag is enabled, shaka-packager generates "
17  "static mpd instead. Note that if segment_template is not "
18  "specified, shaka-packager always generates static mpd regardless "
19  "of the value of this flag.");
20 ABSL_FLAG(bool,
21  output_media_info,
22  false,
23  "Create a human readable format of MediaInfo. The output file name "
24  "will be the name specified by output flag, suffixed with "
25  "'.media_info'.");
26 ABSL_FLAG(std::string, mpd_output, "", "MPD output file name.");
27 ABSL_FLAG(std::string,
28  base_urls,
29  "",
30  "Comma separated BaseURLs for the MPD. The values will be added "
31  "as <BaseURL> element(s) immediately under the <MPD> element.");
32 ABSL_FLAG(double,
33  min_buffer_time,
34  2.0,
35  "Specifies, in seconds, a common duration used in the definition "
36  "of the MPD Representation data rate.");
37 ABSL_FLAG(double,
38  minimum_update_period,
39  5.0,
40  "Indicates to the player how often to refresh the media "
41  "presentation description in seconds. This value is used for "
42  "dynamic MPD only.");
43 ABSL_FLAG(double,
44  suggested_presentation_delay,
45  0.0,
46  "Specifies a delay, in seconds, to be added to the media "
47  "presentation time. This value is used for dynamic MPD only.");
48 ABSL_FLAG(std::string,
49  utc_timings,
50  "",
51  "Comma separated UTCTiming schemeIdUri and value pairs for the "
52  "MPD. This value is used for dynamic MPD only.");
53 ABSL_FLAG(bool,
54  generate_dash_if_iop_compliant_mpd,
55  true,
56  "Try to generate DASH-IF IOP compliant MPD. This is best effort "
57  "and does not guarantee compliance.");
58 ABSL_FLAG(
59  bool,
60  allow_approximate_segment_timeline,
61  false,
62  "For live profile only. "
63  "If enabled, segments with close duration (i.e. with difference less than "
64  "one sample) are considered to have the same duration. This enables MPD "
65  "generator to generate less SegmentTimeline entries. If all segments are "
66  "of the same duration except the last one, we will do further optimization "
67  "to use SegmentTemplate@duration instead and omit SegmentTimeline "
68  "completely."
69  "Ignored if $Time$ is used in segment template, since $Time$ requires "
70  "accurate Segment Timeline.");
71 ABSL_FLAG(bool,
72  allow_codec_switching,
73  false,
74  "If enabled, allow adaptive switching between different codecs, "
75  "if they have the same language, media type (audio, video etc) and "
76  "container type.");
77 ABSL_FLAG(bool,
78  include_mspr_pro_for_playready,
79  true,
80  "If enabled, PlayReady Object <mspr:pro> will be inserted into "
81  "<ContentProtection ...> element alongside with <cenc:pssh> "
82  "when using PlayReady protection system.");
83 ABSL_FLAG(bool,
84  dash_force_segment_list,
85  false,
86  "Uses SegmentList instead of SegmentBase. Use this if the "
87  "content is huge and the total number of (sub)segment references "
88  "is greater than what the sidx atom allows (65535). Currently "
89  "this flag is only supported in DASH ondemand profile.");
90 ABSL_FLAG(
91  bool,
92  low_latency_dash_mode,
93  false,
94  "If enabled, LL-DASH streaming will be used, "
95  "reducing overall latency by decoupling latency from segment duration. "
96  "Please see "
97  // clang-format off
98  "https://shaka-project.github.io/shaka-packager/html/tutorials/low_latency.html "
99  // clang-format on
100  "for more information.");