shaka-player 4.2.9 → 4.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 (80) hide show
  1. package/.github/workflows/selenium-lab-tests.yaml +23 -1
  2. package/AUTHORS +2 -1
  3. package/CHANGELOG.md +27 -0
  4. package/CONTRIBUTORS +4 -1
  5. package/dist/controls.css +1 -1
  6. package/dist/demo.compiled.debug.js +154 -276
  7. package/dist/demo.compiled.debug.map +4 -4
  8. package/dist/demo.compiled.js +154 -276
  9. package/dist/demo.compiled.map +4 -4
  10. package/dist/deps.js +1 -1
  11. package/dist/locales.js +30 -30
  12. package/dist/receiver.compiled.debug.js +36 -65
  13. package/dist/receiver.compiled.debug.map +4 -4
  14. package/dist/receiver.compiled.js +36 -65
  15. package/dist/receiver.compiled.map +4 -4
  16. package/dist/shaka-player.compiled.d.ts +12 -3
  17. package/dist/shaka-player.compiled.debug.d.ts +12 -3
  18. package/dist/shaka-player.compiled.debug.externs.js +17 -12
  19. package/dist/shaka-player.compiled.debug.js +150 -147
  20. package/dist/shaka-player.compiled.debug.map +4 -4
  21. package/dist/shaka-player.compiled.externs.js +17 -12
  22. package/dist/shaka-player.compiled.js +822 -820
  23. package/dist/shaka-player.compiled.map +3 -3
  24. package/dist/shaka-player.ui.d.ts +12 -3
  25. package/dist/shaka-player.ui.debug.d.ts +12 -3
  26. package/dist/shaka-player.ui.debug.externs.js +5 -0
  27. package/dist/shaka-player.ui.debug.js +160 -157
  28. package/dist/shaka-player.ui.debug.map +3 -3
  29. package/dist/shaka-player.ui.externs.js +5 -0
  30. package/dist/shaka-player.ui.js +952 -949
  31. package/dist/shaka-player.ui.map +3 -3
  32. package/docs/tutorials/a11y.md +0 -4
  33. package/docs/tutorials/ad_monetization.md +0 -4
  34. package/docs/tutorials/basic-usage.md +0 -5
  35. package/docs/tutorials/config.md +0 -5
  36. package/docs/tutorials/debugging.md +0 -5
  37. package/docs/tutorials/drm-config.md +0 -5
  38. package/docs/tutorials/fairplay.md +2 -2
  39. package/docs/tutorials/license-server-auth.md +0 -5
  40. package/docs/tutorials/license-wrapping.md +0 -5
  41. package/docs/tutorials/network-and-buffering-config.md +0 -5
  42. package/docs/tutorials/ui-customization.md +0 -5
  43. package/docs/tutorials/ui.md +0 -7
  44. package/docs/tutorials/welcome.md +0 -5
  45. package/externs/network_information.js +7 -2
  46. package/externs/shaka/abr_manager.js +6 -0
  47. package/externs/shaka/net.js +1 -0
  48. package/externs/shaka/player.js +13 -7
  49. package/lib/abr/simple_abr_manager.js +27 -3
  50. package/lib/ads/client_side_ad_manager.js +6 -3
  51. package/lib/dash/dash_parser.js +49 -48
  52. package/lib/debug/log.js +9 -13
  53. package/lib/media/media_source_engine.js +11 -4
  54. package/lib/media/segment_index.js +2 -0
  55. package/lib/media/streaming_engine.js +8 -3
  56. package/lib/net/http_fetch_plugin.js +79 -57
  57. package/lib/net/networking_engine.js +1 -0
  58. package/lib/player.js +22 -3
  59. package/lib/polyfill/media_capabilities.js +13 -0
  60. package/lib/text/mp4_vtt_parser.js +4 -0
  61. package/lib/text/text_engine.js +1 -0
  62. package/lib/util/manifest_parser_utils.js +1 -2
  63. package/lib/util/mime_utils.js +11 -0
  64. package/lib/util/periods.js +5 -5
  65. package/lib/util/stream_utils.js +2 -2
  66. package/maintained-branches.md +3 -4
  67. package/package.json +1 -1
  68. package/test/media/content_workarounds_unit.js +43 -0
  69. package/test/media/drm_engine_integration.js +4 -17
  70. package/test/media/streaming_engine_unit.js +6 -1
  71. package/test/net/networking_engine_unit.js +6 -1
  72. package/test/player_integration.js +39 -0
  73. package/test/player_unit.js +57 -0
  74. package/test/polyfill/media_capabilities_unit.js +0 -1
  75. package/test/test/assets/text-clip-alt.vtt +63 -0
  76. package/test/test/util/fake_drm_engine.js +3 -0
  77. package/test/test/util/simple_fakes.js +6 -0
  78. package/test/test/util/test_scheme.js +9 -14
  79. package/test/text/mp4_vtt_parser_unit.js +8 -0
  80. package/test/util/mime_utils_unit.js +10 -0
@@ -11,6 +11,9 @@ on:
11
11
  test_filter:
12
12
  description: "A regex filter to run a subset of the tests. If empty, all tests will run."
13
13
  required: false
14
+ browser_filter:
15
+ description: "A list of browsers to run the tests. If empty, all browsers will run."
16
+ required: false
14
17
  workflow_call:
15
18
  # Allows for reuse from other workflows, such as "Update All Screenshots"
16
19
  # workflow.
@@ -23,6 +26,10 @@ on:
23
26
  description: "A regex filter to run a subset of the tests. If empty, all tests will run."
24
27
  required: false
25
28
  type: string
29
+ browser_filter:
30
+ description: "A list of browsers to run the tests. If empty, all browsers will run."
31
+ required: false
32
+ type: string
26
33
  ignore_test_status:
27
34
  description: "If true, ignore test success or failure, never set the commit status, and always upload screenshots."
28
35
  required: false
@@ -79,6 +86,14 @@ jobs:
79
86
  const yaml = require(
80
87
  '${{ github.workspace }}/node_modules/js-yaml/index.js');
81
88
 
89
+ // Convert the input "browser_filter" into a set of strings. Take
90
+ // care to filter so that the empty string turns into an empty set.
91
+ const browserFilter = new Set( "${{ inputs.browser_filter }}"
92
+ .split(/\s+/)
93
+ .map(x => x.toLowerCase())
94
+ .filter(x => !!x)
95
+ );
96
+
82
97
  const gridBrowserYaml =
83
98
  fs.readFileSync('build/shaka-lab.yaml', 'utf8');
84
99
  const gridBrowserMetadata = yaml.load(gridBrowserYaml);
@@ -90,7 +105,14 @@ jobs:
90
105
  // Skip variable defs in the YAML file
91
106
  continue;
92
107
  }
93
- if (!gridBrowserMetadata[name].disabled) {
108
+
109
+ // A browser is enabled if it's not disabled and (either the browser
110
+ // filter is empty or it contains the browser name).
111
+ const enabled = !gridBrowserMetadata[name].disabled &&
112
+ (browserFilter.size == 0 ||
113
+ browserFilter.has(name.toLowerCase()));
114
+
115
+ if (enabled) {
94
116
  include.push({browser: name});
95
117
  }
96
118
  }
package/AUTHORS CHANGED
@@ -17,7 +17,7 @@ Adrián Gómez Llorente <adgllorente@gmail.com>
17
17
  AdsWizz <*@adswizz.com>
18
18
  Alex Jones <alexedwardjones@gmail.com>
19
19
  Alugha GmbH <*@alugha.com>
20
- Alvaro Velad Galvan <alvaro.velad@mirada.tv>
20
+ Alvaro Velad Galvan <ladvan91@hotmail.com>
21
21
  Amila Sampath <lucksy@gmail.com>
22
22
  Anthony Stansbridge <github@anthonystansbridge.co.uk>
23
23
  Benjamin Wallberg <me@bwallberg.com>
@@ -88,3 +88,4 @@ Wayne Morgan <wayne.morgan.dev@gmail.com>
88
88
  Raymond Cheng <raycheng100@gmail.com>
89
89
  Blue Billywig <*@bluebillywig.com>
90
90
  Koen Romers <koenromers@gmail.com>
91
+ Xperi <*@xperi.com>
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.2.10](https://github.com/shaka-project/shaka-player/compare/v4.2.9...v4.2.10) (2023-04-27)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * `config.streaming.preferNativeHls` only applies to HLS streams ([#5167](https://github.com/shaka-project/shaka-player/issues/5167)) ([0cf7014](https://github.com/shaka-project/shaka-player/commit/0cf70143aaedd3ec3cc31c7497f432b3f594ed2c)), closes [#5166](https://github.com/shaka-project/shaka-player/issues/5166)
9
+ * **ads:** Fix ads starting muted behavior ([#5153](https://github.com/shaka-project/shaka-player/issues/5153)) ([17e8bf6](https://github.com/shaka-project/shaka-player/commit/17e8bf6b086afe17a927048e7d4ea17649c3f827)), closes [#5125](https://github.com/shaka-project/shaka-player/issues/5125)
10
+ * **Ads:** Fix usage of EventManager on CS ([#5084](https://github.com/shaka-project/shaka-player/issues/5084)) ([f1b3ceb](https://github.com/shaka-project/shaka-player/commit/f1b3ceb3ae769b5d254851dcaba2b961058a4856))
11
+ * **DASH:** Fix seeking on multiperiod content after variant change ([#5110](https://github.com/shaka-project/shaka-player/issues/5110)) ([860b975](https://github.com/shaka-project/shaka-player/commit/860b97545bb01e93aa0c5ed7ecae06d3d9d554af))
12
+ * don't use navigator.connection event listener if it isn't implemented ([#5157](https://github.com/shaka-project/shaka-player/issues/5157)) ([7d8b867](https://github.com/shaka-project/shaka-player/commit/7d8b8678dbd7febe73d049b5744145c534f52e42)), closes [#4542](https://github.com/shaka-project/shaka-player/issues/4542)
13
+ * Fix fetch plugin with old implementations ([#5091](https://github.com/shaka-project/shaka-player/issues/5091)) ([6333d49](https://github.com/shaka-project/shaka-player/commit/6333d49ee785fde20e88917d251937d0f3abff5b))
14
+ * Fix handling of CC when switching between codecs ([#5160](https://github.com/shaka-project/shaka-player/issues/5160)) ([9c3353c](https://github.com/shaka-project/shaka-player/commit/9c3353cc7bf78d22addfeb20a07bda41b61ac3ab))
15
+ * Fix HEAD request exception ([#5194](https://github.com/shaka-project/shaka-player/issues/5194)) ([326137a](https://github.com/shaka-project/shaka-player/commit/326137a936a7fe24ab3ecf0c38569cbfa7d631dd)), closes [#5164](https://github.com/shaka-project/shaka-player/issues/5164)
16
+ * Fix missing originalUri in response filters ([#5114](https://github.com/shaka-project/shaka-player/issues/5114)) ([f9c72fe](https://github.com/shaka-project/shaka-player/commit/f9c72fe45ddc6933f7599dd611b5f4434ad7fc39))
17
+ * Fix race that allows multiple text streams to be loaded ([#5129](https://github.com/shaka-project/shaka-player/issues/5129)) ([6f695d2](https://github.com/shaka-project/shaka-player/commit/6f695d2ef97f6cea05b222c25c73b01fccefd941))
18
+ * Fix selectVariantsByLabel using src= ([#5154](https://github.com/shaka-project/shaka-player/issues/5154)) ([537591d](https://github.com/shaka-project/shaka-player/commit/537591d262476be03c2ae091004a4bb7e005608b))
19
+ * Handle empty media segments for Mp4VttParser ([#5131](https://github.com/shaka-project/shaka-player/issues/5131)) ([123d476](https://github.com/shaka-project/shaka-player/commit/123d476346a045da75d9527d2cbab4b882d57283)), closes [#4429](https://github.com/shaka-project/shaka-player/issues/4429)
20
+ * **HLS:** Adding support for DTS Express in HLS fMP4 ([#5112](https://github.com/shaka-project/shaka-player/issues/5112)) ([#5117](https://github.com/shaka-project/shaka-player/issues/5117)) ([1e577d4](https://github.com/shaka-project/shaka-player/commit/1e577d42cebe86100c3be94b478c341c83ece63a))
21
+ * **HLS:** preserve discontinuitySequence in SegmentIndex#fit ([#5066](https://github.com/shaka-project/shaka-player/issues/5066)) ([ad484a3](https://github.com/shaka-project/shaka-player/commit/ad484a308258869abf7436cb5f8168a5e28dd649))
22
+ * **logging:** Simplify log code. ([#5050](https://github.com/shaka-project/shaka-player/issues/5050)) ([7f9f26c](https://github.com/shaka-project/shaka-player/commit/7f9f26c00f2c997d63cd8399fb75c289040d8d00)), closes [#5032](https://github.com/shaka-project/shaka-player/issues/5032)
23
+ * **net:** Fix HEAD requests in new Chromium ([#5180](https://github.com/shaka-project/shaka-player/issues/5180)) ([1383d6f](https://github.com/shaka-project/shaka-player/commit/1383d6fc5bd2ac6d9f31952f6fb9e0ce9d740179)), closes [#5164](https://github.com/shaka-project/shaka-player/issues/5164)
24
+ * PERIOD_FLATTENING_FAILED error with shaka 4.2.x that did not occur with shaka 3.1.2 ([#5188](https://github.com/shaka-project/shaka-player/issues/5188)) ([e26d19e](https://github.com/shaka-project/shaka-player/commit/e26d19e8ad1110f4251983e6d54585df886a1f38)), closes [#5183](https://github.com/shaka-project/shaka-player/issues/5183)
25
+ * Prevent bad calls to MediaSource.endOfStream ([#5071](https://github.com/shaka-project/shaka-player/issues/5071)) ([bae961b](https://github.com/shaka-project/shaka-player/commit/bae961baf97d3db713c45d3488d50a6d6ca52de6)), closes [#5070](https://github.com/shaka-project/shaka-player/issues/5070)
26
+ * prevent memory leak in SimpleAbrManager while destroying ([#5149](https://github.com/shaka-project/shaka-player/issues/5149)) ([3f85d0c](https://github.com/shaka-project/shaka-player/commit/3f85d0ce7a18bb1df6e70d24183f392dbac1d9eb))
27
+ * Tizen video error fixed by checking the extended MIME type ([#4973](https://github.com/shaka-project/shaka-player/issues/4973)) ([f53e9e9](https://github.com/shaka-project/shaka-player/commit/f53e9e9aff8f4b8c5ca2bd8157ad325d5e415e80)), closes [#4634](https://github.com/shaka-project/shaka-player/issues/4634)
28
+ * **Tizen:** Fix exceptions thrown from logging methods ([#5063](https://github.com/shaka-project/shaka-player/issues/5063)) ([3109994](https://github.com/shaka-project/shaka-player/commit/310999423dd3553b08756c58e83256faf55be837))
29
+
3
30
  ## [4.2.9](https://github.com/shaka-project/shaka-player/compare/v4.2.8...v4.2.9) (2023-03-01)
4
31
 
5
32
 
package/CONTRIBUTORS CHANGED
@@ -27,7 +27,7 @@ Adrián Gómez Llorente <adgllorente@gmail.com>
27
27
  Agajan Jumakuliyev <agajan.tm@gmail.com>
28
28
  Aidan Ridley <aidan.ridley@charter.com>
29
29
  Alex Jones <alexedwardjones@gmail.com>
30
- Alvaro Velad Galvan <alvaro.velad@mirada.tv>
30
+ Alvaro Velad Galvan <ladvan91@hotmail.com>
31
31
  Amila Sampath <lucksy@gmail.com>
32
32
  Andy Hochhaus <ahochhaus@samegoal.com>
33
33
  Anthony Stansbridge <github@anthonystansbridge.co.uk>
@@ -124,7 +124,10 @@ Vasanth Polipelli <vasanthap@google.com>
124
124
  Vignesh Venkatasubramanian <vigneshv@google.com>
125
125
  Vincent Valot <valot.vince@gmail.com>
126
126
  Wayne Morgan <wayne.morgan.dev@gmail.com>
127
+ Wen Ren <renwen0615@gmail.com>
128
+ Will Harris <will.harris@paramount.com>
127
129
  Yohann Connell <robinconnell@google.com>
128
130
  Raymond Cheng <raycheng100@gmail.com>
129
131
  Janroel Koppen <j.koppen@bluebillywig.com>
130
132
  Koen Romers <koenromers@gmail.com>
133
+ Ashley Manners <ashley.manners@xperi.com>
package/dist/controls.css CHANGED
@@ -51,4 +51,4 @@
51
51
  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
52
52
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
53
53
  * SOFTWARE.
54
- */.shaka-tooltips-on{overflow:visible}.shaka-tooltips-on>[class*=shaka-tooltip]{position:relative}.shaka-tooltips-on>[class*=shaka-tooltip]:active:after,.shaka-tooltips-on>[class*=shaka-tooltip]:focus-visible:after,.shaka-tooltips-on>[class*=shaka-tooltip]:hover:after{content:attr(aria-label);font-family:Roboto-Regular,Roboto,sans-serif;line-height:calc(32px / 2);white-space:nowrap;font-size:13px;background:rgba(35 35 35 / 90%);color:#fff;border-radius:3px;padding:5px 10px;position:absolute;bottom:calc(32px + 5px);left:calc(32px / 2);-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.shaka-tooltips-on>.shaka-tooltip-status:active:after,.shaka-tooltips-on>.shaka-tooltip-status:focus-visible:after,.shaka-tooltips-on>.shaka-tooltip-status:hover:after{content:attr(aria-label) " (" attr(shaka-status) ")"}.shaka-tooltips-on button:first-child:active:after,.shaka-tooltips-on button:first-child:focus-visible:after,.shaka-tooltips-on button:first-child:hover:after{left:0;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.shaka-tooltips-on button:last-child:active:after,.shaka-tooltips-on button:last-child:focus-visible:after,.shaka-tooltips-on button:last-child:hover:after{left:32px;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v107/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */
54
+ */.shaka-tooltips-on{overflow:visible}.shaka-tooltips-on>[class*=shaka-tooltip]{position:relative}.shaka-tooltips-on>[class*=shaka-tooltip]:active:after,.shaka-tooltips-on>[class*=shaka-tooltip]:focus-visible:after,.shaka-tooltips-on>[class*=shaka-tooltip]:hover:after{content:attr(aria-label);font-family:Roboto-Regular,Roboto,sans-serif;line-height:calc(32px / 2);white-space:nowrap;font-size:13px;background:rgba(35 35 35 / 90%);color:#fff;border-radius:3px;padding:5px 10px;position:absolute;bottom:calc(32px + 5px);left:calc(32px / 2);-webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%)}.shaka-tooltips-on>.shaka-tooltip-status:active:after,.shaka-tooltips-on>.shaka-tooltip-status:focus-visible:after,.shaka-tooltips-on>.shaka-tooltip-status:hover:after{content:attr(aria-label) " (" attr(shaka-status) ")"}.shaka-tooltips-on button:first-child:active:after,.shaka-tooltips-on button:first-child:focus-visible:after,.shaka-tooltips-on button:first-child:hover:after{left:0;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);-o-transform:translateX(0);transform:translateX(0)}.shaka-tooltips-on button:last-child:active:after,.shaka-tooltips-on button:last-child:focus-visible:after,.shaka-tooltips-on button:last-child:hover:after{left:32px;-webkit-transform:translateX(-100%);-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);-o-transform:translateX(-100%);transform:translateX(-100%)}@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxP.ttf) format('truetype')}@font-face{font-family:'Material Icons Round';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialiconsround/v108/LDItaoyNOAY6Uewc665JcIzCKsKc_M9flwmM.otf) format('opentype')}.material-icons-round{font-family:'Material Icons Round';font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr}/*# sourceMappingURL=controls.css.map */