shaka-player 3.1.4 → 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 (214) 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 +363 -0
  6. package/CONTRIBUTORS +4 -2
  7. package/README.md +4 -4
  8. package/build/types/core +3 -0
  9. package/build/types/offline +1 -0
  10. package/build/types/polyfill +2 -0
  11. package/build/types/ui +2 -0
  12. package/demo/common/asset.js +9 -7
  13. package/demo/common/assets.js +28 -1
  14. package/demo/common/message_ids.js +15 -2
  15. package/demo/config.js +35 -2
  16. package/demo/index.html +1 -1
  17. package/demo/locales/en.json +14 -1
  18. package/demo/locales/source.json +56 -4
  19. package/demo/main.js +2 -1
  20. package/dist/controls.css +26 -2
  21. package/dist/controls.css.map +1 -1
  22. package/dist/demo.compiled.debug.js +24 -21
  23. package/dist/demo.compiled.debug.map +3 -3
  24. package/dist/demo.compiled.js +24 -21
  25. package/dist/demo.compiled.map +3 -3
  26. package/dist/deps.js +33 -25
  27. package/dist/locales.js +31 -29
  28. package/dist/receiver.compiled.debug.js +14 -12
  29. package/dist/receiver.compiled.debug.map +3 -3
  30. package/dist/receiver.compiled.js +14 -12
  31. package/dist/receiver.compiled.map +3 -3
  32. package/dist/shaka-player.compiled.d.ts +258 -20
  33. package/dist/shaka-player.compiled.debug.d.ts +258 -20
  34. package/dist/shaka-player.compiled.debug.externs.js +1005 -695
  35. package/dist/shaka-player.compiled.debug.js +720 -640
  36. package/dist/shaka-player.compiled.debug.map +4 -4
  37. package/dist/shaka-player.compiled.externs.js +1005 -695
  38. package/dist/shaka-player.compiled.js +850 -817
  39. package/dist/shaka-player.compiled.map +4 -4
  40. package/dist/shaka-player.ui.d.ts +274 -21
  41. package/dist/shaka-player.ui.debug.d.ts +274 -21
  42. package/dist/shaka-player.ui.debug.externs.js +766 -429
  43. package/dist/shaka-player.ui.debug.js +863 -765
  44. package/dist/shaka-player.ui.debug.map +4 -4
  45. package/dist/shaka-player.ui.externs.js +766 -429
  46. package/dist/shaka-player.ui.js +1042 -996
  47. package/dist/shaka-player.ui.map +4 -4
  48. package/docs/design/bg-fetch-after.gv +29 -0
  49. package/docs/design/bg-fetch-after.gv.png +0 -0
  50. package/docs/design/bg-fetch-before.gv +18 -0
  51. package/docs/design/bg-fetch-before.gv.png +0 -0
  52. package/docs/design/bg-fetch.md +134 -0
  53. package/docs/tutorials/blob-url.md +15 -0
  54. package/docs/tutorials/index.json +1 -0
  55. package/docs/tutorials/ui-customization.md +66 -0
  56. package/docs/tutorials/ui.md +5 -5
  57. package/externs/aria.js +6 -0
  58. package/externs/ima.js +3 -0
  59. package/externs/shaka/ads.js +29 -1
  60. package/externs/shaka/manifest.js +18 -2
  61. package/externs/shaka/manifest_parser.js +10 -1
  62. package/externs/shaka/net.js +20 -4
  63. package/externs/shaka/offline.js +36 -2
  64. package/externs/shaka/player.js +182 -13
  65. package/externs/shaka/text.js +24 -10
  66. package/externs/texttrack.js +3 -0
  67. package/externs/webcrypto.js +18 -0
  68. package/lib/abr/ewma.js +14 -0
  69. package/lib/abr/ewma_bandwidth_estimator.js +16 -2
  70. package/lib/abr/simple_abr_manager.js +6 -0
  71. package/lib/ads/ad_manager.js +16 -15
  72. package/lib/ads/client_side_ad.js +8 -0
  73. package/lib/ads/client_side_ad_manager.js +14 -6
  74. package/lib/ads/server_side_ad.js +7 -0
  75. package/lib/ads/server_side_ad_manager.js +19 -2
  76. package/lib/cast/cast_proxy.js +8 -0
  77. package/lib/cast/cast_utils.js +7 -1
  78. package/lib/cea/cea608_data_channel.js +56 -56
  79. package/lib/cea/cea608_memory.js +33 -33
  80. package/lib/cea/cea708_service.js +43 -43
  81. package/lib/cea/cea708_window.js +38 -38
  82. package/lib/cea/cea_decoder.js +13 -14
  83. package/lib/cea/cea_utils.js +23 -23
  84. package/lib/cea/dtvcc_packet_builder.js +7 -7
  85. package/lib/cea/i_caption_decoder.js +2 -3
  86. package/lib/cea/i_cea_parser.js +2 -2
  87. package/lib/cea/mp4_cea_parser.js +6 -6
  88. package/lib/dash/dash_parser.js +53 -14
  89. package/lib/dash/segment_base.js +25 -1
  90. package/lib/dash/segment_list.js +18 -9
  91. package/lib/dash/segment_template.js +23 -10
  92. package/lib/hls/hls_parser.js +210 -30
  93. package/lib/media/closed_caption_parser.js +1 -2
  94. package/lib/media/drm_engine.js +162 -192
  95. package/lib/media/quality_observer.js +291 -0
  96. package/lib/media/segment_index.js +9 -1
  97. package/lib/media/segment_reference.js +37 -5
  98. package/lib/media/streaming_engine.js +48 -10
  99. package/lib/net/http_fetch_plugin.js +31 -11
  100. package/lib/net/http_plugin_utils.js +1 -0
  101. package/lib/net/http_xhr_plugin.js +40 -14
  102. package/lib/net/networking_engine.js +82 -18
  103. package/lib/offline/download_info.js +68 -0
  104. package/lib/offline/download_manager.js +14 -7
  105. package/lib/offline/indexeddb/base_storage_cell.js +35 -0
  106. package/lib/offline/indexeddb/storage_mechanism.js +1 -1
  107. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  108. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  109. package/lib/offline/indexeddb/v5_storage_cell.js +5 -0
  110. package/lib/offline/manifest_converter.js +3 -1
  111. package/lib/offline/storage.js +404 -297
  112. package/lib/offline/stored_content_utils.js +2 -0
  113. package/lib/player.js +622 -153
  114. package/lib/polyfill/aria.js +82 -0
  115. package/lib/polyfill/random_uuid.js +52 -0
  116. package/lib/routing/walker.js +2 -3
  117. package/lib/text/cue.js +12 -0
  118. package/lib/text/srt_text_parser.js +4 -4
  119. package/lib/text/text_engine.js +2 -2
  120. package/lib/text/ttml_text_parser.js +25 -2
  121. package/lib/text/ui_text_displayer.js +2 -2
  122. package/lib/text/vtt_text_parser.js +2 -2
  123. package/lib/text/web_vtt_generator.js +55 -12
  124. package/lib/util/cmcd_manager.js +826 -0
  125. package/lib/util/error.js +12 -0
  126. package/lib/util/language_utils.js +12 -0
  127. package/lib/util/manifest_parser_utils.js +1 -0
  128. package/lib/util/mp4_box_parsers.js +20 -20
  129. package/lib/util/multi_map.js +8 -0
  130. package/lib/util/mutex.js +52 -0
  131. package/lib/util/periods.js +98 -64
  132. package/lib/util/player_configuration.js +31 -1
  133. package/lib/util/stream_utils.js +140 -85
  134. package/lib/util/xml_utils.js +31 -12
  135. package/package.json +1 -1
  136. package/roadmap.md +24 -22
  137. package/shaka-player.uncompiled.js +4 -0
  138. package/test/cast/cast_utils_unit.js +1 -0
  139. package/test/cea/cea608_memory_unit.js +1 -1
  140. package/test/cea/cea708_service_unit.js +8 -8
  141. package/test/cea/cea708_window_unit.js +6 -6
  142. package/test/cea/cea_decoder_unit.js +1 -1
  143. package/test/cea/dtvcc_packet_builder_unit.js +2 -2
  144. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  145. package/test/dash/dash_parser_live_unit.js +101 -1
  146. package/test/dash/dash_parser_manifest_unit.js +78 -2
  147. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  148. package/test/dash/dash_parser_segment_list_unit.js +2 -1
  149. package/test/dash/dash_parser_segment_template_unit.js +2 -1
  150. package/test/hls/hls_live_unit.js +2 -0
  151. package/test/hls/hls_parser_unit.js +252 -0
  152. package/test/media/drm_engine_integration.js +86 -12
  153. package/test/media/drm_engine_unit.js +310 -450
  154. package/test/media/quality_observer_unit.js +139 -0
  155. package/test/media/segment_reference_unit.js +16 -1
  156. package/test/media/streaming_engine_integration.js +2 -1
  157. package/test/media/streaming_engine_unit.js +2 -0
  158. package/test/net/http_plugin_unit.js +20 -15
  159. package/test/offline/manifest_convert_unit.js +2 -0
  160. package/test/offline/storage_integration.js +117 -23
  161. package/test/player_integration.js +151 -0
  162. package/test/player_src_equals_integration.js +52 -0
  163. package/test/player_unit.js +11 -33
  164. package/test/test/assets/chapters.srt +11 -0
  165. package/test/test/assets/chapters.vtt +10 -0
  166. package/test/test/util/cea_utils.js +12 -12
  167. package/test/test/util/dash_parser_util.js +4 -0
  168. package/test/test/util/fake_ad.js +7 -0
  169. package/test/test/util/fake_ad_manager.js +7 -0
  170. package/test/test/util/fake_drm_engine.js +9 -2
  171. package/test/test/util/manifest_generator.js +5 -2
  172. package/test/test/util/manifest_parser_util.js +3 -1
  173. package/test/test/util/test_scheme.js +14 -1
  174. package/test/text/ttml_text_parser_unit.js +47 -0
  175. package/test/text/web_vtt_generator_unit.js +81 -7
  176. package/test/ui/ui_unit.js +250 -0
  177. package/test/util/cmcd_manager_unit.js +277 -0
  178. package/test/util/stream_utils_unit.js +118 -10
  179. package/ui/airplay_button.js +2 -1
  180. package/ui/audio_language_selection.js +9 -5
  181. package/ui/cast_button.js +5 -6
  182. package/ui/constants.js +0 -3
  183. package/ui/context_menu.js +109 -0
  184. package/ui/controls.js +41 -7
  185. package/ui/controls.less +1 -0
  186. package/ui/enums.js +4 -0
  187. package/ui/externs/ui.js +28 -1
  188. package/ui/fast_forward_button.js +16 -8
  189. package/ui/fullscreen_button.js +2 -3
  190. package/ui/language_utils.js +1 -1
  191. package/ui/less/buttons.less +0 -4
  192. package/ui/less/containers.less +74 -0
  193. package/ui/less/overflow_menu.less +0 -10
  194. package/ui/less/tooltip.less +97 -0
  195. package/ui/locales/en.json +1 -0
  196. package/ui/locales/source.json +4 -0
  197. package/ui/loop_button.js +6 -3
  198. package/ui/mute_button.js +3 -4
  199. package/ui/overflow_menu.js +7 -28
  200. package/ui/pip_button.js +10 -7
  201. package/ui/play_button.js +2 -2
  202. package/ui/playback_rate_selection.js +11 -15
  203. package/ui/presentation_time.js +1 -3
  204. package/ui/resolution_selection.js +11 -7
  205. package/ui/rewind_button.js +17 -9
  206. package/ui/seek_bar.js +6 -6
  207. package/ui/settings_menu.js +36 -4
  208. package/ui/small_play_button.js +1 -0
  209. package/ui/spacer.js +1 -1
  210. package/ui/statistics_button.js +253 -0
  211. package/ui/text_selection.js +19 -15
  212. package/ui/ui.js +30 -0
  213. package/ui/ui_utils.js +1 -1
  214. package/ui/volume_bar.js +2 -4
@@ -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,114 @@
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
+
55
+ ## 3.2.2 (2022-01-06)
56
+
57
+ Bugfixes:
58
+ - Allow comments in the TTML parser
59
+ - https://github.com/google/shaka-player/issues/3766
60
+ - https://github.com/google/shaka-player/pull/3827
61
+ - Fix HDR signalling via essential or supplemental property
62
+ - https://github.com/google/shaka-player/issues/3726
63
+ - https://github.com/google/shaka-player/pull/3727
64
+ - Fix MediaCapabilities polyfill on Playstation 5
65
+ - https://github.com/google/shaka-player/issues/3582
66
+ - https://github.com/google/shaka-player/pull/3808
67
+ - Add DASH MIME type mapping for src= playback
68
+ - https://github.com/google/shaka-player/pull/3805
69
+ - Fix captions not working after a period transition on live DASH streams
70
+ - https://github.com/google/shaka-player/issues/3783
71
+ - https://github.com/google/shaka-player/pull/3801
72
+ - Fix timestamp offset of CEA-608 cues
73
+ - https://github.com/google/shaka-player/issues/3782
74
+ - Force caption update when removing cues
75
+ - Fixes parsing of HLS 'DEFAULT' attribute
76
+ - https://github.com/google/shaka-player/issues/3769
77
+ - https://github.com/google/shaka-player/pull/3771
78
+ - support stpp.ttml codec in Mp4TtmlParser
79
+ - https://github.com/google/shaka-player/pull/3754
80
+ - Fix Russian translation
81
+ - https://github.com/google/shaka-player/pull/3751
82
+ - Fix HLS VOD duration
83
+ - https://github.com/google/shaka-player/issues/3733
84
+ - Query HDR transfer function
85
+ - https://github.com/google/shaka-player/issues/3729
86
+ - https://github.com/google/shaka-player/pull/3730
87
+ - Fix styling of UI text cues
88
+ - https://github.com/google/shaka-player/issues/3521
89
+ - https://github.com/google/shaka-player/issues/3600
90
+ - https://github.com/google/shaka-player/issues/3713
91
+ - Fix seek range issues on transition from live to VOD
92
+ - https://github.com/google/shaka-player/issues/3675
93
+ - Enforce string-format of event data keys
94
+ - https://github.com/google/shaka-player/issues/3710
95
+ - Fix vp09 playback on webOS
96
+ - https://github.com/google/shaka-player/pull/3566
97
+ - Dedupe DRM init data
98
+ - https://github.com/google/shaka-player/pull/3695
99
+ - Failover in geo-redundant streams
100
+ - https://github.com/google/shaka-player/pull/3587
101
+ - Update Cast receiver ID for v3.2
102
+
103
+ Demo App:
104
+ - Fix 'Tears of Steel (live, DASH, Server Side ads)'
105
+ - https://github.com/google/shaka-player/pull/3758
106
+
107
+ Docs:
108
+ - Fix typo in Fairplay tutorial
109
+ - https://github.com/google/shaka-player/pull/3714
110
+
111
+
1
112
  ## 3.1.4 (2022-01-06)
2
113
 
3
114
  Bugfixes:
@@ -54,6 +165,111 @@ Docs:
54
165
  - https://github.com/google/shaka-player/pull/3714
55
166
 
56
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
+
207
+ ## 3.2.1 (2021-10-13)
208
+
209
+ Bugfixes:
210
+ - Work around override of MediaCapabilities polyfill in Apple browsers
211
+ - https://github.com/google/shaka-player/issues/3530
212
+ - https://github.com/google/shaka-player/pull/3668
213
+ - Fix video poster when autoplay is disabled
214
+ - https://github.com/google/shaka-player/pull/3645
215
+ - Fix tracking of active variant track in live streams
216
+ - Fixes updating of nested cues
217
+ - https://github.com/google/shaka-player/issues/3524
218
+ - https://github.com/google/shaka-player/issues/3643
219
+ - Fix ttml erroneously dismissing cues
220
+ - https://github.com/google/shaka-player/issues/3643
221
+ - Fix control panel alignment in UI
222
+ - https://github.com/google/shaka-player/pull/3650
223
+ - Export missing polyfill install methods
224
+ - https://github.com/google/shaka-player/pull/3660
225
+ - Dispose of ad manager on player detach
226
+ - https://github.com/google/shaka-player/pull/3665
227
+ - Add ResizeObserver to CS ad manager
228
+ - https://github.com/google/shaka-player/pull/3652
229
+ - Avoid seeking on src when start time is 0
230
+ - https://github.com/google/shaka-player/issues/3518
231
+ - https://github.com/google/shaka-player/pull/3644
232
+ - Tolerate misaligned TS files
233
+ - https://github.com/google/shaka-player/issues/3580
234
+ - Account for server-side ad cue points in external text tracks
235
+ - https://github.com/google/shaka-player/pull/3617
236
+ - Fix stopping of Server Side Ad manager
237
+ - https://github.com/google/shaka-player/pull/3611
238
+ - Fix DRM workaround for Tizen and Xbox with ac-3 boxes
239
+ - https://github.com/google/shaka-player/issues/3589
240
+ - https://github.com/google/shaka-player/pull/3631
241
+ - Fix DRM workaround for Tizen and Xbox with avc3 boxes
242
+ - https://github.com/google/shaka-player/pull/3625
243
+ - Fix `BUFFER_READ_OUT_OF_BOUNDS` error when CEA caption packets are empty
244
+ - https://github.com/google/shaka-player/issues/3608
245
+ - https://github.com/google/shaka-player/pull/3609
246
+ - Fix error when un-storing DRM asset
247
+ - https://github.com/google/shaka-player/issues/3534
248
+ - Fix CC parsing of EPB and v1 TKHD boxes
249
+ - https://github.com/google/shaka-player/issues/3502
250
+ - https://github.com/google/shaka-player/pull/3610
251
+ - Always polyfill MediaCapabilities for Apple browsers
252
+ - https://github.com/google/shaka-player/pull/3588
253
+ - Add Support to iOS 12 in MediaCapabilities polyfill
254
+ - https://github.com/google/shaka-player/pull/3573
255
+ - Add support to file type in MediaCapabilities implementation
256
+ - https://github.com/google/shaka-player/pull/3570
257
+ - Display captions with forward slashes
258
+ - https://github.com/google/shaka-player/issues/3555
259
+ - https://github.com/google/shaka-player/pull/3556
260
+ - Add support to file type in MediaCapabilities polyfill
261
+ - https://github.com/google/shaka-player/pull/3569
262
+ - Use "undetermined" for missing CC language
263
+ - Fix FairPlay playback
264
+ - https://github.com/google/shaka-player/pull/3531
265
+ - Exit PiP when destroying UI
266
+ - https://github.com/google/shaka-player/issues/3553
267
+
268
+ Docs:
269
+ - Add FAQ entry for common Vue problem
270
+ - https://github.com/google/shaka-player/issues/3155
271
+
272
+
57
273
  ## 3.1.3 (2021-10-13)
58
274
 
59
275
  Bugfixes:
@@ -116,6 +332,73 @@ Docs:
116
332
  - https://github.com/google/shaka-player/issues/3155
117
333
 
118
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
+
371
+ ## 3.2.0 (2021-07-14)
372
+
373
+ New Features:
374
+ - MediaCapabilities support: configs for preferred codecs, decoding
375
+ attributes, and key systems
376
+ - https://github.com/google/shaka-player/pull/3424
377
+ - https://github.com/google/shaka-player/issues/1391
378
+ - https://github.com/google/shaka-player/issues/3002
379
+ - Support more frequent segment updates during streaming
380
+ - https://github.com/google/shaka-player/pull/3483
381
+ - Add callback for apps to pre-process DASH manifests
382
+ - https://github.com/google/shaka-player/issues/3339
383
+ - https://github.com/google/shaka-player/pull/3480
384
+ - Add chapters support
385
+ - https://github.com/google/shaka-player/pull/2972
386
+ - Add support for HLS Image Media Playlists
387
+ - https://github.com/google/shaka-player/pull/3365
388
+ - Add align and vertical settings to WebVttGenerator
389
+ - https://github.com/google/shaka-player/pull/3413
390
+ - Add a buffer fullness method
391
+ - https://github.com/google/shaka-player/issues/3389
392
+ - https://github.com/google/shaka-player/pull/3392
393
+ - Progress toward FairPlay DRM w/ MSE
394
+ - https://github.com/google/shaka-player/pull/3347
395
+ - Add serverCertificateUri in DRM advanced config
396
+ - https://github.com/google/shaka-player/issues/1906
397
+ - https://github.com/google/shaka-player/pull/3358
398
+ - Add goToLive method
399
+ - https://github.com/google/shaka-player/pull/3527
400
+
401
+
119
402
  ## 3.1.2 (2021-07-14)
120
403
 
121
404
  Bugfixes:
@@ -158,6 +441,29 @@ Docs:
158
441
  - https://github.com/google/shaka-player/issues/3487
159
442
 
160
443
 
444
+ ## 3.0.13 (2021-07-14)
445
+
446
+ Bugfixes:
447
+ - Fix choosing tracks from streaming event
448
+ - https://github.com/google/shaka-player/issues/3448
449
+ - https://github.com/google/shaka-player/pull/3459
450
+ - Update Play icon after seeking from end
451
+ - https://github.com/google/shaka-player/pull/3515
452
+ - Fix DASH transition from dynamic to static
453
+ - https://github.com/google/shaka-player/pull/3497
454
+ - Fix ARIA label on replay button
455
+ - https://github.com/google/shaka-player/pull/3513
456
+ - Fix audio language switching while using AirPlay
457
+ - https://github.com/google/shaka-player/issues/3125
458
+ - https://github.com/google/shaka-player/pull/3472
459
+ - Show captions with rapid seek when ignoreTextStreamFailures is true
460
+ - https://github.com/google/shaka-player/pull/3476
461
+ - Fix clearing buffer when requested for already-selected variant
462
+ - https://github.com/google/shaka-player/pull/3477
463
+ - Fix hung playback on rapid seek
464
+ - https://github.com/google/shaka-player/pull/3479
465
+
466
+
161
467
  ## 3.1.1 (2021-06-17)
162
468
 
163
469
  Bugfixes:
@@ -207,6 +513,63 @@ Demo App:
207
513
  - Add MIME type and extra config to custom assets
208
514
 
209
515
 
516
+ ## 3.0.12 (2021-06-17)
517
+
518
+ Bugfixes:
519
+ - Fix buffering due to re-fetch in multi-period DASH
520
+ - https://github.com/google/shaka-player/pull/3419
521
+ - https://github.com/google/shaka-player/issues/3354
522
+ - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS
523
+ - https://github.com/google/shaka-player/pull/3428
524
+ - Fix EC-3 box support in DRM workaround on smart TVs
525
+ - https://github.com/google/shaka-player/pull/3427
526
+ - Fix exception in UI on devices that do not support fullscreen
527
+ - https://github.com/google/shaka-player/issues/3441
528
+ - Fix caption positioning and sizing when the container resizes
529
+ - https://github.com/google/shaka-player/pull/3426
530
+ - https://github.com/google/shaka-player/pull/3425
531
+ - https://github.com/google/shaka-player/pull/3414
532
+ - Fix exceptions thrown in content with trick-mode tracks
533
+ - https://github.com/google/shaka-player/issues/3423
534
+ - Filter unsupported H.264 streams in Xbox
535
+ - https://github.com/google/shaka-player/pull/3411
536
+ - Choose the configured preferred text role at start
537
+ - https://github.com/google/shaka-player/pull/3399
538
+ - Fix ClearKey+WebM+src= playback failure
539
+ - https://github.com/google/shaka-player/issues/3366
540
+ - Fix double-display of embedded and non-embedded captions
541
+ - https://github.com/google/shaka-player/issues/3199
542
+
543
+ Docs:
544
+ - Document disabling Range header requests in HLS
545
+ - https://github.com/google/shaka-player/pull/3442
546
+ - Add Angular integration link
547
+ - https://github.com/google/shaka-player/pull/3409
548
+
549
+
550
+ ## 2.5.23 (2021-06-17)
551
+
552
+ Bugfixes:
553
+ - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS
554
+ - https://github.com/google/shaka-player/pull/3428
555
+ - Fix exception in UI on devices that do not support fullscreen
556
+ - https://github.com/google/shaka-player/issues/3441
557
+ - Fix caption positioning and sizing when the container resizes
558
+ - https://github.com/google/shaka-player/pull/3426
559
+ - https://github.com/google/shaka-player/pull/3425
560
+ - https://github.com/google/shaka-player/pull/3414
561
+ - Filter unsupported H.264 streams in Xbox
562
+ - https://github.com/google/shaka-player/pull/3411
563
+ - Choose the configured preferred text role at start
564
+ - https://github.com/google/shaka-player/pull/3399
565
+ - Fix ClearKey+WebM+src= playback failure
566
+ - https://github.com/google/shaka-player/issues/3366
567
+
568
+ Docs:
569
+ - Add Angular integration link
570
+ - https://github.com/google/shaka-player/pull/3409
571
+
572
+
210
573
  ## 3.1.0 (2021-04-29)
211
574
 
212
575
  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/README.md CHANGED
@@ -60,10 +60,10 @@ So we are dependent on the browser supporting the manifests.
60
60
 
61
61
  ### Shaka Player Embedded (for native iOS)
62
62
 
63
- We have another project called [Shaka Player Embedded][] that offers the same
64
- features and similar APIs for native apps on iOS. This project uses its own
63
+ We have another project called [Shaka Player Embedded][] which offers the same
64
+ features and similar APIs for native apps on iOS. This project uses its own
65
65
  media stack, which allows it to play content that would otherwise not be
66
- supported. This supports both DASH and HLS manifests.
66
+ supported. This supports both DASH and HLS manifests.
67
67
 
68
68
  [Shaka Player Embedded]: https://github.com/google/shaka-player-embedded
69
69
 
@@ -210,7 +210,7 @@ Shaka Player supports:
210
210
  - SubViewer (SBV)
211
211
  - UTF-8 encoding only
212
212
 
213
- Subtitles are rendered by the browser by default. Applications can create a
213
+ Subtitles are rendered by the browser by default. Applications can create a
214
214
  [text display plugin][] for customer rendering to go beyond browser-supported
215
215
  attributes.
216
216
 
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
@@ -1,6 +1,7 @@
1
1
  # Polyfills used to emulate missing browsers features.
2
2
 
3
3
  +../../node_modules/eme-encryption-scheme-polyfill/index.js
4
+ +../../lib/polyfill/aria.js
4
5
  +../../lib/polyfill/encryption_scheme.js
5
6
  +../../lib/polyfill/fullscreen.js
6
7
  +../../lib/polyfill/mathround.js
@@ -12,6 +13,7 @@
12
13
  +../../lib/polyfill/patchedmediakeys_nop.js
13
14
  +../../lib/polyfill/patchedmediakeys_webkit.js
14
15
  +../../lib/polyfill/pip_webkit.js
16
+ +../../lib/polyfill/random_uuid.js
15
17
  +../../lib/polyfill/storage_estimate.js
16
18
  +../../lib/polyfill/video_play_promise.js
17
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
@@ -369,24 +369,26 @@ const ShakaDemoAssetInfo = class {
369
369
  getConfiguration() {
370
370
  const config = /** @type {shaka.extern.PlayerConfiguration} */(
371
371
  {drm: {advanced: {}}, manifest: {dash: {}}});
372
+
373
+ if (this.extraConfig) {
374
+ for (const key in this.extraConfig) {
375
+ config[key] = this.extraConfig[key];
376
+ }
377
+ }
378
+
372
379
  if (this.licenseServers.size) {
373
- config.drm.servers = {};
380
+ config.drm.servers = config.drm.servers || {};
374
381
  this.licenseServers.forEach((value, key) => {
375
382
  config.drm.servers[key] = value;
376
383
  });
377
384
  }
378
385
 
379
386
  if (this.clearKeys.size) {
380
- config.drm.clearKeys = {};
387
+ config.drm.clearKeys = config.drm.clearKeys || {};
381
388
  this.clearKeys.forEach((value, key) => {
382
389
  config.drm.clearKeys[key] = value;
383
390
  });
384
391
  }
385
- if (this.extraConfig) {
386
- for (const key in this.extraConfig) {
387
- config[key] = this.extraConfig[key];
388
- }
389
- }
390
392
  return config;
391
393
  }
392
394
 
@@ -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',
@@ -370,7 +388,16 @@ shakaAssets.testAssets = [
370
388
  .addFeature(shakaAssets.Feature.SUBTITLES)
371
389
  .addFeature(shakaAssets.Feature.WEBM)
372
390
  .addFeature(shakaAssets.Feature.OFFLINE)
373
- .addLicenseServer('com.widevine.alpha', 'https://cwip-shaka-proxy.appspot.com/no_auth'),
391
+ .addLicenseServer('com.widevine.alpha', 'https://cwip-shaka-proxy.appspot.com/no_auth')
392
+ .setExtraConfig({
393
+ drm: {
394
+ advanced: {
395
+ 'com.widevine.alpha': {
396
+ serverCertificateUri: 'https://cwip-shaka-proxy.appspot.com/service-cert',
397
+ },
398
+ },
399
+ },
400
+ }),
374
401
  new ShakaDemoAssetInfo(
375
402
  /* name= */ 'Sintel 4k (multicodec, Widevine, ads)',
376
403
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',