shaka-player 3.2.7 → 3.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/.github/workflows/release-please.yaml +3 -2
  2. package/AUTHORS +1 -1
  3. package/CHANGELOG.md +35 -0
  4. package/CONTRIBUTORS +4 -1
  5. package/README.md +20 -6
  6. package/demo/common/assets.js +1 -1
  7. package/demo/demo.less +0 -1
  8. package/demo/index.html +0 -2
  9. package/demo/main.js +3 -3
  10. package/dist/controls.css +2 -2
  11. package/dist/controls.css.map +1 -1
  12. package/dist/demo.compiled.debug.js +3 -3
  13. package/dist/demo.compiled.debug.map +2 -2
  14. package/dist/demo.compiled.js +3 -3
  15. package/dist/demo.compiled.map +2 -2
  16. package/dist/demo.css +1 -1
  17. package/dist/demo.css.map +1 -1
  18. package/dist/deps.js +3 -3
  19. package/dist/locales.js +27 -27
  20. package/dist/receiver.compiled.debug.js +1 -1
  21. package/dist/receiver.compiled.debug.map +1 -1
  22. package/dist/receiver.compiled.js +1 -1
  23. package/dist/receiver.compiled.map +1 -1
  24. package/dist/shaka-player.compiled.d.ts +235 -224
  25. package/dist/shaka-player.compiled.debug.d.ts +235 -224
  26. package/dist/shaka-player.compiled.debug.externs.js +48 -37
  27. package/dist/shaka-player.compiled.debug.js +176 -170
  28. package/dist/shaka-player.compiled.debug.map +4 -4
  29. package/dist/shaka-player.compiled.externs.js +48 -37
  30. package/dist/shaka-player.compiled.js +763 -760
  31. package/dist/shaka-player.compiled.map +4 -4
  32. package/dist/shaka-player.ui.d.ts +277 -266
  33. package/dist/shaka-player.ui.debug.d.ts +277 -266
  34. package/dist/shaka-player.ui.debug.externs.js +48 -37
  35. package/dist/shaka-player.ui.debug.js +156 -151
  36. package/dist/shaka-player.ui.debug.map +4 -4
  37. package/dist/shaka-player.ui.externs.js +48 -37
  38. package/dist/shaka-player.ui.js +868 -865
  39. package/dist/shaka-player.ui.map +4 -4
  40. package/docs/tutorials/welcome.md +6 -3
  41. package/lib/abr/simple_abr_manager.js +2 -1
  42. package/lib/dash/dash_parser.js +5 -0
  43. package/lib/hls/hls_parser.js +28 -9
  44. package/lib/media/drm_engine.js +3 -0
  45. package/lib/media/presentation_timeline.js +24 -1
  46. package/lib/player.js +1 -1
  47. package/lib/polyfill/media_capabilities.js +1 -0
  48. package/lib/polyfill/videoplaybackquality.js +3 -1
  49. package/lib/util/mime_utils.js +14 -5
  50. package/lib/util/platform.js +41 -1
  51. package/lib/util/stream_utils.js +1 -0
  52. package/lib/util/string_utils.js +56 -14
  53. package/maintained-branches.md +15 -0
  54. package/package.json +6 -5
  55. package/test/hls/hls_live_unit.js +60 -7
  56. package/ui/less/containers.less +1 -1
  57. package/ui/less/general.less +1 -1
  58. package/ui/less/range_elements.less +1 -0
  59. package/.github/pull_request_template.md +0 -38
  60. package/app-engine/README.md +0 -9
  61. package/app-engine/demo-version-index/README.md +0 -14
  62. package/app-engine/demo-version-index/app.yaml +0 -2
  63. package/app-engine/demo-version-index/main.py +0 -162
  64. package/app-engine/demo-version-index/requirements.txt +0 -6
  65. package/app-engine/demo-version-index/templates/index.html +0 -114
  66. package/app-engine/shaka-player-demo/README.md +0 -18
  67. package/app-engine/shaka-player-demo/app.yaml +0 -61
  68. package/app-engine/shaka-player-demo/main.py +0 -95
  69. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  70. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  71. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  72. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  73. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  74. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  75. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  76. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  77. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  78. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  79. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  80. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  81. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  82. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  83. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  84. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  85. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  86. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  87. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  88. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  89. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  90. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  91. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  92. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  93. package/app-engine/shaka-player-demo/posters/sources.txt +0 -46
  94. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  95. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  96. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  97. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  98. package/app-engine/shaka-player-demo/posters.py +0 -110
  99. package/app-engine/shaka-player-demo/requirements.txt +0 -5
  100. package/app-engine/shaka-player-demo/time.txt +0 -1
  101. package/build/README.md +0 -127
  102. package/build/__init__.py +0 -0
  103. package/build/all.py +0 -150
  104. package/build/apps.py +0 -186
  105. package/build/build.py +0 -392
  106. package/build/check.py +0 -354
  107. package/build/checkversion.py +0 -84
  108. package/build/compiler.py +0 -513
  109. package/build/conformance.textproto +0 -321
  110. package/build/docker/Dockerfile +0 -20
  111. package/build/docker/docker-compose.yml +0 -10
  112. package/build/docs.py +0 -54
  113. package/build/eslint-plugin-shaka-rules/arg-comment-spacing.js +0 -72
  114. package/build/eslint-plugin-shaka-rules/index.js +0 -24
  115. package/build/eslint-plugin-shaka-rules/package.json +0 -7
  116. package/build/eslint-plugin-shaka-rules/private.js +0 -109
  117. package/build/gendeps.py +0 -71
  118. package/build/generateExterns.js +0 -867
  119. package/build/generateLocalizations.py +0 -262
  120. package/build/generateTsDefs.py +0 -137
  121. package/build/install-linux-prereqs.sh +0 -136
  122. package/build/license-header +0 -5
  123. package/build/misspellings.txt +0 -38
  124. package/build/pixelsChanged.js +0 -35
  125. package/build/shaka-lab.yaml +0 -163
  126. package/build/shakaBuildHelpers.py +0 -356
  127. package/build/stats.py +0 -816
  128. package/build/subprocessWindowsPatch.py +0 -103
  129. package/build/test.py +0 -541
  130. package/build/types/ads +0 -8
  131. package/build/types/cast +0 -6
  132. package/build/types/cea +0 -13
  133. package/build/types/complete +0 -9
  134. package/build/types/core +0 -106
  135. package/build/types/dash +0 -8
  136. package/build/types/hls +0 -9
  137. package/build/types/manifests +0 -5
  138. package/build/types/networking +0 -6
  139. package/build/types/offline +0 -21
  140. package/build/types/polyfill +0 -19
  141. package/build/types/text +0 -11
  142. package/build/types/ui +0 -37
  143. package/build/updateScreenshots.py +0 -85
  144. package/build/wrapper.template.js +0 -52
package/build/check.py DELETED
@@ -1,354 +0,0 @@
1
- #!/usr/bin/env python
2
- #
3
- # Copyright 2016 Google LLC
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- """This is used to validate that the library is correct.
18
-
19
- This checks:
20
- * All files in lib/ appear when compiling +@complete
21
- * Runs a compiler pass over the test code to check for type errors
22
- * Run the linter to check for style violations.
23
- """
24
-
25
- import argparse
26
- import ast
27
- import logging
28
- import os
29
- import re
30
-
31
- import build
32
- import compiler
33
- import shakaBuildHelpers
34
-
35
-
36
- _CHECKS = []
37
-
38
- def _Check(name):
39
- """A decorator for checks."""
40
- def decorator(func):
41
- _CHECKS.append((name, func))
42
- return func
43
- return decorator
44
-
45
- def complete_build_files():
46
- """Returns a complete set of build files."""
47
- complete = build.Build()
48
- # Normally we don't need to include @core, but because we look at the build
49
- # object directly, we need to include it here. When using main(), it will
50
- # call addCore which will ensure core is included.
51
- if not complete.parse_build(['+@complete', '+@core'], os.getcwd()):
52
- logging.error('Error parsing complete build')
53
- return False
54
- return complete.include
55
-
56
- def get_lint_files():
57
- """Returns the absolute paths to all the files to run the linter over."""
58
- base = shakaBuildHelpers.get_source_base()
59
- get = shakaBuildHelpers.get_all_js_files
60
- main_sources = (
61
- get('lib') +
62
- # TODO: get third_party/closure-uri in compliance and then lint it.
63
- # get('third_party') +
64
- get('ui') +
65
- get('externs') +
66
- get('test') +
67
- get('demo') +
68
- get('build'))
69
- main_sources.remove(os.path.join(base, 'build', 'wrapper.template.js'))
70
- tool_sources = [
71
- os.path.join(base, '.eslintrc.js'),
72
- os.path.join(base, 'docs', 'jsdoc-plugin.js'),
73
- os.path.join(base, 'karma.conf.js'),
74
- ]
75
- return main_sources + tool_sources
76
-
77
-
78
- @_Check('js_lint')
79
- def check_js_lint(args):
80
- """Runs the JavaScript linter."""
81
- # TODO: things not enforced: property doc requirements
82
- logging.info('Linting JavaScript...')
83
-
84
- base = shakaBuildHelpers.get_source_base()
85
- config_path = os.path.join(base, '.eslintrc.js')
86
-
87
- linter = compiler.Linter(get_lint_files(), config_path)
88
- return linter.lint(fix=args.fix, force=args.force)
89
-
90
-
91
- @_Check('css_lint')
92
- def check_css_lint(args):
93
- """Runs the CSS linter."""
94
- logging.info('Linting CSS...')
95
-
96
- match = re.compile(r'.*\.(less|css)$')
97
- base = shakaBuildHelpers.get_source_base()
98
- def get(*path_components):
99
- return shakaBuildHelpers.get_all_files(
100
- os.path.join(base, *path_components), match)
101
- files = (get('ui') + get('demo'))
102
- config_path = os.path.join(base, '.csslintrc')
103
-
104
- linter = compiler.CssLinter(files, config_path)
105
- return linter.lint(fix=args.fix, force=args.force)
106
-
107
-
108
- @_Check('html_lint')
109
- def check_html_lint(args):
110
- """Runs the HTML linter."""
111
- logging.info('Linting HTML...')
112
-
113
- base = shakaBuildHelpers.get_source_base()
114
- files = ['index.html', os.path.join('demo', 'index.html'), 'support.html']
115
- file_paths = [os.path.join(base, x) for x in files]
116
- config_path = os.path.join(base, '.htmlhintrc')
117
-
118
- htmllinter = compiler.HtmlLinter(file_paths, config_path)
119
- return htmllinter.lint(force=args.force)
120
-
121
-
122
- @_Check('complete')
123
- def check_complete(_):
124
- """Checks whether the 'complete' build references every file.
125
-
126
- This is used by the build script to ensure that every file is included in at
127
- least one build type.
128
-
129
- Returns:
130
- True on success, False on failure.
131
- """
132
- logging.info('Checking that the build files are complete...')
133
-
134
- complete_build = complete_build_files()
135
- if not complete_build:
136
- return False
137
-
138
- base = shakaBuildHelpers.get_source_base()
139
- all_files = set()
140
- all_files.update(shakaBuildHelpers.get_all_js_files('lib'))
141
- all_files.update(shakaBuildHelpers.get_all_js_files('ui'))
142
- all_files.update(shakaBuildHelpers.get_all_js_files('third_party'))
143
- missing_files = all_files - complete_build
144
-
145
- if missing_files:
146
- logging.error('There are files missing from the complete build:')
147
- for missing in missing_files:
148
- # Convert to a path relative to source base.
149
- logging.error(' ' + os.path.relpath(missing, base))
150
- return False
151
- return True
152
-
153
-
154
- @_Check('spelling')
155
- def check_spelling(_):
156
- """Checks that source files don't have any common misspellings."""
157
- logging.info('Checking for common misspellings...')
158
-
159
- complete_build = complete_build_files()
160
- if not complete_build:
161
- return False
162
-
163
- base = shakaBuildHelpers.get_source_base()
164
- complete_build.update(shakaBuildHelpers.get_all_js_files('test'))
165
- complete_build.update(shakaBuildHelpers.get_all_js_files('demo'))
166
- complete_build.update(shakaBuildHelpers.get_all_js_files('externs'))
167
- complete_build.update(shakaBuildHelpers.get_all_files(
168
- os.path.join(base, 'build'), re.compile(r'.*\.(js|py)$')))
169
-
170
- with shakaBuildHelpers.open_file(
171
- os.path.join(base, 'build', 'misspellings.txt')) as f:
172
- misspellings = ast.literal_eval(f.read())
173
- has_error = False
174
- for path in complete_build:
175
- with shakaBuildHelpers.open_file(path) as f:
176
- for i, line in enumerate(f):
177
- for regex, replace_pattern in misspellings.items():
178
- for match in re.finditer(regex, line):
179
- repl = match.expand(replace_pattern).lower()
180
- if match.group(0).lower() == repl:
181
- continue # No-op suggestion
182
-
183
- if not has_error:
184
- logging.error('The following file(s) have misspellings:')
185
- logging.error(
186
- ' %s:%d:%d: Did you mean %r?' %
187
- (os.path.relpath(path, base), i + 1, match.start() + 1, repl))
188
- has_error = True
189
-
190
- return not has_error
191
-
192
-
193
- @_Check('eslint_disable')
194
- def check_eslint_disable(_):
195
- """Checks that source files correctly use "eslint-disable".
196
-
197
- - Rules are disabled/enabled in nested blocks.
198
- - Rules are not disabled multiple times.
199
- - Rules are enabled again by the end of the file.
200
-
201
- Returns:
202
- True on success, False on failure.
203
- """
204
- logging.info('Checking correct usage of eslint-disable...')
205
-
206
- complete_build = complete_build_files()
207
- if not complete_build:
208
- return False
209
-
210
- base = shakaBuildHelpers.get_source_base()
211
- complete_build.update(shakaBuildHelpers.get_all_js_files('test'))
212
- complete_build.update(shakaBuildHelpers.get_all_js_files('demo'))
213
-
214
- has_error = False
215
- for path in complete_build:
216
- # The stack of rules that are disabled.
217
- disabled = []
218
-
219
- with shakaBuildHelpers.open_file(path, 'r') as f:
220
- rel_path = os.path.relpath(path, base)
221
- for i, line in enumerate(f):
222
- match = re.match(r'^\s*/\* eslint-(disable|enable) ([\w-]*) \*/$', line)
223
- if match:
224
- if match.group(1) == 'disable':
225
- # |line| disables a rule; validate it isn't already disabled.
226
- if match.group(2) in disabled:
227
- logging.error('%s:%d Rule %r already disabled',
228
- rel_path, i + 1, match.group(2))
229
- has_error = True
230
- else:
231
- disabled.append(match.group(2))
232
- else:
233
- # |line| enabled a rule; validate it's already disabled and it's
234
- # enabled in the correct order.
235
- if not disabled or match.group(2) not in disabled:
236
- logging.error("%s:%d Rule %r isn't disabled",
237
- rel_path, i + 1, match.group(2))
238
- has_error = True
239
- elif disabled[-1] != match.group(2):
240
- logging.error('%s:%d Rule %r enabled out of order',
241
- rel_path, i + 1, match.group(2))
242
- has_error = True
243
- disabled = [x for x in disabled if x != match.group(2)]
244
- else:
245
- disabled = disabled[:-1]
246
- else:
247
- # |line| is not a normal eslint-disable or eslint-enable line. Verify
248
- # we don't have this text elsewhere where eslint will ignore it.
249
- if re.search(r'eslint-(disable|enable)(?!-(next-)?line)', line):
250
- logging.error('%s:%d Invalid eslint-disable',
251
- rel_path, i + 1)
252
- has_error = True
253
-
254
- for rule in disabled:
255
- logging.error('%s:%d Rule %r still disabled at end of file',
256
- rel_path, i + 1, rule)
257
- has_error = True
258
-
259
- return not has_error
260
-
261
-
262
- @_Check('test_type')
263
- def check_tests(args):
264
- """Runs an extra compile pass over the test code to check for type errors.
265
-
266
- Returns:
267
- True on success, False on failure.
268
- """
269
- logging.info('Checking the tests for type errors...')
270
-
271
- complete_build = complete_build_files()
272
- if not complete_build:
273
- return False
274
-
275
- base = shakaBuildHelpers.get_source_base()
276
- closure_base_js = shakaBuildHelpers.get_closure_base_js_path()
277
- get = shakaBuildHelpers.get_all_js_files
278
-
279
- files = complete_build
280
- files.update(set(
281
- get('externs') +
282
- get('test') +
283
- [closure_base_js]))
284
- files.add(os.path.join(base, 'demo', 'common', 'asset.js'))
285
- files.add(os.path.join(base, 'demo', 'common', 'assets.js'))
286
- files.add(os.path.join(base, 'demo', 'common', 'message_ids.js'))
287
-
288
- localizations = compiler.GenerateLocalizations(None)
289
- localizations.generate(args.force)
290
- files.add(localizations.output)
291
-
292
- closure_opts = build.common_closure_opts + build.common_closure_defines
293
- closure_opts += build.debug_closure_opts + build.debug_closure_defines
294
-
295
- # Ignore missing goog.require since we assume the whole library is
296
- # already included.
297
- closure_opts += [
298
- '--jscomp_off=missingRequire',
299
- '--checks-only', '-O', 'SIMPLE',
300
- ]
301
-
302
- # Set up a build with the build name of "dummy". With output_compiled_bundle
303
- # set to False, the build name is irrelevant, since we won't generate any
304
- # compiled output.
305
- closure = compiler.ClosureCompiler(files, 'dummy')
306
- closure.output_compiled_bundle = False
307
- # Instead of creating a compiled bundle, we will touch a timestamp file to
308
- # keep track of how recently we've run this check.
309
- closure.timestamp_file = os.path.join(base, 'dist', '.testcheckstamp')
310
- return closure.compile(closure_opts, args.force)
311
-
312
-
313
- def main(args):
314
- parser = argparse.ArgumentParser(
315
- description=__doc__,
316
- formatter_class=argparse.RawDescriptionHelpFormatter)
317
- parser.add_argument(
318
- '--fix',
319
- help='Automatically fix style violations.',
320
- action='store_true')
321
- parser.add_argument(
322
- '--force',
323
- '-f',
324
- help='Force checks even if no files have changed.',
325
- action='store_true')
326
- parser.add_argument(
327
- '--filter',
328
- metavar='CHECK',
329
- nargs='+',
330
- choices=[i[0] for i in _CHECKS],
331
- help='Run only the given checks (choices: %(choices)s).')
332
-
333
- parsed_args = parser.parse_args(args)
334
-
335
- # Make the dist/ folder, ignore errors.
336
- base = shakaBuildHelpers.get_source_base()
337
- try:
338
- os.mkdir(os.path.join(base, 'dist'))
339
- except OSError:
340
- pass
341
-
342
- # Update node modules if needed.
343
- if not shakaBuildHelpers.update_node_modules():
344
- return 1
345
-
346
- for name, step in _CHECKS:
347
- if not parsed_args.filter or name in parsed_args.filter:
348
- if not step(parsed_args):
349
- return 1
350
- return 0
351
-
352
-
353
- if __name__ == '__main__':
354
- shakaBuildHelpers.run_main(main)
@@ -1,84 +0,0 @@
1
- #!/usr/bin/env python
2
- #
3
- # Copyright 2016 Google LLC
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
-
17
- """Checks that all the versions match."""
18
-
19
- from __future__ import print_function
20
-
21
- import logging
22
- import os
23
- import re
24
-
25
- import shakaBuildHelpers
26
-
27
-
28
- def player_version():
29
- """Gets the version of the library from player.js."""
30
- path = os.path.join(shakaBuildHelpers.get_source_base(), 'lib', 'player.js')
31
- with shakaBuildHelpers.open_file(path, 'r') as f:
32
- match = re.search(r'shaka\.Player\.version = \'(.*)\'', f.read())
33
- return match.group(1) if match else ''
34
-
35
-
36
- def changelog_version():
37
- """Gets the version of the library from the CHANGELOG."""
38
- path = os.path.join(shakaBuildHelpers.get_source_base(), 'CHANGELOG.md')
39
- with shakaBuildHelpers.open_file(path, 'r') as f:
40
- match = re.search(r'^###? \[(.*?)\]\(', f.read(), re.MULTILINE)
41
- return match.group(1) if match else ''
42
-
43
-
44
- def main(_):
45
- """Checks that all the versions in the library match."""
46
- changelog = changelog_version()
47
- player = player_version()
48
- git = shakaBuildHelpers.git_version()
49
- npm = shakaBuildHelpers.npm_version()
50
-
51
- print('git version: ' + git)
52
- print('npm version: ' + npm)
53
- print('player version: ' + player)
54
- print('changelog version: ' + changelog)
55
-
56
- ret = 0
57
- if 'dirty' in git:
58
- logging.error('Git version is dirty.')
59
- ret = 1
60
- elif 'unknown' in git:
61
- logging.error('Git version is not a tag.')
62
- ret = 1
63
- elif not re.match(r'^v[0-9]+\.[0-9]+\.[0-9]+(?:-[a-z0-9]+)?$', git):
64
- logging.error('Git version is a malformed release version.')
65
- logging.error('It should be a \'v\', followed by three numbers')
66
- logging.error('separated by dots, optionally followed by a hyphen')
67
- logging.error('and a pre-release identifier. See http://semver.org/')
68
- ret = 1
69
-
70
- if 'v' + npm != git:
71
- logging.error('NPM version does not match git version.')
72
- ret = 1
73
- if player != git + '-uncompiled':
74
- logging.error('Player version does not match git version.')
75
- ret = 1
76
- if 'v' + changelog != git:
77
- logging.error('Changelog version does not match git version.')
78
- ret = 1
79
-
80
- return 0
81
-
82
-
83
- if __name__ == '__main__':
84
- shakaBuildHelpers.run_main(main)