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