Shaka Packager SDK
Loading...
Searching...
No Matches
retired_flags.cc
1// Copyright 2017 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 retired / deprecated flags. These flags will be removed in later
8// versions.
9
10#include <packager/app/retired_flags.h>
11
12#include <cstdint>
13#include <cstdio>
14#include <string>
15
16#include <absl/flags/flag.h>
17
18ABSL_FLAG(std::string, profile, "", "This flag is deprecated. Do not use.");
19ABSL_FLAG(bool, single_segment, true, "This flag is deprecated. Do not use.");
20ABSL_FLAG(bool,
21 webm_subsample_encryption,
22 true,
23 "This flag is deprecated. Use vp9_subsample_encryption instead.");
24ABSL_FLAG(double,
25 availability_time_offset,
26 0,
27 "This flag is deprecated. Use suggested_presentation_delay "
28 "instead which can achieve similar effect.");
29ABSL_FLAG(std::string,
30 playready_key_id,
31 "",
32 "This flag is deprecated. Use --enable_raw_key_encryption with "
33 "--generate_playready_pssh to generate PlayReady PSSH.");
34ABSL_FLAG(std::string,
35 playready_key,
36 "",
37 "This flag is deprecated. Use --enable_raw_key_encryption with "
38 "--generate_playready_pssh to generate PlayReady PSSH.");
39ABSL_FLAG(bool,
40 mp4_use_decoding_timestamp_in_timeline,
41 false,
42 "This flag is deprecated. Do not use.");
43ABSL_FLAG(
44 int32_t,
45 num_subsegments_per_sidx,
46 0,
47 "This flag is deprecated. Use --generate_sidx_in_media_segments instead.");
48ABSL_FLAG(bool,
49 generate_widevine_pssh,
50 false,
51 "This flag is deprecated. Use --protection_systems instead.");
52ABSL_FLAG(bool,
53 generate_playready_pssh,
54 false,
55 "This flag is deprecated. Use --protection_systems instead.");
56ABSL_FLAG(bool,
57 generate_common_pssh,
58 false,
59 "This flag is deprecated. Use --protection_systems instead.");
60ABSL_FLAG(bool,
61 generate_static_mpd,
62 false,
63 "This flag is deprecated. Use --generate_static_live_mpd instead.");
64
65// The current gflags library does not provide a way to check whether a flag is
66// set in command line. If a flag has a different value to its default value,
67// the flag must have been set. It is possible that the flag is set to the same
68// value as its default value though.
69bool InformRetiredStringFlag(const char* flagname, const std::string& value) {
70 if (!value.empty())
71 fprintf(stderr, "WARNING: %s is deprecated and ignored.\n", flagname);
72 return true;
73}
74
75bool InformRetiredDefaultTrueFlag(const char* flagname, bool value) {
76 if (!value)
77 fprintf(stderr, "WARNING: %s is deprecated and ignored.\n", flagname);
78 return true;
79}
80
81bool InformRetiredDefaultFalseFlag(const char* flagname, bool value) {
82 if (value)
83 fprintf(stderr, "WARNING: %s is deprecated and ignored.\n", flagname);
84 return true;
85}
86
87bool InformRetiredDefaultDoubleFlag(const char* flagname, double value) {
88 if (value != 0)
89 fprintf(stderr, "WARNING: %s is deprecated and ignored.\n", flagname);
90 return true;
91}
92
93bool InformRetiredDefaultInt32Flag(const char* flagname, int32_t value) {
94 if (value != 0)
95 fprintf(stderr, "WARNING: %s is deprecated and ignored.\n", flagname);
96 return true;
97}
98
99bool InformRetiredPsshGenerationFlag(const char* flagname, bool value) {
100 if (value) {
101 fprintf(stderr,
102 "WARNING: %s is deprecated and ignored. Please switch to "
103 "--protection_systems.\n",
104 flagname);
105 }
106 return true;
107}
108
109bool InformRetiredGenerateStaticMpdFlag(const char* flagname, bool value) {
110 if (value) {
111 fprintf(stderr,
112 "WARNING: %s is deprecated and ignored. Please switch to "
113 "--generate_static_live_mpd.\n",
114 flagname);
115 }
116 return true;
117}
118
119namespace shaka {
120bool ValidateRetiredFlags() {
121 bool success = true;
122
123 auto profile = absl::GetFlag(FLAGS_profile);
124 if (!InformRetiredStringFlag("profile", profile)) {
125 success = false;
126 }
127
128 auto single_segment = absl::GetFlag(FLAGS_single_segment);
129 if (!InformRetiredDefaultTrueFlag("single_segment", single_segment)) {
130 success = false;
131 }
132 auto webm_subsample_encryption =
133 absl::GetFlag(FLAGS_webm_subsample_encryption);
134 if (!InformRetiredDefaultTrueFlag("webm_subsample_encryption",
135 webm_subsample_encryption)) {
136 success = false;
137 }
138 auto availability_time_offset = absl::GetFlag(FLAGS_availability_time_offset);
139 if (!InformRetiredDefaultDoubleFlag("availability_time_offset",
140 availability_time_offset)) {
141 success = false;
142 }
143 auto playready_key_id = absl::GetFlag(FLAGS_playready_key_id);
144 if (!InformRetiredStringFlag("playready_key_id", playready_key_id)) {
145 success = false;
146 }
147 auto playready_key = absl::GetFlag(FLAGS_playready_key);
148 if (!InformRetiredStringFlag("playready_key", playready_key)) {
149 success = false;
150 }
151 auto mp4_use_decoding_timestamp_in_timeline =
152 absl::GetFlag(FLAGS_mp4_use_decoding_timestamp_in_timeline);
153 if (!InformRetiredDefaultFalseFlag("mp4_use_decoding_timestamp_in_timeline",
154 mp4_use_decoding_timestamp_in_timeline)) {
155 success = false;
156 }
157 auto num_subsegments_per_sidx = absl::GetFlag(FLAGS_num_subsegments_per_sidx);
158 if (!InformRetiredDefaultInt32Flag("num_subsegments_per_sidx",
159 num_subsegments_per_sidx)) {
160 success = false;
161 }
162 auto generate_widevine_pssh = absl::GetFlag(FLAGS_generate_widevine_pssh);
163 if (!InformRetiredPsshGenerationFlag("generate_widevine_pssh",
164 generate_widevine_pssh)) {
165 success = false;
166 }
167 auto generate_playready_pssh = absl::GetFlag(FLAGS_generate_playready_pssh);
168 if (!InformRetiredPsshGenerationFlag("generate_playready_pssh",
169 generate_playready_pssh)) {
170 success = false;
171 }
172 auto generate_common_pssh = absl::GetFlag(FLAGS_generate_common_pssh);
173 if (!InformRetiredPsshGenerationFlag("generate_common_pssh",
174 generate_common_pssh)) {
175 success = false;
176 }
177 auto generate_static_mpd = absl::GetFlag(FLAGS_generate_static_mpd);
178 if (!InformRetiredGenerateStaticMpdFlag("generate_static_mpd",
179 generate_static_mpd)) {
180 success = false;
181 }
182
183 return success;
184}
185} // namespace shaka
All the methods that are virtual are virtual for mocking.