shaka-player 3.2.2 → 3.3.0

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 (156) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. package/.github/ISSUE_TEMPLATE/feature_request.md +1 -1
  3. package/.github/ISSUE_TEMPLATE/question.md +1 -1
  4. package/AUTHORS +6 -5
  5. package/CHANGELOG.md +247 -0
  6. package/CONTRIBUTORS +4 -2
  7. package/build/types/core +3 -0
  8. package/build/types/offline +1 -0
  9. package/build/types/polyfill +1 -0
  10. package/build/types/ui +2 -0
  11. package/demo/common/assets.js +18 -0
  12. package/demo/common/message_ids.js +13 -1
  13. package/demo/config.js +31 -1
  14. package/demo/index.html +1 -1
  15. package/demo/locales/en.json +12 -0
  16. package/demo/locales/source.json +48 -0
  17. package/dist/controls.css +26 -2
  18. package/dist/controls.css.map +1 -1
  19. package/dist/demo.compiled.debug.js +19 -16
  20. package/dist/demo.compiled.debug.map +3 -3
  21. package/dist/demo.compiled.js +19 -16
  22. package/dist/demo.compiled.map +3 -3
  23. package/dist/deps.js +18 -11
  24. package/dist/locales.js +28 -26
  25. package/dist/receiver.compiled.debug.js +11 -9
  26. package/dist/receiver.compiled.debug.map +3 -3
  27. package/dist/receiver.compiled.js +11 -9
  28. package/dist/receiver.compiled.map +3 -3
  29. package/dist/shaka-player.compiled.d.ts +205 -15
  30. package/dist/shaka-player.compiled.debug.d.ts +205 -15
  31. package/dist/shaka-player.compiled.debug.externs.js +256 -6
  32. package/dist/shaka-player.compiled.debug.js +406 -354
  33. package/dist/shaka-player.compiled.debug.map +4 -4
  34. package/dist/shaka-player.compiled.externs.js +256 -6
  35. package/dist/shaka-player.compiled.js +826 -800
  36. package/dist/shaka-player.compiled.map +4 -4
  37. package/dist/shaka-player.ui.d.ts +221 -16
  38. package/dist/shaka-player.ui.debug.d.ts +221 -16
  39. package/dist/shaka-player.ui.debug.externs.js +283 -6
  40. package/dist/shaka-player.ui.debug.js +547 -476
  41. package/dist/shaka-player.ui.debug.map +4 -4
  42. package/dist/shaka-player.ui.externs.js +283 -6
  43. package/dist/shaka-player.ui.js +1019 -980
  44. package/dist/shaka-player.ui.map +4 -4
  45. package/docs/design/bg-fetch-after.gv +29 -0
  46. package/docs/design/bg-fetch-after.gv.png +0 -0
  47. package/docs/design/bg-fetch-before.gv +18 -0
  48. package/docs/design/bg-fetch-before.gv.png +0 -0
  49. package/docs/design/bg-fetch.md +134 -0
  50. package/docs/tutorials/blob-url.md +15 -0
  51. package/docs/tutorials/index.json +1 -0
  52. package/docs/tutorials/ui-customization.md +66 -0
  53. package/docs/tutorials/ui.md +5 -5
  54. package/externs/ima.js +3 -0
  55. package/externs/shaka/ads.js +5 -0
  56. package/externs/shaka/manifest.js +12 -1
  57. package/externs/shaka/manifest_parser.js +10 -1
  58. package/externs/shaka/net.js +20 -4
  59. package/externs/shaka/offline.js +31 -2
  60. package/externs/shaka/player.js +130 -5
  61. package/externs/shaka/text.js +14 -0
  62. package/externs/webcrypto.js +18 -0
  63. package/lib/abr/ewma.js +14 -0
  64. package/lib/abr/ewma_bandwidth_estimator.js +16 -2
  65. package/lib/abr/simple_abr_manager.js +6 -0
  66. package/lib/ads/client_side_ad.js +8 -0
  67. package/lib/ads/client_side_ad_manager.js +8 -4
  68. package/lib/ads/server_side_ad.js +7 -0
  69. package/lib/cast/cast_utils.js +1 -0
  70. package/lib/dash/dash_parser.js +48 -14
  71. package/lib/dash/segment_base.js +25 -1
  72. package/lib/dash/segment_list.js +18 -9
  73. package/lib/dash/segment_template.js +23 -10
  74. package/lib/hls/hls_parser.js +86 -23
  75. package/lib/media/quality_observer.js +291 -0
  76. package/lib/media/segment_index.js +6 -0
  77. package/lib/media/segment_reference.js +18 -3
  78. package/lib/media/streaming_engine.js +42 -4
  79. package/lib/net/http_fetch_plugin.js +31 -11
  80. package/lib/net/http_plugin_utils.js +1 -0
  81. package/lib/net/http_xhr_plugin.js +40 -14
  82. package/lib/net/networking_engine.js +81 -18
  83. package/lib/offline/download_info.js +68 -0
  84. package/lib/offline/download_manager.js +13 -5
  85. package/lib/offline/indexeddb/base_storage_cell.js +35 -0
  86. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  87. package/lib/offline/indexeddb/v5_storage_cell.js +5 -0
  88. package/lib/offline/storage.js +393 -284
  89. package/lib/offline/stored_content_utils.js +2 -0
  90. package/lib/player.js +206 -7
  91. package/lib/polyfill/random_uuid.js +52 -0
  92. package/lib/text/cue.js +12 -0
  93. package/lib/text/ttml_text_parser.js +25 -2
  94. package/lib/text/ui_text_displayer.js +2 -2
  95. package/lib/util/cmcd_manager.js +826 -0
  96. package/lib/util/error.js +6 -0
  97. package/lib/util/language_utils.js +12 -0
  98. package/lib/util/mutex.js +52 -0
  99. package/lib/util/periods.js +98 -64
  100. package/lib/util/player_configuration.js +18 -0
  101. package/package.json +1 -1
  102. package/shaka-player.uncompiled.js +3 -0
  103. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  104. package/test/dash/dash_parser_live_unit.js +101 -1
  105. package/test/dash/dash_parser_manifest_unit.js +35 -1
  106. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  107. package/test/dash/dash_parser_segment_list_unit.js +2 -1
  108. package/test/dash/dash_parser_segment_template_unit.js +2 -1
  109. package/test/hls/hls_live_unit.js +2 -0
  110. package/test/hls/hls_parser_unit.js +2 -0
  111. package/test/media/quality_observer_unit.js +139 -0
  112. package/test/media/segment_reference_unit.js +16 -1
  113. package/test/media/streaming_engine_integration.js +2 -1
  114. package/test/media/streaming_engine_unit.js +2 -0
  115. package/test/net/http_plugin_unit.js +20 -15
  116. package/test/offline/storage_integration.js +108 -4
  117. package/test/player_integration.js +99 -0
  118. package/test/test/util/dash_parser_util.js +4 -0
  119. package/test/test/util/fake_ad.js +7 -0
  120. package/test/test/util/fake_drm_engine.js +9 -2
  121. package/test/test/util/manifest_generator.js +3 -2
  122. package/test/test/util/test_scheme.js +14 -1
  123. package/test/text/ttml_text_parser_unit.js +47 -0
  124. package/test/ui/ui_unit.js +250 -0
  125. package/test/util/cmcd_manager_unit.js +277 -0
  126. package/ui/airplay_button.js +1 -0
  127. package/ui/audio_language_selection.js +7 -0
  128. package/ui/cast_button.js +1 -0
  129. package/ui/context_menu.js +109 -0
  130. package/ui/controls.js +41 -7
  131. package/ui/controls.less +1 -0
  132. package/ui/enums.js +4 -0
  133. package/ui/externs/ui.js +28 -1
  134. package/ui/fast_forward_button.js +14 -5
  135. package/ui/fullscreen_button.js +1 -0
  136. package/ui/less/buttons.less +0 -4
  137. package/ui/less/containers.less +74 -0
  138. package/ui/less/overflow_menu.less +0 -10
  139. package/ui/less/tooltip.less +97 -0
  140. package/ui/locales/en.json +1 -0
  141. package/ui/locales/source.json +4 -0
  142. package/ui/loop_button.js +5 -0
  143. package/ui/mute_button.js +2 -1
  144. package/ui/overflow_menu.js +5 -25
  145. package/ui/pip_button.js +5 -0
  146. package/ui/play_button.js +2 -2
  147. package/ui/playback_rate_selection.js +8 -9
  148. package/ui/resolution_selection.js +7 -0
  149. package/ui/rewind_button.js +15 -6
  150. package/ui/seek_bar.js +4 -2
  151. package/ui/settings_menu.js +36 -4
  152. package/ui/small_play_button.js +1 -0
  153. package/ui/statistics_button.js +253 -0
  154. package/ui/text_selection.js +11 -4
  155. package/ui/ui.js +30 -0
  156. package/ui/volume_bar.js +1 -1
@@ -2,7 +2,7 @@
2
2
  name: Bug report
3
3
  about: Report a bug to help us improve
4
4
  title: ''
5
- labels: ''
5
+ labels: 'type: bug'
6
6
  assignees: ''
7
7
 
8
8
  ---
@@ -2,7 +2,7 @@
2
2
  name: Feature request
3
3
  about: Suggest an idea for this project
4
4
  title: ''
5
- labels: ''
5
+ labels: 'type: enhancement'
6
6
  assignees: ''
7
7
 
8
8
  ---
@@ -3,7 +3,7 @@ name: Question
3
3
  about: An open-ended question or discussion about Shaka Player, but not a bug report
4
4
  or feature request
5
5
  title: ''
6
- labels: question
6
+ labels: 'type: question'
7
7
  assignees: ''
8
8
 
9
9
  ---
package/AUTHORS CHANGED
@@ -13,8 +13,8 @@
13
13
  #
14
14
  # Please keep the list sorted.
15
15
 
16
- AdsWizz <*@adswizz.com>
17
16
  Adrián Gómez Llorente <adgllorente@gmail.com>
17
+ AdsWizz <*@adswizz.com>
18
18
  Alex Jones <alexedwardjones@gmail.com>
19
19
  Alugha GmbH <*@alugha.com>
20
20
  Alvaro Velad Galvan <alvaro.velad@mirada.tv>
@@ -23,18 +23,18 @@ Anthony Stansbridge <github@anthonystansbridge.co.uk>
23
23
  Benjamin Wallberg <me@bwallberg.com>
24
24
  Bonnier Broadcasting <*@bonnierbroadcasting.com>
25
25
  Bryan Huh <bhh1988@gmail.com>
26
- Code It <*@code-it.fr>
27
26
  Charter Communications Inc <*@charter.com>
27
+ Code It <*@code-it.fr>
28
28
  Damien Deis <developer.deis@gmail.com>
29
29
  Dany L'Hébreux <danylhebreux@gmail.com>
30
30
  Dl Dador <dldador@gmail.com>
31
+ Edgeware AB <*@edgeware.tv>
31
32
  Enson Choy <enson.choy@harmonicinc.com>
32
33
  Esteban Dosztal <edosztal@gmail.com>
33
34
  Fadomire <fadomire@gmail.com>
34
- Google Inc. <*@google.com>
35
- Edgeware AB <*@edgeware.tv>
36
35
  Gil Gonen <gil.gonen@gmail.com>
37
36
  Giuseppe Samela <giuseppe.samela@gmail.com>
37
+ Google Inc. <*@google.com>
38
38
  Itay Kinnrot <Itay.Kinnrot@Kaltura.com>
39
39
  Jason Palmer <jason@jason-palmer.com>
40
40
  Jesper Haug Karsrud <jesper.karsrud@gmail.com>
@@ -52,6 +52,7 @@ Oskar Arvidsson <oskar@irock.se>
52
52
  Patrick Cruikshank <patrick.cruikshank@gmail.com>
53
53
  Patrick Kunka <patrick@kunkalabs.com>
54
54
  Paul Jordaan <pdjordaan@gmail.com>
55
+ Pavel Zablockij <epavelas@gmail.com>
55
56
  Percy Tse <percy.tse@gmail.com>
56
57
  Peter Nycander <peter.nycander@gmail.com>
57
58
  Philo Inc. <*@philo.com>
@@ -72,6 +73,6 @@ Tomohiro Matsuzawa <thmatuza75@hotmail.com>
72
73
  Toshihiro Suzuki <t.suzuki326@gmail.com>
73
74
  uStudio Inc. <*@ustudio.com>
74
75
  Verizon Digital Media Services <*@verizondigitalmedia.com>
76
+ ViacomCBS <*@viacomcbs.com>
75
77
  Vincent Valot <valot.vince@gmail.com>
76
78
  Wayne Morgan <wayne.morgan.dev@gmail.com>
77
-
package/CHANGELOG.md CHANGED
@@ -1,3 +1,57 @@
1
+ ## 3.3.0 (2022-01-07)
2
+
3
+ New Features:
4
+ - Adds singleClickForPlayAndPause config
5
+ - https://github.com/google/shaka-player/issues/3821
6
+ - Add media quality change events
7
+ - https://github.com/google/shaka-player/pull/3700
8
+ - Add Common Media Client Data (CMCD) logging support
9
+ - https://github.com/google/shaka-player/issues/3619
10
+ - https://github.com/google/shaka-player/pull/3662
11
+ - Adds advanced ABR config options
12
+ - https://github.com/google/shaka-player/issues/3422
13
+ - https://github.com/google/shaka-player/pull/3706
14
+ - Integrate with non-linear IMA CS ads
15
+ - https://github.com/google/shaka-player/pull/3639
16
+ - Add a config to dispatch all emsg boxes
17
+ - https://github.com/google/shaka-player/issues/3348
18
+ - https://github.com/google/shaka-player/pull/3653
19
+ - Added Loop and PIP to context menu, and Statistics to overflow menu
20
+ - https://github.com/google/shaka-player/pull/3578
21
+ - Export LanguageUtils
22
+ - https://github.com/google/shaka-player/issues/3692
23
+ - Add randomUUID polyfill
24
+ - https://github.com/google/shaka-player/pull/3669
25
+ - Export individual polyfill install methods
26
+ - https://github.com/google/shaka-player/pull/3660
27
+ - Make default HLS audio/video codecs configurable
28
+ - https://github.com/google/shaka-player/pull/3651
29
+ - Add response HTTP status to Networking engine responses
30
+ - https://github.com/google/shaka-player/issues/3640
31
+ - https://github.com/google/shaka-player/pull/3641
32
+ - Create segment index only when used
33
+ - Partially support tts:textOutline
34
+ - https://github.com/google/shaka-player/issues/3612
35
+ - Add tooltips to control panel buttons
36
+ - https://github.com/google/shaka-player/pull/3572
37
+ - Add configurable rates
38
+ - https://github.com/google/shaka-player/pull/3579
39
+ - Add blob-url support
40
+ - https://github.com/google/shaka-player/issues/1481
41
+ - https://github.com/google/shaka-player/pull/3583
42
+ - Add updateStartTime method to play
43
+ - https://github.com/google/shaka-player/pull/3491
44
+ - Add right-click context menu, statistics button
45
+ - https://github.com/google/shaka-player/issues/2607
46
+ - https://github.com/google/shaka-player/pull/3548
47
+ - Added events for download lifecycle
48
+ - https://github.com/google/shaka-player/issues/3533
49
+ - Add Quality, Language, Playback, Captions buttons to control panel
50
+ - https://github.com/google/shaka-player/pull/3465
51
+ - Add goToLive method
52
+ - https://github.com/google/shaka-player/pull/3527
53
+
54
+
1
55
  ## 3.2.2 (2022-01-06)
2
56
 
3
57
  Bugfixes:
@@ -55,6 +109,101 @@ Docs:
55
109
  - https://github.com/google/shaka-player/pull/3714
56
110
 
57
111
 
112
+ ## 3.1.4 (2022-01-06)
113
+
114
+ Bugfixes:
115
+ - Allow comments in the TTML parser
116
+ - https://github.com/google/shaka-player/issues/3766
117
+ - https://github.com/google/shaka-player/pull/3827
118
+ - Fix HDR signalling via essential or supplemental property
119
+ - https://github.com/google/shaka-player/issues/3726
120
+ - https://github.com/google/shaka-player/pull/3727
121
+ - Fix MediaCapabilities polyfill on Playstation 5
122
+ - https://github.com/google/shaka-player/issues/3582
123
+ - https://github.com/google/shaka-player/pull/3808
124
+ - Add DASH MIME type mapping for src= playback
125
+ - https://github.com/google/shaka-player/pull/3805
126
+ - Fix captions not working after a period transition on live DASH streams
127
+ - https://github.com/google/shaka-player/issues/3783
128
+ - https://github.com/google/shaka-player/pull/3801
129
+ - Fix timestamp offset of CEA-608 cues
130
+ - https://github.com/google/shaka-player/issues/3782
131
+ - Force caption update when removing cues
132
+ - Fixes parsing of HLS 'DEFAULT' attribute
133
+ - https://github.com/google/shaka-player/issues/3769
134
+ - https://github.com/google/shaka-player/pull/3771
135
+ - support stpp.ttml codec in Mp4TtmlParser
136
+ - https://github.com/google/shaka-player/pull/3754
137
+ - Fix Russian translation
138
+ - https://github.com/google/shaka-player/pull/3751
139
+ - Fix HLS VOD duration
140
+ - https://github.com/google/shaka-player/issues/3733
141
+ - Query HDR transfer function
142
+ - https://github.com/google/shaka-player/issues/3729
143
+ - https://github.com/google/shaka-player/pull/3730
144
+ - Fix styling of UI text cues
145
+ - https://github.com/google/shaka-player/issues/3521
146
+ - https://github.com/google/shaka-player/issues/3600
147
+ - https://github.com/google/shaka-player/issues/3713
148
+ - Fix seek range issues on transition from live to VOD
149
+ - https://github.com/google/shaka-player/issues/3675
150
+ - Enforce string-format of event data keys.
151
+ - https://github.com/google/shaka-player/issues/3710
152
+ - Fix vp09 playback on webOS
153
+ - https://github.com/google/shaka-player/pull/3566
154
+ - Dedupe DRM init data
155
+ - https://github.com/google/shaka-player/pull/3695
156
+ - Failover in geo-redundant streams
157
+ - https://github.com/google/shaka-player/pull/3587
158
+
159
+ Demo App:
160
+ - Fix 'Tears of Steel (live, DASH, Server Side ads)'
161
+ - https://github.com/google/shaka-player/pull/3758
162
+
163
+ Docs:
164
+ - Fix typo in Fairplay tutorial
165
+ - https://github.com/google/shaka-player/pull/3714
166
+
167
+
168
+ ## 3.0.15 (2022-01-06)
169
+
170
+ Bugfixes:
171
+ - Allow comments in the TTML parser
172
+ - https://github.com/google/shaka-player/issues/3766
173
+ - https://github.com/google/shaka-player/pull/3827
174
+ - Add DASH MIME type mapping for src= playback
175
+ - https://github.com/google/shaka-player/pull/3805
176
+ - Fix captions not working after a period transition on live DASH streams
177
+ - https://github.com/google/shaka-player/issues/3783
178
+ - https://github.com/google/shaka-player/pull/3801
179
+ - Force caption update when removing cues
180
+ - Fixes parsing of HLS 'DEFAULT' attribute
181
+ - https://github.com/google/shaka-player/issues/3769
182
+ - https://github.com/google/shaka-player/pull/3771
183
+ - support stpp.ttml codec in Mp4TtmlParser
184
+ - https://github.com/google/shaka-player/pull/3754
185
+ - Fix Russian translation
186
+ - https://github.com/google/shaka-player/pull/3751
187
+ - Made HLS notify segments after fit
188
+ - https://github.com/google/shaka-player/issues/3733
189
+ - Fix seek range issues on transition from live to VOD
190
+ - https://github.com/google/shaka-player/issues/3675
191
+ - Enforce string-format of event data keys
192
+ - https://github.com/google/shaka-player/issues/3710
193
+ - Dedupe DRM init data
194
+ - https://github.com/google/shaka-player/pull/3695
195
+ - Failover in geo-redundant streams
196
+ - https://github.com/google/shaka-player/pull/3587
197
+
198
+ Demo App:
199
+ - Fix 'Tears of Steel (live, DASH, Server Side ads)'
200
+ - https://github.com/google/shaka-player/pull/3758
201
+
202
+ Docs:
203
+ - Fix typo in Fairplay tutorial
204
+ - https://github.com/google/shaka-player/pull/3714
205
+
206
+
58
207
  ## 3.2.1 (2021-10-13)
59
208
 
60
209
  Bugfixes:
@@ -121,6 +270,104 @@ Docs:
121
270
  - https://github.com/google/shaka-player/issues/3155
122
271
 
123
272
 
273
+ ## 3.1.3 (2021-10-13)
274
+
275
+ Bugfixes:
276
+ - Work around override of MediaCapabilities polyfill in Apple browsers
277
+ - https://github.com/google/shaka-player/issues/3530
278
+ - https://github.com/google/shaka-player/pull/3668
279
+ - Add support to file type in MediaCapabilities implementation
280
+ - https://github.com/google/shaka-player/pull/3570
281
+ - Fix video poster when autoplay is disabled
282
+ - https://github.com/google/shaka-player/pull/3645
283
+ - Fix tracking of active variant track in live streams
284
+ - Fixes updating of nested cues
285
+ - https://github.com/google/shaka-player/issues/3524
286
+ - https://github.com/google/shaka-player/issues/3643
287
+ - Fix ttml erroneously dismissing cues
288
+ - https://github.com/google/shaka-player/issues/3643
289
+ - Fix control panel alignment in UI
290
+ - https://github.com/google/shaka-player/pull/3650
291
+ - Export missing polyfill install methods
292
+ - https://github.com/google/shaka-player/pull/3660
293
+ - Dispose of ad manager on player detach
294
+ - https://github.com/google/shaka-player/pull/3665
295
+ - Add ResizeObserver to CS ad manager
296
+ - https://github.com/google/shaka-player/pull/3652
297
+ - Avoid seeking on src when start time is 0
298
+ - https://github.com/google/shaka-player/issues/3518
299
+ - https://github.com/google/shaka-player/pull/3644
300
+ - Tolerate misaligned TS files
301
+ - https://github.com/google/shaka-player/issues/3580
302
+ - Fix stopping of Server Side Ad manager
303
+ - https://github.com/google/shaka-player/pull/3611
304
+ - Fix DRM workaround for Tizen and Xbox with ac-3 boxes
305
+ - https://github.com/google/shaka-player/issues/3589
306
+ - https://github.com/google/shaka-player/pull/3631
307
+ - Fix DRM workaround for Tizen and Xbox with avc3 boxes
308
+ - https://github.com/google/shaka-player/pull/3625
309
+ - Fix `BUFFER_READ_OUT_OF_BOUNDS` error when CEA caption packets are empty
310
+ - https://github.com/google/shaka-player/issues/3608
311
+ - https://github.com/google/shaka-player/pull/3609
312
+ - Fix error when un-storing DRM asset
313
+ - https://github.com/google/shaka-player/issues/3534
314
+ - Fix CC parsing of EPB and v1 TKHD boxes
315
+ - https://github.com/google/shaka-player/issues/3502
316
+ - https://github.com/google/shaka-player/pull/3610
317
+ - Always polyfill MediaCapabilities for Apple browsers
318
+ - https://github.com/google/shaka-player/pull/3588
319
+ - Add Support to iOS 12 in MediaCapabilities polyfill
320
+ - https://github.com/google/shaka-player/pull/3573
321
+ - Display captions with forward slashes
322
+ - https://github.com/google/shaka-player/issues/3555
323
+ - https://github.com/google/shaka-player/pull/3556
324
+ - Add support to file type in MediaCapabilities polyfill
325
+ - https://github.com/google/shaka-player/pull/3569
326
+ - Use "undetermined" for missing CC language
327
+ - Exit PiP when destroying UI
328
+ - https://github.com/google/shaka-player/issues/3553
329
+
330
+ Docs:
331
+ - Add FAQ entry for common Vue problem
332
+ - https://github.com/google/shaka-player/issues/3155
333
+
334
+
335
+ ## 3.0.14 (2021-10-13)
336
+
337
+ Bugfixes:
338
+ - Fix video poster when autoplay is disabled
339
+ - https://github.com/google/shaka-player/pull/3645
340
+ - Fix tracking of active variant track in live streams
341
+ - Fix control panel alignment in UI
342
+ - https://github.com/google/shaka-player/pull/3650
343
+ - Export missing polyfill install methods
344
+ - https://github.com/google/shaka-player/pull/3660
345
+ - Dispose of ad manager on player detach
346
+ - https://github.com/google/shaka-player/pull/3665
347
+ - Add ResizeObserver to CS ad manager
348
+ - https://github.com/google/shaka-player/pull/3652
349
+ - Avoid seeking on src when start time is 0
350
+ - https://github.com/google/shaka-player/issues/3518
351
+ - https://github.com/google/shaka-player/pull/3644
352
+ - Tolerate misaligned TS files
353
+ - https://github.com/google/shaka-player/issues/3580
354
+ - Fix stopping of Server Side Ad manager
355
+ - https://github.com/google/shaka-player/pull/3611
356
+ - Fix DRM workaround for Tizen and Xbox with ac-3 boxes
357
+ - https://github.com/google/shaka-player/issues/3589
358
+ - https://github.com/google/shaka-player/pull/3631
359
+ - Fix DRM workaround for Tizen and Xbox with avc3 boxes
360
+ - https://github.com/google/shaka-player/pull/3625
361
+ - Fix error when un-storing DRM asset
362
+ - https://github.com/google/shaka-player/issues/3534
363
+ - Exit PiP when destroying UI
364
+ - https://github.com/google/shaka-player/issues/3553
365
+
366
+ Docs:
367
+ - Add FAQ entry for common Vue problem
368
+ - https://github.com/google/shaka-player/issues/3155
369
+
370
+
124
371
  ## 3.2.0 (2021-07-14)
125
372
 
126
373
  New Features:
package/CONTRIBUTORS CHANGED
@@ -31,11 +31,12 @@ Amila Sampath <lucksy@gmail.com>
31
31
  Andy Hochhaus <ahochhaus@samegoal.com>
32
32
  Anthony Stansbridge <github@anthonystansbridge.co.uk>
33
33
  Ashutosh Kumar Mukhiya <ashukm4@gmail.com>
34
- Benjamin Wallberg <me@bwallberg.com>
35
34
  Benjamin Wallberg <benjamin.wallberg@bonnierbroadcasting.com>
35
+ Benjamin Wallberg <me@bwallberg.com>
36
36
  Boris Cupac <borisrt2309@gmail.com>
37
37
  Brad Nadler <bnadler@swankmp.com>
38
38
  Bryan Huh <bhh1988@gmail.com>
39
+ Casey Occhialini <casey.occhialini@gmail.com>
39
40
  Chad Assareh <assareh@google.com>
40
41
  Chris Fillmore <fillmore.chris@gmail.com>
41
42
  Costel Madalin Grecu <madalin.grecu@adswizz.com>
@@ -80,6 +81,7 @@ Oskar Arvidsson <oskar@irock.se>
80
81
  Patrick Cruikshank <patrick.cruikshank@gmail.com>
81
82
  Patrick Kunka <patrick@kunkalabs.com>
82
83
  Paul Jordaan <pdjordaan@gmail.com>
84
+ Pavel Zablockij <epavelas@gmail.com>
83
85
  Percy Tse <percy.tse@gmail.com>
84
86
  Peter Nycander <peter.nycander@gmail.com>
85
87
  Prakash Duggaraju <duggaraju@gmail.com>
@@ -110,4 +112,4 @@ Vasanth Polipelli <vasanthap@google.com>
110
112
  Vignesh Venkatasubramanian <vigneshv@google.com>
111
113
  Vincent Valot <valot.vince@gmail.com>
112
114
  Wayne Morgan <wayne.morgan.dev@gmail.com>
113
- Yohann Connell <robinconnell@google.com>
115
+ Yohann Connell <robinconnell@google.com>
package/build/types/core CHANGED
@@ -28,6 +28,7 @@
28
28
  +../../lib/media/playhead.js
29
29
  +../../lib/media/playhead_observer.js
30
30
  +../../lib/media/presentation_timeline.js
31
+ +../../lib/media/quality_observer.js
31
32
  +../../lib/media/region_observer.js
32
33
  +../../lib/media/region_timeline.js
33
34
  +../../lib/media/segment_index.js
@@ -58,6 +59,7 @@
58
59
  +../../lib/util/abortable_operation.js
59
60
  +../../lib/util/array_utils.js
60
61
  +../../lib/util/buffer_utils.js
62
+ +../../lib/util/cmcd_manager.js
61
63
  +../../lib/util/config_utils.js
62
64
  +../../lib/util/data_view_reader.js
63
65
  +../../lib/util/delayed_tick.js
@@ -82,6 +84,7 @@
82
84
  +../../lib/util/mp4_box_parsers.js
83
85
  +../../lib/util/mp4_parser.js
84
86
  +../../lib/util/multi_map.js
87
+ +../../lib/util/mutex.js
85
88
  +../../lib/util/networking.js
86
89
  +../../lib/util/object_utils.js
87
90
  +../../lib/util/operation_manager.js
@@ -1,5 +1,6 @@
1
1
  # The offline storage system and manifest parser plugin.
2
2
 
3
+ +../../lib/offline/download_info.js
3
4
  +../../lib/offline/download_manager.js
4
5
  +../../lib/offline/download_progress_estimator.js
5
6
  +../../lib/offline/indexeddb/base_storage_cell.js
@@ -13,6 +13,7 @@
13
13
  +../../lib/polyfill/patchedmediakeys_nop.js
14
14
  +../../lib/polyfill/patchedmediakeys_webkit.js
15
15
  +../../lib/polyfill/pip_webkit.js
16
+ +../../lib/polyfill/random_uuid.js
16
17
  +../../lib/polyfill/storage_estimate.js
17
18
  +../../lib/polyfill/video_play_promise.js
18
19
  +../../lib/polyfill/videoplaybackquality.js
package/build/types/ui CHANGED
@@ -9,6 +9,7 @@
9
9
  +../../ui/big_play_button.js
10
10
  +../../ui/airplay_button.js
11
11
  +../../ui/cast_button.js
12
+ +../../ui/context_menu.js
12
13
  +../../ui/controls.js
13
14
  +../../ui/constants.js
14
15
  +../../ui/enums.js
@@ -31,6 +32,7 @@
31
32
  +../../ui/small_play_button.js
32
33
  +../../ui/skip_ad_button.js
33
34
  +../../ui/spacer.js
35
+ +../../ui/statistics_button.js
34
36
  +../../ui/text_selection.js
35
37
  +../../ui/ui.js
36
38
  +../../ui/ui_utils.js
@@ -58,6 +58,10 @@ shakaAssets.AdTag = {
58
58
  'single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&' +
59
59
  'unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%' +
60
60
  '3Dlinear&correlator=',
61
+ SINGLE_NON_LINEAR_AD: 'https://pubads.g.doubleclick.net/gampad/ads?' +
62
+ 'sz=480x70&iu=/124319096/external/single_ad_samples&ciu_szs=300x250 ' +
63
+ '&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1' +
64
+ '&cust_params=deployment%3Ddevsite%26sample_ct%3Dnonlinear&correlator=',
61
65
  SINGLE_SKIPPABLE_AD: 'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/' +
62
66
  '124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&' +
63
67
  'gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=' +
@@ -315,6 +319,20 @@ shakaAssets.testAssets = [
315
319
  .addFeature(shakaAssets.Feature.SURROUND)
316
320
  .addFeature(shakaAssets.Feature.OFFLINE)
317
321
  .addLicenseServer('com.widevine.alpha', 'https://cwip-shaka-proxy.appspot.com/no_auth'),
322
+ new ShakaDemoAssetInfo(
323
+ /* name= */ 'Angel One (HLS, MP4, multilingual, Widevine, single non-linear ad)',
324
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/angel_one.png',
325
+ /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8',
326
+ /* source= */ shakaAssets.Source.SHAKA)
327
+ .addKeySystem(shakaAssets.KeySystem.WIDEVINE)
328
+ .setAdTagUri(shakaAssets.AdTag.SINGLE_NON_LINEAR_AD)
329
+ .addFeature(shakaAssets.Feature.HLS)
330
+ .addFeature(shakaAssets.Feature.MP4)
331
+ .addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES)
332
+ .addFeature(shakaAssets.Feature.SUBTITLES)
333
+ .addFeature(shakaAssets.Feature.SURROUND)
334
+ .addFeature(shakaAssets.Feature.OFFLINE)
335
+ .addLicenseServer('com.widevine.alpha', 'https://cwip-shaka-proxy.appspot.com/no_auth'),
318
336
  new ShakaDemoAssetInfo(
319
337
  /* name= */ 'Sintel 4k (multicodec)',
320
338
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
@@ -157,19 +157,26 @@ shakaDemo.MessageIds = {
157
157
  BUFFER_BEHIND: 'DEMO_BUFFER_BEHIND',
158
158
  BUFFERING_GOAL: 'DEMO_BUFFERING_GOAL',
159
159
  CLOCK_SYNC_URI: 'DEMO_CLOCK_SYNC_URI',
160
+ CMCD_SECTION_HEADER: 'DEMO_CMCD_SECTION_HEADER',
160
161
  CONNECTION_TIMEOUT: 'DEMO_CONNECTION_TIMEOUT',
162
+ CONTENT_ID: 'DEMO_CONTENT_ID',
163
+ DEFAULT_AUDIO_CODEC: 'DEMO_DEFAULT_AUDIO_CODEC',
161
164
  DEFAULT_PRESENTATION_DELAY: 'DEMO_DEFAULT_PRESENTATION_DELAY',
165
+ DEFAULT_VIDEO_CODEC: 'DEMO_DEFAULT_VIDEO_CODEC',
162
166
  DELAY_LICENSE: 'DEMO_DELAY_LICENSE',
163
167
  DISABLE_AUDIO: 'DEMO_DISABLE_AUDIO',
164
168
  DISABLE_TEXT: 'DEMO_DISABLE_TEXT',
165
169
  DISABLE_THUMBNAILS: 'DEMO_DISABLE_THUMBNAILS',
166
170
  DISABLE_VIDEO: 'DEMO_DISABLE_VIDEO',
167
171
  DISABLE_XLINK_PROCESSING: 'DEMO_DISABLE_XLINK_PROCESSING',
172
+ DISPATCH_ALL_EMSG_BOXES: 'DEMO_DISPATCH_ALL_EMSG_BOXES',
173
+ OBSERVE_QUALITY_CHANGES: 'DEMO_OBSERVE_QUALITY_CHANGES',
168
174
  DRM_RETRY_SECTION_HEADER: 'DEMO_DRM_RETRY_SECTION_HEADER',
169
175
  DRM_SECTION_HEADER: 'DEMO_DRM_SECTION_HEADER',
170
176
  DRM_SESSION_TYPE: 'DEMO_DRM_SESSION_TYPE',
171
177
  DURATION_BACKOFF: 'DEMO_DURATION_BACKOFF',
172
178
  ENABLED: 'DEMO_ENABLED',
179
+ FAST_HALF_LIFE: 'DEMO_FAST_HALF_LIFE',
173
180
  FORCE_HTTPS: 'DEMO_FORCE_HTTPS',
174
181
  FORCE_TRANSMUX_TS: 'DEMO_FORCE_TRANSMUX_TS',
175
182
  FUZZ_FACTOR: 'DEMO_FUZZ_FACTOR',
@@ -203,11 +210,13 @@ shakaDemo.MessageIds = {
203
210
  MAX_PIXELS: 'DEMO_MAX_PIXELS',
204
211
  MAX_SMALL_GAP_SIZE: 'DEMO_MAX_SMALL_GAP_SIZE',
205
212
  MAX_WIDTH: 'DEMO_MAX_WIDTH',
213
+ MIN_BANDWIDTH: 'DEMO_MIN_BANDWIDTH',
214
+ MIN_BYTES: 'DEMO_MIN_BYTES',
206
215
  MIN_FRAMERATE: 'DEMO_MIN_FRAMERATE',
207
216
  MIN_HEIGHT: 'DEMO_MIN_HEIGHT',
208
217
  MIN_PIXELS: 'DEMO_MIN_PIXELS',
218
+ MIN_TOTAL_BYTES: 'DEMO_MIN_TOTAL_BYTES',
209
219
  MIN_WIDTH: 'DEMO_MIN_WIDTH',
210
- MIN_BANDWIDTH: 'DEMO_MIN_BANDWIDTH',
211
220
  NETWORK_INFORMATION: 'DEMO_NETWORK_INFORMATION',
212
221
  NUMBER_DECIMAL_WARNING: 'DEMO_NUMBER_DECIMAL_WARNING',
213
222
  NUMBER_INTEGER_WARNING: 'DEMO_NUMBER_INTEGER_WARNING',
@@ -220,7 +229,9 @@ shakaDemo.MessageIds = {
220
229
  RESTRICTIONS_SECTION_HEADER: 'DEMO_RESTRICTIONS_SECTION_HEADER',
221
230
  SAFE_SEEK_OFFSET: 'DEMO_SAFE_SEEK_OFFSET',
222
231
  SAFE_SKIP_DISTANCE: 'DEMO_SAFE_SKIP_DISTANCE',
232
+ SESSION_ID: 'DEMO_SESSION_ID',
223
233
  SHAKA_CONTROLS: 'DEMO_SHAKA_CONTROLS',
234
+ SLOW_HALF_LIFE: 'DEMO_SLOW_HALF_LIFE',
224
235
  STALL_DETECTOR_ENABLED: 'DEMO_STALL_DETECTOR_ENABLED',
225
236
  STALL_THRESHOLD: 'DEMO_STALL_THRESHOLD',
226
237
  STALL_TIMEOUT: 'DEMO_STALL_TIMEOUT',
@@ -236,6 +247,7 @@ shakaDemo.MessageIds = {
236
247
  UI_LOCALE: 'DEMO_UI_LOCALE',
237
248
  UPDATE_EXPIRATION_TIME: 'DEMO_UPDATE_EXPIRATION_TIME',
238
249
  UPDATE_INTERVAL_SECONDS: 'DEMO_UPDATE_INTERVAL_SECONDS',
250
+ USE_HEADERS: 'DEMO_USE_HEADERS',
239
251
  USE_NATIVE_HLS_SAFARI: 'DEMO_USE_NATIVE_HLS_SAFARI',
240
252
  USE_PERSISTENT_LICENSES: 'DEMO_USE_PERSISTENT_LICENSES',
241
253
  VIDEO_ROBUSTNESS: 'DEMO_VIDEO_ROBUSTNESS',
package/demo/config.js CHANGED
@@ -96,6 +96,7 @@ shakaDemo.Config = class {
96
96
  this.addManifestSection_();
97
97
  this.addRetrictionsSection_('',
98
98
  shakaDemo.MessageIds.RESTRICTIONS_SECTION_HEADER);
99
+ this.addCmcdSection_();
99
100
  }
100
101
 
101
102
  /**
@@ -210,6 +211,10 @@ shakaDemo.Config = class {
210
211
  'manifest.hls.ignoreImageStreamFailures')
211
212
  .addBoolInput_(MessageIds.USE_FULL_SEGMENTS_FOR_START_TIME,
212
213
  'manifest.hls.useFullSegmentsForStartTime')
214
+ .addTextInput_(MessageIds.DEFAULT_AUDIO_CODEC,
215
+ 'manifest.hls.defaultAudioCodec')
216
+ .addTextInput_(MessageIds.DEFAULT_VIDEO_CODEC,
217
+ 'manifest.hls.defaultVideoCodec')
213
218
  .addNumberInput_(MessageIds.AVAILABILITY_WINDOW_OVERRIDE,
214
219
  'manifest.availabilityWindowOverride',
215
220
  /* canBeDecimal= */ true,
@@ -255,11 +260,32 @@ shakaDemo.Config = class {
255
260
  /* canBeDecimal= */ true)
256
261
  .addNumberInput_(MessageIds.SWITCH_INTERVAL,
257
262
  'abr.switchInterval',
263
+ /* canBeDecimal= */ true)
264
+ .addNumberInput_(MessageIds.MIN_TOTAL_BYTES,
265
+ 'abr.advanced.minTotalBytes')
266
+ .addNumberInput_(MessageIds.MIN_BYTES,
267
+ 'abr.advanced.minBytes')
268
+ .addNumberInput_(MessageIds.FAST_HALF_LIFE,
269
+ 'abr.advanced.fastHalfLife',
270
+ /* canBeDecimal= */ true)
271
+ .addNumberInput_(MessageIds.SLOW_HALF_LIFE,
272
+ 'abr.advanced.slowHalfLife',
258
273
  /* canBeDecimal= */ true);
259
274
  this.addRetrictionsSection_('abr',
260
275
  MessageIds.ADAPTATION_RESTRICTIONS_SECTION_HEADER);
261
276
  }
262
277
 
278
+ /** @private */
279
+ addCmcdSection_() {
280
+ const MessageIds = shakaDemo.MessageIds;
281
+ const docLink = this.resolveExternLink_('.CmcdConfiguration');
282
+ this.addSection_(MessageIds.CMCD_SECTION_HEADER, docLink)
283
+ .addBoolInput_(MessageIds.ENABLED, 'cmcd.enabled')
284
+ .addTextInput_(MessageIds.SESSION_ID, 'cmcd.sessionId')
285
+ .addTextInput_(MessageIds.CONTENT_ID, 'cmcd.contentId')
286
+ .addBoolInput_(MessageIds.USE_HEADERS, 'cmcd.useHeaders');
287
+ }
288
+
263
289
  /**
264
290
  * @param {string} category
265
291
  * @param {!shakaDemo.MessageIds} sectionName
@@ -362,7 +388,11 @@ shakaDemo.Config = class {
362
388
  'streaming.preferNativeHls')
363
389
  .addNumberInput_(MessageIds.UPDATE_INTERVAL_SECONDS,
364
390
  'streaming.updateIntervalSeconds',
365
- /* canBeDecimal= */ true);
391
+ /* canBeDecimal= */ true)
392
+ .addBoolInput_(MessageIds.DISPATCH_ALL_EMSG_BOXES,
393
+ 'streaming.dispatchAllEmsgBoxes')
394
+ .addBoolInput_(MessageIds.OBSERVE_QUALITY_CHANGES,
395
+ 'streaming.observeQualityChanges');
366
396
 
367
397
  if (!shakaDemoMain.getNativeControlsEnabled()) {
368
398
  this.addBoolInput_(MessageIds.ALWAYS_STREAM_TEXT,
package/demo/index.html CHANGED
@@ -128,7 +128,7 @@ UNCOMPILED_JS = [
128
128
  </div>
129
129
  <main class="mdl-layout__content" id="main-div">
130
130
  <div id="video-bar" class="hidden">
131
- <div data-shaka-player-container data-shaka-player-cast-receiver-id="E7271BEC" class="video-container">
131
+ <div data-shaka-player-container data-shaka-player-cast-receiver-id="BBED8D28" class="video-container">
132
132
  <video data-shaka-player autoplay playsinline id="video"></video>
133
133
  </div>
134
134
  </div>