shaka-player 4.3.7 → 4.3.8

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 +1 -1
  10. package/dist/locales.js +31 -31
  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 +215 -213
  14. package/dist/shaka-player.compiled.debug.map +3 -3
  15. package/dist/shaka-player.compiled.js +789 -786
  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 +253 -252
  20. package/dist/shaka-player.ui.debug.map +3 -3
  21. package/dist/shaka-player.ui.js +823 -820
  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 +24 -18
  27. package/lib/dash/dash_parser.js +18 -3
  28. package/lib/hls/hls_parser.js +23 -4
  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 +39 -19
  35. package/lib/media/video_wrapper.js +6 -1
  36. package/lib/player.js +12 -5
  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/stream_utils.js +1 -0
  41. package/package.json +2 -2
  42. package/test/cea/mp4_cea_parser_unit.js +28 -5
  43. package/test/dash/dash_parser_manifest_unit.js +120 -0
  44. package/test/hls/hls_parser_unit.js +144 -0
  45. package/test/media/region_observer_unit.js +2 -1
  46. package/test/media/streaming_engine_unit.js +26 -2
  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.3.8](https://github.com/shaka-project/shaka-player/compare/v4.3.7...v4.3.8) (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)) ([6ea1b0f](https://github.com/shaka-project/shaka-player/commit/6ea1b0f69fd946ee3011e3f5c60afb7a4bc787f2))
9
+ * **Demo:** Trim custom manifestUri to avoid copy-paste errors ([#5378](https://github.com/shaka-project/shaka-player/issues/5378)) ([8cc4ad9](https://github.com/shaka-project/shaka-player/commit/8cc4ad9bc75ab35906963108677b7e8ddd102408))
10
+ * Dispatch all emsg boxes, even if they are ID3 ([#5428](https://github.com/shaka-project/shaka-player/issues/5428)) ([dd649b9](https://github.com/shaka-project/shaka-player/commit/dd649b94683de06aa7e5c9d47dd90bdc63085c68))
11
+ * **docs:** fix player configuration code in drm config tutorial ([#5359](https://github.com/shaka-project/shaka-player/issues/5359)) ([89e319f](https://github.com/shaka-project/shaka-player/commit/89e319fcd1bca115f909e29206288c5e52eee3f0))
12
+ * **DRM:** broken keySystemsMapping due to multiple references of drmInfo ([#5388](https://github.com/shaka-project/shaka-player/issues/5388)) ([38b36fa](https://github.com/shaka-project/shaka-player/commit/38b36fa107b3f727babc04b161338333c6a10fbb))
13
+ * Fix captions from MP4s with multiple trun boxes ([#5422](https://github.com/shaka-project/shaka-player/issues/5422)) ([64fa19f](https://github.com/shaka-project/shaka-player/commit/64fa19f956e0f5486be253c8c7f5965fe8022d6c)), 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)) ([78f6408](https://github.com/shaka-project/shaka-player/commit/78f6408c5b784e210d0add1a399d9c220af503eb))
15
+ * Fix exception on Tizen due to unsupported Array method ([#5429](https://github.com/shaka-project/shaka-player/issues/5429)) ([527af7f](https://github.com/shaka-project/shaka-player/commit/527af7f38c3cf9ecd1355706203c8c075523e0e2))
16
+ * Fix failure when drivers lag behind browser ([#5423](https://github.com/shaka-project/shaka-player/issues/5423)) ([98e2c3e](https://github.com/shaka-project/shaka-player/commit/98e2c3e857ed2da3e0b6139b9da64244b67db788))
17
+ * Gap jump at start when first jump lands in a new gap ([#5408](https://github.com/shaka-project/shaka-player/issues/5408)) ([9cb92eb](https://github.com/shaka-project/shaka-player/commit/9cb92eb96ec38a7eec7604210fcff74d6ec5dff5))
18
+ * gap jumping when gap exists at start position ([#5384](https://github.com/shaka-project/shaka-player/issues/5384)) ([c1a94ba](https://github.com/shaka-project/shaka-player/commit/c1a94baae7505c362be26062923a8fa938e47095))
19
+ * **HLS:** Add subtitle role when there are no roles ([#5357](https://github.com/shaka-project/shaka-player/issues/5357)) ([49e3734](https://github.com/shaka-project/shaka-player/commit/49e3734870122ca633e6089e7ef4fab0e28e1a0a))
20
+ * **HLS:** Fix dvh1 and dvhe detection as video codec ([#5364](https://github.com/shaka-project/shaka-player/issues/5364)) ([1181a35](https://github.com/shaka-project/shaka-player/commit/1181a35c01a02d5a3985a29c987dc6a0573bf91b))
21
+ * **HLS:** Ignore segments with zero duration ([#5371](https://github.com/shaka-project/shaka-player/issues/5371)) ([7b46edd](https://github.com/shaka-project/shaka-player/commit/7b46eddc9df497964fb66fef600d296fc6b80bbd))
22
+ * **media:** Fix region checking in livestreams ([#5361](https://github.com/shaka-project/shaka-player/issues/5361)) ([b77a947](https://github.com/shaka-project/shaka-player/commit/b77a94773dc4675b21e6c9c8ab937d5347d70411)), 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)) ([be65280](https://github.com/shaka-project/shaka-player/commit/be652801cc3b94345d2676820c178a8716ad04e5))
24
+ * prevent access to null config_ in SimpleAbrManager ([#5362](https://github.com/shaka-project/shaka-player/issues/5362)) ([e6f69fb](https://github.com/shaka-project/shaka-player/commit/e6f69fb61be123ac7306580558000ae8c40ef564))
25
+ * **UI:** Fix resolution selection on src= ([#5367](https://github.com/shaka-project/shaka-player/issues/5367)) ([5118b24](https://github.com/shaka-project/shaka-player/commit/5118b2444cfa061f7ec275fc0cd3ac8cd493bc90))
26
+ * **WebVTT:** Add support to middle position ([#5366](https://github.com/shaka-project/shaka-player/issues/5366)) ([5fc095c](https://github.com/shaka-project/shaka-player/commit/5fc095cd72e7f4a710a6eec9b92723872283afdf))
27
+
3
28
  ## [4.3.7](https://github.com/shaka-project/shaka-player/compare/v4.3.6...v4.3.7) (2023-06-21)
4
29
 
5
30
 
package/CONTRIBUTORS CHANGED
@@ -135,3 +135,4 @@ João Nabais <jlnabais@gmail.com>
135
135
  Koen Romers <koenromers@gmail.com>
136
136
  Zhenghang Chen <czhtju@gmail.com>
137
137
  Ashley Manners <ashley.manners@xperi.com>
138
+ 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);
@@ -250,8 +250,8 @@ this.makeField_(c,d,(e,f)=>{a.imaManifestType&&(e.value=a.imaManifestType);this.
250
250
  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);
251
251
  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",
252
252
  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,
253
- 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=
254
- 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);
253
+ 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()});
254
+ 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);
255
255
  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||
256
256
  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);
257
257
  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"),