shaka-player 4.2.11 → 4.2.12

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 (49) hide show
  1. package/.github/workflows/appspot.yaml +39 -0
  2. package/CHANGELOG.md +25 -0
  3. package/CONTRIBUTORS +1 -0
  4. package/demo/custom.js +1 -1
  5. package/dist/demo.compiled.debug.js +2 -2
  6. package/dist/demo.compiled.debug.map +2 -2
  7. package/dist/demo.compiled.js +2 -2
  8. package/dist/demo.compiled.map +2 -2
  9. package/dist/deps.js +2 -2
  10. package/dist/locales.js +30 -30
  11. package/dist/shaka-player.compiled.d.ts +22 -0
  12. package/dist/shaka-player.compiled.debug.d.ts +22 -0
  13. package/dist/shaka-player.compiled.debug.js +216 -214
  14. package/dist/shaka-player.compiled.debug.map +3 -3
  15. package/dist/shaka-player.compiled.js +735 -734
  16. package/dist/shaka-player.compiled.map +4 -4
  17. package/dist/shaka-player.ui.d.ts +22 -0
  18. package/dist/shaka-player.ui.debug.d.ts +22 -0
  19. package/dist/shaka-player.ui.debug.js +241 -238
  20. package/dist/shaka-player.ui.debug.map +3 -3
  21. package/dist/shaka-player.ui.js +916 -915
  22. package/dist/shaka-player.ui.map +4 -4
  23. package/docs/tutorials/drm-config.md +9 -6
  24. package/externs/ima.js +34 -0
  25. package/lib/abr/simple_abr_manager.js +1 -1
  26. package/lib/cea/mp4_cea_parser.js +30 -14
  27. package/lib/dash/dash_parser.js +18 -3
  28. package/lib/hls/hls_parser.js +13 -2
  29. package/lib/media/drm_engine.js +14 -8
  30. package/lib/media/gap_jumping_controller.js +24 -2
  31. package/lib/media/media_source_engine.js +5 -3
  32. package/lib/media/playhead.js +11 -0
  33. package/lib/media/region_observer.js +19 -1
  34. package/lib/media/streaming_engine.js +7 -3
  35. package/lib/media/video_wrapper.js +6 -1
  36. package/lib/player.js +9 -4
  37. package/lib/polyfill/abort_controller.js +7 -0
  38. package/lib/text/vtt_text_parser.js +2 -1
  39. package/lib/util/manifest_parser_utils.js +1 -1
  40. package/lib/util/mp4_box_parsers.js +8 -3
  41. package/lib/util/stream_utils.js +1 -0
  42. package/package.json +2 -3
  43. package/test/cea/mp4_cea_parser_unit.js +26 -3
  44. package/test/dash/dash_parser_manifest_unit.js +120 -0
  45. package/test/hls/hls_parser_unit.js +150 -0
  46. package/test/media/region_observer_unit.js +2 -1
  47. package/test/test/assets/multiple-trun-init.mp4 +0 -0
  48. package/test/test/assets/multiple-trun-segment.mp4 +0 -0
  49. package/ui/resolution_selection.js +7 -1
@@ -0,0 +1,39 @@
1
+ name: Deploy to Appspot (one-off)
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ # Allows for manual triggering, to correct deployment issues.
6
+ inputs:
7
+ ref:
8
+ description: "A tag name or SHA1 to deploy."
9
+ required: true
10
+ subdomain:
11
+ description: "An appspot subdomain to deploy to. Be careful! Do not overwrite an existing subdomain!"
12
+ required: true
13
+
14
+ jobs:
15
+ appspot:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v3
19
+ with:
20
+ ref: ${{ inputs.ref }}
21
+ fetch-depth: 0
22
+ persist-credentials: false
23
+
24
+ - uses: actions/setup-node@v1
25
+ with:
26
+ node-version: 16
27
+ registry-url: 'https://registry.npmjs.org'
28
+
29
+ - uses: ./.github/workflows/custom-actions/prep-for-appspot
30
+
31
+ - uses: google-github-actions/auth@v0
32
+ with:
33
+ credentials_json: '${{ secrets.APPENGINE_DEPLOY_KEY }}'
34
+
35
+ - uses: google-github-actions/deploy-appengine@v0
36
+ with:
37
+ project_id: shaka-player-demo
38
+ version: ${{ inputs.subdomain }}
39
+ promote: false
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.2.12](https://github.com/shaka-project/shaka-player/compare/v4.2.11...v4.2.12) (2023-07-21)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **DASH:** Avoid "Possible encoding problem detected!" when appending chunked data ([#5376](https://github.com/shaka-project/shaka-player/issues/5376)) ([ad9de15](https://github.com/shaka-project/shaka-player/commit/ad9de15043491d5969f44d7d864041c19af3b108))
9
+ * **demo:** Fix deployment of v4.2.x on appspot ([d8b2378](https://github.com/shaka-project/shaka-player/commit/d8b2378ff565a6aec2de2689219001a1c2a16308))
10
+ * **Demo:** Trim custom manifestUri to avoid copy-paste errors ([#5378](https://github.com/shaka-project/shaka-player/issues/5378)) ([d7d2bcb](https://github.com/shaka-project/shaka-player/commit/d7d2bcb6aab0cb4b670889e380f4705444b2848e))
11
+ * **docs:** fix player configuration code in drm config tutorial ([#5359](https://github.com/shaka-project/shaka-player/issues/5359)) ([c5e0f8b](https://github.com/shaka-project/shaka-player/commit/c5e0f8b967d0327eb1d9ab50b4db77990d84a1ed))
12
+ * **DRM:** broken keySystemsMapping due to multiple references of drmInfo ([#5388](https://github.com/shaka-project/shaka-player/issues/5388)) ([8906548](https://github.com/shaka-project/shaka-player/commit/8906548b6c40b0ac3023c80f1bad02496aff0014))
13
+ * Fix captions from MP4s with multiple trun boxes ([#5422](https://github.com/shaka-project/shaka-player/issues/5422)) ([b41186e](https://github.com/shaka-project/shaka-player/commit/b41186e3cfe7e3e2f633a24d5c9c88e8eb025fef)), closes [#5328](https://github.com/shaka-project/shaka-player/issues/5328)
14
+ * Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients ([#5345](https://github.com/shaka-project/shaka-player/issues/5345)) ([e2968ca](https://github.com/shaka-project/shaka-player/commit/e2968ca7ad5ae5a3b3dea56029d2815214564a52))
15
+ * Fix exception on Tizen due to unsupported Array method ([#5429](https://github.com/shaka-project/shaka-player/issues/5429)) ([0fe4d5c](https://github.com/shaka-project/shaka-player/commit/0fe4d5c6f7dbe5e6254b8173cec5ce796c14f5bf))
16
+ * Fix failure when drivers lag behind browser ([#5423](https://github.com/shaka-project/shaka-player/issues/5423)) ([30f464f](https://github.com/shaka-project/shaka-player/commit/30f464f5f06b0f5e7779e7c4a6dedca6ae90277c))
17
+ * Gap jump at start when first jump lands in a new gap ([#5408](https://github.com/shaka-project/shaka-player/issues/5408)) ([1ead685](https://github.com/shaka-project/shaka-player/commit/1ead685075de79591a5909e4e06ac5dd380e3e92))
18
+ * gap jumping when gap exists at start position ([#5384](https://github.com/shaka-project/shaka-player/issues/5384)) ([bd5bade](https://github.com/shaka-project/shaka-player/commit/bd5badef95428ae515262d104770e88b71493469))
19
+ * **HLS:** Add subtitle role when there are no roles ([#5357](https://github.com/shaka-project/shaka-player/issues/5357)) ([c5a5ddb](https://github.com/shaka-project/shaka-player/commit/c5a5ddbfd0bfca21b686f2ec99c5dedb0da71fba))
20
+ * **HLS:** Fix dvh1 and dvhe detection as video codec ([#5364](https://github.com/shaka-project/shaka-player/issues/5364)) ([3373a41](https://github.com/shaka-project/shaka-player/commit/3373a41f483a8807d4de7effe7310fdf488999a5))
21
+ * **HLS:** Ignore segments with zero duration ([#5371](https://github.com/shaka-project/shaka-player/issues/5371)) ([29b81ea](https://github.com/shaka-project/shaka-player/commit/29b81ea3c12638feb210e79a5ee28a9ece34656f))
22
+ * **media:** Fix region checking in livestreams ([#5361](https://github.com/shaka-project/shaka-player/issues/5361)) ([007a259](https://github.com/shaka-project/shaka-player/commit/007a2593096fae079c068a89dcfea338ec6d677e)), closes [#5213](https://github.com/shaka-project/shaka-player/issues/5213)
23
+ * Populate HDR correctly ([#5369](https://github.com/shaka-project/shaka-player/issues/5369)) ([db67d8d](https://github.com/shaka-project/shaka-player/commit/db67d8d4c257a53b43456f63a68b19bd0ae9f08f))
24
+ * prevent access to null config_ in SimpleAbrManager ([#5362](https://github.com/shaka-project/shaka-player/issues/5362)) ([80973d7](https://github.com/shaka-project/shaka-player/commit/80973d7d033d4a876af1a3376877e3c36a55ecc9))
25
+ * **UI:** Fix resolution selection on src= ([#5367](https://github.com/shaka-project/shaka-player/issues/5367)) ([b570e92](https://github.com/shaka-project/shaka-player/commit/b570e92a3d0d49fe47d9051f48fb55196cc8b38e))
26
+ * **WebVTT:** Add support to middle position ([#5366](https://github.com/shaka-project/shaka-player/issues/5366)) ([6481e29](https://github.com/shaka-project/shaka-player/commit/6481e2902de33aa0b5cd7c2373c764bd3143a866))
27
+
3
28
  ## [4.2.11](https://github.com/shaka-project/shaka-player/compare/v4.2.10...v4.2.11) (2023-06-20)
4
29
 
5
30
 
package/CONTRIBUTORS CHANGED
@@ -131,3 +131,4 @@ Raymond Cheng <raycheng100@gmail.com>
131
131
  Janroel Koppen <j.koppen@bluebillywig.com>
132
132
  Koen Romers <koenromers@gmail.com>
133
133
  Ashley Manners <ashley.manners@xperi.com>
134
+ Bidisha Das <officialbidisha1@gmail.com>
package/demo/custom.js CHANGED
@@ -567,7 +567,7 @@ shakaDemo.Custom = class {
567
567
  this.manifestField_ = input;
568
568
  };
569
569
  const manifestOnChange = (input) => {
570
- assetInProgress.manifestUri = input.value;
570
+ assetInProgress.manifestUri = input.value.trim();
571
571
  };
572
572
  const manifestURLName = shakaDemoMain.getLocalizedString(
573
573
  shakaDemo.MessageIds.MANIFEST_URL);
@@ -249,8 +249,8 @@ this.makeField_(c,d,(e,f)=>{a.imaManifestType&&(e.value=a.imaManifestType);this.
249
249
  h);k&&a.licenseServers.set(k,h)}else a.licenseServers.clear()};var g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_SERVER_URL);this.makeField_(c,g,(h,k)=>{d=h;(k=a.licenseServers.keys().next())&&k.value&&(h.value=a.licenseServers.get(k.value))},h=>{f()});g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_CERTIFICATE_URL);this.makeField_(c,g,(h,k)=>{a.certificateUri&&(h.value=a.certificateUri)},h=>{a.certificateUri=h.value});g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.DRM_SYSTEM);
250
250
  this.makeField_(c,g,(h,k)=>{e=h;k=a.licenseServers.keys();for(const l of k)if(!shakaDemo.Main.commonDrmSystems.includes(l)){h.value=l;break}},h=>{f()});return b}makeAssetDialogContentsExtra_(a,b){const c=document.createElement("div"),d=new shakaDemo.InputContainer(c,null,shakaDemo.InputContainer.Style.FLEX,null);d.getClassList().add("wide-input");d.setDefaultRowClass("wide-input");const e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.EXTRA_SHAKA_PLAYER_CONFIG);this.makeField_(d,e,(f,g)=>{f.setAttribute("rows",
251
251
  10);a.extraConfig&&(f.value=JSON.stringify(a.extraConfig,null,2));b.push(f);f=document.createElement("span");f.classList.add("mdl-textfield__error");f.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.INVALID_JSON_CONFIG_ERROR);g.appendChild(f)},(f,g)=>{try{if(f.value){const h=JSON.parse(f.value);a.extraConfig=h}else a.extraConfig=null;g.setValid(!0)}catch(h){g.setValid(!1)}},!0);return c}makeAssetDialogContentsMain_(a,b,c){const d=document.createElement("div"),e=new shakaDemo.InputContainer(d,
252
- null,shakaDemo.InputContainer.Style.VERTICAL,null);var f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL);this.makeField_(e,f,(g,h)=>{g.value=a.manifestUri;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL_ERROR);h.appendChild(k);g.required=this.checkManifestRequired_(a);g.pattern="^(?!([\r\n\t\f\v ]+)$).*$";this.manifestField_=g},g=>{a.manifestUri=g.value});f=
253
- shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME);this.makeField_(e,f,(g,h)=>{g.value=a.name;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME_ERROR);h.appendChild(k);g.required=!0;g.pattern="^(?!( *";for(const l of this.assets_)l!=a&&(g.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));g.pattern+=")$).*$"},g=>{a.name=g.value});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.ICON_URL);
252
+ null,shakaDemo.InputContainer.Style.VERTICAL,null);var f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL);this.makeField_(e,f,(g,h)=>{g.value=a.manifestUri;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL_ERROR);h.appendChild(k);g.required=this.checkManifestRequired_(a);g.pattern="^(?!([\r\n\t\f\v ]+)$).*$";this.manifestField_=g},g=>{a.manifestUri=g.value.trim()});
253
+ f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME);this.makeField_(e,f,(g,h)=>{g.value=a.name;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME_ERROR);h.appendChild(k);g.required=!0;g.pattern="^(?!( *";for(const l of this.assets_)l!=a&&(g.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));g.pattern+=")$).*$"},g=>{a.name=g.value});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.ICON_URL);
254
254
  this.makeField_(e,f,(g,h)=>{a.iconUri&&(g.value=a.iconUri,h=document.createElement("img"),h.src=g.value,h.alt="",c.appendChild(h))},g=>{shaka.util.Dom.removeAllChildren(c);if(a.iconUri=g.value){const h=document.createElement("img");h.src=g.value;h.alt="";c.appendChild(h)}});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MIME_TYPE);this.makeField_(e,f,(g,h)=>{a.mimeType&&(g.value=a.mimeType)},g=>{a.mimeType=g.value||null});return d}checkManifestRequired_(a){return!(a.imaContentSrcId&&a.imaVideoId||
255
255
  null!=a.imaAssetKey)}makeAssetDialogContentsFinish_(a,b){const c=document.createElement("tr"),d=shakaDemo.Custom.ButtonStyle_.RAISED;var e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.SAVE_BUTTON);c.appendChild(this.makeButton_(e,d,()=>{for(const f of b)if(!f.validity.valid)return;shakaDemoMain.setupOfflineSupport(a);this.assets_.add(a);this.saveAssetInfos_(this.assets_);this.remakeSavedList_();this.dialog_.close()}));e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.CANCEL_BUTTON);
256
256
  c.appendChild(this.makeButton_(e,d,()=>{this.dialog_.close()}));return c}showAssetDialog_(a){shaka.util.Dom.removeAllChildren(this.dialog_);var b=[];const c=document.createElement("div"),d=this.makeAssetDialogContentsMain_(a,b,c),e=this.makeAssetDialogContentsDrm_(a,b),f=this.makeAssetDialogContentsHeaders_(a,b),g=this.makeAssetDialogContentsAds_(a,b),h=this.makeAssetDialogContentsHLS_(a,b),k=this.makeAssetDialogContentsExtra_(a,b);a=this.makeAssetDialogContentsFinish_(a,b);const l=document.createElement("tr"),