@videojs/html 10.0.0-beta.28 → 10.0.0-beta.29
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.
- package/cdn/{adapter-XTen-YVQ.js → adapter-CEnNWvii.js} +17 -4
- package/cdn/adapter-CEnNWvii.js.map +1 -0
- package/cdn/adapter-DaKW8NzI.js +2 -0
- package/cdn/adapter-DaKW8NzI.js.map +1 -0
- package/cdn/audio-headless.dev.js +1 -1
- package/cdn/audio-headless.js +1 -1
- package/cdn/audio-minimal-ui.dev.js +2 -2
- package/cdn/audio-minimal-ui.js +1 -1
- package/cdn/audio-minimal.dev.js +5 -5
- package/cdn/audio-minimal.dev.js.map +1 -1
- package/cdn/audio-minimal.js +1 -1
- package/cdn/audio-minimal.js.map +1 -1
- package/cdn/audio-ui.dev.js +2 -2
- package/cdn/audio-ui.js +1 -1
- package/cdn/audio.dev.js +5 -5
- package/cdn/audio.dev.js.map +1 -1
- package/cdn/audio.js +1 -1
- package/cdn/audio.js.map +1 -1
- package/cdn/background.dev.js +1 -1
- package/cdn/background.js +1 -1
- package/cdn/background.js.map +1 -1
- package/cdn/compounds-C4YYLyL2.js +8 -0
- package/cdn/compounds-C4YYLyL2.js.map +1 -0
- package/cdn/{compounds-nk9RJtBK.js → compounds-C73u1MeO.js} +63 -59
- package/cdn/compounds-C73u1MeO.js.map +1 -0
- package/cdn/create-player-BU8LDJDL.js +2 -0
- package/cdn/create-player-BU8LDJDL.js.map +1 -0
- package/cdn/{create-player-DK9WOywd.js → create-player-Db1CIvlK.js} +58 -46
- package/cdn/create-player-Db1CIvlK.js.map +1 -0
- package/cdn/{default-BqQDVloS.js → default-A3aM0skz.js} +2 -2
- package/cdn/default-A3aM0skz.js.map +1 -0
- package/cdn/default-BDyhiTCm.js +2 -0
- package/cdn/default-BDyhiTCm.js.map +1 -0
- package/cdn/{default-I2LasfxC.js → default-C1_k1NeB.js} +2 -2
- package/cdn/default-C1_k1NeB.js.map +1 -0
- package/cdn/default-DHrMd4ie.js +2 -0
- package/cdn/default-DHrMd4ie.js.map +1 -0
- package/cdn/error-surface-BID4D3DW.js +59 -0
- package/cdn/error-surface-BID4D3DW.js.map +1 -0
- package/cdn/{select-tracks-nRPBa1NC.js → error-surface-D0bo71gD.js} +442 -48
- package/cdn/error-surface-D0bo71gD.js.map +1 -0
- package/cdn/gesture-element-CeRy1IVs.js +2 -0
- package/cdn/gesture-element-CeRy1IVs.js.map +1 -0
- package/cdn/{gesture-element-6Ld1YwIL.js → gesture-element-DB67OYCE.js} +3 -3
- package/cdn/gesture-element-DB67OYCE.js.map +1 -0
- package/cdn/{hls-js-C4P_b2tT.js → hls-js-CiE4wOrG.js} +2 -2
- package/cdn/{hls-js-C4P_b2tT.js.map → hls-js-CiE4wOrG.js.map} +1 -1
- package/cdn/{hls-js-CATW7NBm.js → hls-js-DBKRCbQm.js} +2 -2
- package/cdn/{hls-js-CATW7NBm.js.map → hls-js-DBKRCbQm.js.map} +1 -1
- package/cdn/{hls-js-BEuVm0u9.js → hls-js-DX2NGCAr.js} +2 -2
- package/cdn/{hls-js-BEuVm0u9.js.map → hls-js-DX2NGCAr.js.map} +1 -1
- package/cdn/{hls-js-WCNy9MVh.js → hls-js-JeH8yvsP.js} +2 -2
- package/cdn/{hls-js-WCNy9MVh.js.map → hls-js-JeH8yvsP.js.map} +1 -1
- package/cdn/i18n-CpBDXf6M.js +2 -0
- package/cdn/{i18n-Dc7WM2xd.js.map → i18n-CpBDXf6M.js.map} +1 -1
- package/cdn/{i18n-Ch4t6EjV.js → i18n-D0nhPa0m.js} +2 -2
- package/cdn/{i18n-Ch4t6EjV.js.map → i18n-D0nhPa0m.js.map} +1 -1
- package/cdn/{live-button-element-DaHgnYdw.js → live-button-element-Co8z2LkI.js} +2 -2
- package/cdn/{live-button-element-DaHgnYdw.js.map → live-button-element-Co8z2LkI.js.map} +1 -1
- package/cdn/{live-button-element-Bae44kBN.js → live-button-element-zE-8uoR2.js} +3 -3
- package/cdn/{live-button-element-Bae44kBN.js.map → live-button-element-zE-8uoR2.js.map} +1 -1
- package/cdn/live-video-minimal.dev.js +11 -9
- package/cdn/live-video-minimal.dev.js.map +1 -1
- package/cdn/live-video-minimal.js +1 -1
- package/cdn/live-video-minimal.js.map +1 -1
- package/cdn/live-video.dev.js +12 -10
- package/cdn/live-video.dev.js.map +1 -1
- package/cdn/live-video.js +1 -1
- package/cdn/live-video.js.map +1 -1
- package/cdn/media/hls-audio.dev.js +1 -1
- package/cdn/media/hls-audio.js +1 -1
- package/cdn/media/hls-background-video.dev.js +1 -1
- package/cdn/media/hls-background-video.js +1 -1
- package/cdn/media/hls-video.dev.js +1 -1
- package/cdn/media/hls-video.js +1 -1
- package/cdn/media/mux-audio/hls-js.dev.js +1 -1
- package/cdn/media/mux-audio/hls-js.js +1 -1
- package/cdn/media/mux-audio/spf.dev.js +2 -2
- package/cdn/media/mux-audio/spf.js +1 -1
- package/cdn/media/mux-audio.dev.js +1 -1
- package/cdn/media/mux-audio.js +1 -1
- package/cdn/media/mux-background-video.dev.js +1 -1
- package/cdn/media/mux-background-video.js +1 -1
- package/cdn/media/mux-data.dev.js +1 -1
- package/cdn/media/mux-data.dev.js.map +1 -1
- package/cdn/media/mux-data.js +1 -1
- package/cdn/media/mux-data.js.map +1 -1
- package/cdn/media/mux-video/hls-js.dev.js +1 -1
- package/cdn/media/mux-video/hls-js.js +1 -1
- package/cdn/media/mux-video/spf.dev.js +2 -2
- package/cdn/media/mux-video/spf.js +1 -1
- package/cdn/media/mux-video.dev.js +1 -1
- package/cdn/media/mux-video.js +1 -1
- package/cdn/media/vimeo-video.dev.js +27 -5
- package/cdn/media/vimeo-video.dev.js.map +1 -1
- package/cdn/media/vimeo-video.js +1 -1
- package/cdn/media/vimeo-video.js.map +1 -1
- package/cdn/{media-Uxm0d3Vx.js → media-BI8caj07.js} +3 -3
- package/cdn/{media-Uxm0d3Vx.js.map → media-BI8caj07.js.map} +1 -1
- package/cdn/{media-COIe3uI5.js → media-BNuI0Im7.js} +19 -6
- package/cdn/media-BNuI0Im7.js.map +1 -0
- package/cdn/media-CQxFuDcv.js +2 -0
- package/cdn/{media-CPVSKLdk.js.map → media-CQxFuDcv.js.map} +1 -1
- package/cdn/media-D4tG62L5.js +2 -0
- package/cdn/{media-BTipOcKo.js.map → media-D4tG62L5.js.map} +1 -1
- package/cdn/{media-oa3nyL2o.js → media-DI6DvYm3.js} +3 -3
- package/cdn/{media-oa3nyL2o.js.map → media-DI6DvYm3.js.map} +1 -1
- package/cdn/media-DU3Xf5XR.js +2 -0
- package/cdn/media-DU3Xf5XR.js.map +1 -0
- package/cdn/media-mYKOAsk3.js +825 -0
- package/cdn/media-mYKOAsk3.js.map +1 -0
- package/cdn/media-zReLnePj.js +2 -0
- package/cdn/media-zReLnePj.js.map +1 -0
- package/cdn/{minimal-DQCLKRyR.js → minimal-3OmH0xQS.js} +2 -2
- package/cdn/minimal-3OmH0xQS.js.map +1 -0
- package/cdn/{minimal-DLosvq31.js → minimal-6w_Vyyl9.js} +2 -2
- package/cdn/minimal-6w_Vyyl9.js.map +1 -0
- package/cdn/minimal-BWLTn7oQ.js +2 -0
- package/cdn/minimal-BWLTn7oQ.js.map +1 -0
- package/cdn/minimal-DIGrklyh.js +2 -0
- package/cdn/minimal-DIGrklyh.js.map +1 -0
- package/cdn/{minimal-ui-CRKvUmB8.js → minimal-ui-BCIESK8f.js} +8 -8
- package/cdn/{minimal-ui-CRKvUmB8.js.map → minimal-ui-BCIESK8f.js.map} +1 -1
- package/cdn/minimal-ui-BXrq3z4U.js +2 -0
- package/cdn/{minimal-ui-Et2Wcn7r.js.map → minimal-ui-BXrq3z4U.js.map} +1 -1
- package/cdn/{minimal-ui-BpHxIo4z.js → minimal-ui-DEalpMk6.js} +4 -4
- package/cdn/{minimal-ui-BpHxIo4z.js.map → minimal-ui-DEalpMk6.js.map} +1 -1
- package/cdn/{minimal-ui-8iRZf_72.js → minimal-ui-vY3QgohH.js} +2 -2
- package/cdn/{minimal-ui-8iRZf_72.js.map → minimal-ui-vY3QgohH.js.map} +1 -1
- package/cdn/{player-DM9rUXg-.js → player-B3GlPF90.js} +2 -2
- package/cdn/{player-DM9rUXg-.js.map → player-B3GlPF90.js.map} +1 -1
- package/cdn/player-CtTC7qa5.js +2 -0
- package/cdn/{player-rCFqzWrA.js.map → player-CtTC7qa5.js.map} +1 -1
- package/cdn/player-DKkph8UM.js +2 -0
- package/cdn/{player-BRQLp5bX.js.map → player-DKkph8UM.js.map} +1 -1
- package/cdn/{player-CKTAtwit.js → player-DPDmTRvg.js} +2 -2
- package/cdn/{player-CKTAtwit.js.map → player-DPDmTRvg.js.map} +1 -1
- package/cdn/player-DrDd7LJi.js +2 -0
- package/cdn/{player-BloX4l6F.js.map → player-DrDd7LJi.js.map} +1 -1
- package/cdn/{player-B2oraRyD.js → player-L5UpZmT4.js} +2 -2
- package/cdn/{player-B2oraRyD.js.map → player-L5UpZmT4.js.map} +1 -1
- package/cdn/{poster-element-BGr1VQJB.js → poster-element-B5tdJ2ub.js} +179 -38
- package/cdn/poster-element-B5tdJ2ub.js.map +1 -0
- package/cdn/poster-element-B8QwXSU_.js +2 -0
- package/cdn/poster-element-B8QwXSU_.js.map +1 -0
- package/cdn/{error-surface-drmCvBVW.js → relocation-pipelines-Dh8CcgHw.js} +5 -343
- package/cdn/relocation-pipelines-Dh8CcgHw.js.map +1 -0
- package/cdn/relocation-pipelines-DunE4gcV.js +2 -0
- package/cdn/relocation-pipelines-DunE4gcV.js.map +1 -0
- package/cdn/{seek-button-element-XMTLIxZj.js → seek-button-element-5co-k0Dx.js} +4 -4
- package/cdn/seek-button-element-5co-k0Dx.js.map +1 -0
- package/cdn/{seek-button-element-FlgBVoGM.js → seek-button-element-B8TkILg-.js} +2 -2
- package/cdn/{seek-button-element-FlgBVoGM.js.map → seek-button-element-B8TkILg-.js.map} +1 -1
- package/cdn/shallow-equal-C7S8rj2f.js +16 -0
- package/cdn/shallow-equal-C7S8rj2f.js.map +1 -0
- package/cdn/shallow-equal-KV1zFqZi.js +2 -0
- package/cdn/shallow-equal-KV1zFqZi.js.map +1 -0
- package/cdn/{skin-element-DL-Kqa5f.js → skin-element-DrkI8xuM.js} +2 -2
- package/cdn/{skin-element-DL-Kqa5f.js.map → skin-element-DrkI8xuM.js.map} +1 -1
- package/cdn/{skin-element-DNytI-uu.js → skin-element-DvX6Bxsv.js} +2 -2
- package/cdn/{skin-element-DNytI-uu.js.map → skin-element-DvX6Bxsv.js.map} +1 -1
- package/cdn/{text-element-DeWBNKXb.js → text-element-BoY6AhMn.js} +2 -2
- package/cdn/{text-element-DeWBNKXb.js.map → text-element-BoY6AhMn.js.map} +1 -1
- package/cdn/{text-element-D88ArbZz.js → text-element-cg6l21cd.js} +2 -2
- package/cdn/{text-element-D88ArbZz.js.map → text-element-cg6l21cd.js.map} +1 -1
- package/cdn/time-slider-chapters-element-BfLjdnU4.js +2 -0
- package/cdn/time-slider-chapters-element-BfLjdnU4.js.map +1 -0
- package/cdn/{time-slider-chapters-element-DJ0abZXI.js → time-slider-chapters-element-CznFQWFm.js} +5 -5
- package/cdn/time-slider-chapters-element-CznFQWFm.js.map +1 -0
- package/cdn/{ui-BU3_2gDQ.js → ui-BwzqkJNK.js} +7 -7
- package/cdn/{ui-BU3_2gDQ.js.map → ui-BwzqkJNK.js.map} +1 -1
- package/cdn/ui-DayfItun.js +2 -0
- package/cdn/{ui-C0isALTQ.js.map → ui-DayfItun.js.map} +1 -1
- package/cdn/ui-PSnD-pv8.js +2 -0
- package/cdn/{ui-DVpkE1MN.js.map → ui-PSnD-pv8.js.map} +1 -1
- package/cdn/{ui-BsaWWE4y.js → ui-fnKp94a7.js} +9 -9
- package/cdn/{ui-BsaWWE4y.js.map → ui-fnKp94a7.js.map} +1 -1
- package/cdn/video-headless.dev.js +1 -1
- package/cdn/video-headless.js +1 -1
- package/cdn/video-minimal-ui.dev.js +2 -2
- package/cdn/video-minimal-ui.js +1 -1
- package/cdn/video-minimal.dev.js +8 -6
- package/cdn/video-minimal.dev.js.map +1 -1
- package/cdn/video-minimal.js +1 -1
- package/cdn/video-minimal.js.map +1 -1
- package/cdn/video-ui.dev.js +2 -2
- package/cdn/video-ui.js +1 -1
- package/cdn/video.dev.js +9 -7
- package/cdn/video.dev.js.map +1 -1
- package/cdn/video.js +1 -1
- package/cdn/video.js.map +1 -1
- package/dist/default/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/default/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/default/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/default/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/default/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/default/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/default/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/default/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/default/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/default/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/default/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/default/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/default/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/default/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/default/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/default/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/default/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/default/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/default/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/default/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/default/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/default/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/default/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/default/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/default/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/default/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/default/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/default/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/default/define/audio/minimal-skin.css +103 -101
- package/dist/default/define/audio/skin.css +68 -69
- package/dist/default/define/live-audio/minimal-skin.css +103 -101
- package/dist/default/define/live-audio/skin.css +68 -69
- package/dist/default/define/live-video/minimal-skin.css +140 -120
- package/dist/default/define/live-video/minimal-skin.js +1 -1
- package/dist/default/define/live-video/minimal-skin.js.map +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/live-video/skin.css +89 -76
- package/dist/default/define/live-video/skin.js +1 -1
- package/dist/default/define/live-video/skin.js.map +1 -1
- package/dist/default/define/live-video/skin.tailwind.js +1 -1
- package/dist/default/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/default/define/ui/gesture.js +7 -0
- package/dist/default/define/ui/gesture.js.map +1 -0
- package/dist/default/define/video/minimal-skin.css +140 -120
- package/dist/default/define/video/minimal-skin.js +1 -1
- package/dist/default/define/video/minimal-skin.js.map +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js +1 -1
- package/dist/default/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/default/define/video/skin.css +89 -76
- package/dist/default/define/video/skin.js +1 -1
- package/dist/default/define/video/skin.js.map +1 -1
- package/dist/default/define/video/skin.tailwind.js +1 -1
- package/dist/default/define/video/skin.tailwind.js.map +1 -1
- package/dist/default/icons/dist/element/default/icons.js +1 -1
- package/dist/default/icons/dist/element/default/icons.js.map +1 -1
- package/dist/default/icons/dist/element/minimal/icons.js +1 -1
- package/dist/default/icons/dist/element/minimal/icons.js.map +1 -1
- package/dist/default/icons/dist/html/default/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/default/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/html/minimal/airplay-exit.js +1 -1
- package/dist/default/icons/dist/html/minimal/airplay-exit.js.map +1 -1
- package/dist/default/icons/dist/render/default/index.js +1 -1
- package/dist/default/icons/dist/render/default/index.js.map +1 -1
- package/dist/default/icons/dist/render/minimal/index.js +1 -1
- package/dist/default/icons/dist/render/minimal/index.js.map +1 -1
- package/dist/default/media/hls-background-video/media.js +18 -0
- package/dist/default/media/hls-background-video/media.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/default/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js +10 -10
- package/dist/default/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
- package/dist/default/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/default/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
- package/dist/default/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/default/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/default/store/provider-mixin.js +22 -8
- package/dist/default/store/provider-mixin.js.map +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
- package/dist/default/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group-element.js +1 -1
- package/dist/default/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
- package/dist/default/ui/gesture/gesture-element.js.map +1 -1
- package/dist/default/ui/hotkey/hotkey-element.js.map +1 -1
- package/dist/default/ui/menu/context.js.map +1 -1
- package/dist/default/ui/menu/menu-element.js +28 -27
- package/dist/default/ui/menu/menu-element.js.map +1 -1
- package/dist/default/ui/menu/menu-radio-group-element.js +14 -14
- package/dist/default/ui/menu/menu-radio-group-element.js.map +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
- package/dist/default/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
- package/dist/default/ui/poster/poster-element.js +138 -8
- package/dist/default/ui/poster/poster-element.js.map +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group-element.js +1 -1
- package/dist/default/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
- package/dist/default/ui/slider/slider-preview-element.js.map +1 -1
- package/dist/dev/__generated__/skins/default-video/styles/buttons.css +132 -18
- package/dist/dev/__generated__/skins/default-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/default-video/styles/container.css +121 -8
- package/dist/dev/__generated__/skins/default-video/styles/controls.css +436 -21
- package/dist/dev/__generated__/skins/default-video/styles/dialog.css +169 -0
- package/dist/dev/__generated__/skins/default-video/styles/indicator.css +459 -0
- package/dist/dev/__generated__/skins/default-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/default-video/styles/overlays.css +26 -2
- package/dist/dev/__generated__/skins/default-video/styles/popups.css +338 -12
- package/dist/dev/__generated__/skins/default-video/styles/poster.css +4 -4
- package/dist/dev/__generated__/skins/default-video/styles/sliders.css +355 -31
- package/dist/dev/__generated__/skins/default-video/styles/styles.css +2455 -216
- package/dist/dev/__generated__/skins/default-video/styles/theme.css +4 -19
- package/dist/dev/__generated__/skins/default-video/styles/video.css +29 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/base.css +25 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/buttons.css +266 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/captions.css +22 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/container.css +158 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/controls.css +182 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/dialog.css +77 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/indicator.css +322 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/menus.css +254 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/overlays.css +35 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/popups.css +371 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/poster.css +47 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/sliders.css +436 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/styles.css +2246 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/theme.css +7 -0
- package/dist/dev/__generated__/skins/minimal-video/styles/video.css +29 -0
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-audio/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/live-video/skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js +1 -1
- package/dist/dev/_virtual/inline-css_src/define/video/skin.js.map +1 -1
- package/dist/dev/define/audio/minimal-skin.css +103 -101
- package/dist/dev/define/audio/skin.css +68 -69
- package/dist/dev/define/live-audio/minimal-skin.css +103 -101
- package/dist/dev/define/live-audio/skin.css +68 -69
- package/dist/dev/define/live-video/minimal-skin.css +140 -120
- package/dist/dev/define/live-video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.js +3 -1
- package/dist/dev/define/live-video/minimal-skin.js.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js +3 -1
- package/dist/dev/define/live-video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/live-video/skin.css +89 -76
- package/dist/dev/define/live-video/skin.d.ts.map +1 -1
- package/dist/dev/define/live-video/skin.js +3 -1
- package/dist/dev/define/live-video/skin.js.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/live-video/skin.tailwind.js +4 -2
- package/dist/dev/define/live-video/skin.tailwind.js.map +1 -1
- package/dist/dev/define/ui/gesture.d.ts +8 -0
- package/dist/dev/define/ui/gesture.d.ts.map +1 -0
- package/dist/dev/define/ui/gesture.js +7 -0
- package/dist/dev/define/ui/gesture.js.map +1 -0
- package/dist/dev/define/video/minimal-skin.css +140 -120
- package/dist/dev/define/video/minimal-skin.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.js +3 -1
- package/dist/dev/define/video/minimal-skin.js.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js +3 -1
- package/dist/dev/define/video/minimal-skin.tailwind.js.map +1 -1
- package/dist/dev/define/video/skin.css +89 -76
- package/dist/dev/define/video/skin.d.ts.map +1 -1
- package/dist/dev/define/video/skin.js +3 -1
- package/dist/dev/define/video/skin.js.map +1 -1
- package/dist/dev/define/video/skin.tailwind.d.ts.map +1 -1
- package/dist/dev/define/video/skin.tailwind.js +4 -2
- package/dist/dev/define/video/skin.tailwind.js.map +1 -1
- package/dist/dev/media/hls-background-video/media.d.ts +16 -0
- package/dist/dev/media/hls-background-video/media.d.ts.map +1 -1
- package/dist/dev/media/hls-background-video/media.js +18 -0
- package/dist/dev/media/hls-background-video/media.js.map +1 -1
- package/dist/dev/packages/icons/dist/element/default/icons.js +1 -1
- package/dist/dev/packages/icons/dist/element/default/icons.js.map +1 -1
- package/dist/dev/packages/icons/dist/element/minimal/icons.js +1 -1
- package/dist/dev/packages/icons/dist/element/minimal/icons.js.map +1 -1
- package/dist/dev/packages/icons/dist/html/default/airplay-exit.js +1 -1
- package/dist/dev/packages/icons/dist/html/default/airplay-exit.js.map +1 -1
- package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js +1 -1
- package/dist/dev/packages/icons/dist/html/minimal/airplay-exit.js.map +1 -1
- package/dist/dev/packages/icons/dist/render/default/index.js +1 -1
- package/dist/dev/packages/icons/dist/render/default/index.js.map +1 -1
- package/dist/dev/packages/icons/dist/render/minimal/index.js +1 -1
- package/dist/dev/packages/icons/dist/render/minimal/index.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js +3 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/button.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js +8 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/poster.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js +10 -10
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/slider.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js +2 -2
- package/dist/dev/packages/skins/dist/default/default/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js +8 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/poster.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js +13 -12
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/slider.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/components/thumbnail.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js +6 -5
- package/dist/dev/packages/skins/dist/default/minimal/tailwind/video.tailwind.js.map +1 -1
- package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js +4 -4
- package/dist/dev/packages/skins/dist/default/shared/tailwind/icon-state.js.map +1 -1
- package/dist/dev/store/provider-mixin.d.ts.map +1 -1
- package/dist/dev/store/provider-mixin.js +24 -8
- package/dist/dev/store/provider-mixin.js.map +1 -1
- package/dist/dev/store/types.d.ts +2 -2
- package/dist/dev/store/types.d.ts.map +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js +1 -1
- package/dist/dev/ui/audio-track-radio-group/audio-track-radio-group-element.js.map +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js +1 -1
- package/dist/dev/ui/captions-radio-group/captions-radio-group-element.js.map +1 -1
- package/dist/dev/ui/gesture/gesture-element.d.ts +7 -7
- package/dist/dev/ui/gesture/gesture-element.d.ts.map +1 -1
- package/dist/dev/ui/gesture/gesture-element.js.map +1 -1
- package/dist/dev/ui/hotkey/hotkey-element.d.ts +6 -6
- package/dist/dev/ui/hotkey/hotkey-element.d.ts.map +1 -1
- package/dist/dev/ui/hotkey/hotkey-element.js.map +1 -1
- package/dist/dev/ui/menu/context.d.ts +8 -8
- package/dist/dev/ui/menu/context.d.ts.map +1 -1
- package/dist/dev/ui/menu/context.js.map +1 -1
- package/dist/dev/ui/menu/menu-element.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-element.js +28 -27
- package/dist/dev/ui/menu/menu-element.js.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.d.ts +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.d.ts.map +1 -1
- package/dist/dev/ui/menu/menu-radio-group-element.js +14 -14
- package/dist/dev/ui/menu/menu-radio-group-element.js.map +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js +1 -1
- package/dist/dev/ui/playback-rate-radio-group/playback-rate-radio-group-element.js.map +1 -1
- package/dist/dev/ui/poster/poster-element.d.ts +20 -18
- package/dist/dev/ui/poster/poster-element.d.ts.map +1 -1
- package/dist/dev/ui/poster/poster-element.js +145 -8
- package/dist/dev/ui/poster/poster-element.js.map +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js +1 -1
- package/dist/dev/ui/quality-radio-group/quality-radio-group-element.js.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.d.ts +2 -2
- package/dist/dev/ui/slider/slider-preview-element.d.ts.map +1 -1
- package/dist/dev/ui/slider/slider-preview-element.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/concepts/skins.md +91 -78
- package/docs/how-to/customize-skins.md +411 -377
- package/docs/reference/menu.md +3 -19
- package/docs/reference/popover.md +2 -2
- package/docs/reference/poster.md +211 -21
- package/docs/reference/slider.md +1 -1
- package/docs/reference/time-slider.md +1 -1
- package/docs/reference/tooltip.md +6 -6
- package/docs/reference/volume-slider.md +1 -1
- package/package.json +14 -9
- package/cdn/adapter-Bk03SAxn.js +0 -2
- package/cdn/adapter-Bk03SAxn.js.map +0 -1
- package/cdn/adapter-XTen-YVQ.js.map +0 -1
- package/cdn/compounds-BEO1d3ZM.js +0 -8
- package/cdn/compounds-BEO1d3ZM.js.map +0 -1
- package/cdn/compounds-nk9RJtBK.js.map +0 -1
- package/cdn/create-player-DK9WOywd.js.map +0 -1
- package/cdn/create-player-hSdQMP5p.js +0 -2
- package/cdn/create-player-hSdQMP5p.js.map +0 -1
- package/cdn/default-BqQDVloS.js.map +0 -1
- package/cdn/default-CXWVp2oG.js +0 -2
- package/cdn/default-CXWVp2oG.js.map +0 -1
- package/cdn/default-Dw6cIEqT.js +0 -2
- package/cdn/default-Dw6cIEqT.js.map +0 -1
- package/cdn/default-I2LasfxC.js.map +0 -1
- package/cdn/error-surface-DCT1m2p1.js +0 -2
- package/cdn/error-surface-DCT1m2p1.js.map +0 -1
- package/cdn/error-surface-drmCvBVW.js.map +0 -1
- package/cdn/gesture-element-6Ld1YwIL.js.map +0 -1
- package/cdn/gesture-element-BC48ucj9.js +0 -2
- package/cdn/gesture-element-BC48ucj9.js.map +0 -1
- package/cdn/i18n-Dc7WM2xd.js +0 -2
- package/cdn/media-BTipOcKo.js +0 -2
- package/cdn/media-Bmablv4g.js +0 -2
- package/cdn/media-Bmablv4g.js.map +0 -1
- package/cdn/media-COIe3uI5.js.map +0 -1
- package/cdn/media-CPVSKLdk.js +0 -2
- package/cdn/media-Dq4zmIJa.js +0 -2
- package/cdn/media-Dq4zmIJa.js.map +0 -1
- package/cdn/media-suYcjCG2.js +0 -445
- package/cdn/media-suYcjCG2.js.map +0 -1
- package/cdn/minimal-BedCvMBG.js +0 -2
- package/cdn/minimal-BedCvMBG.js.map +0 -1
- package/cdn/minimal-BoP112ye.js +0 -2
- package/cdn/minimal-BoP112ye.js.map +0 -1
- package/cdn/minimal-DLosvq31.js.map +0 -1
- package/cdn/minimal-DQCLKRyR.js.map +0 -1
- package/cdn/minimal-ui-Et2Wcn7r.js +0 -2
- package/cdn/player-BRQLp5bX.js +0 -2
- package/cdn/player-BloX4l6F.js +0 -2
- package/cdn/player-rCFqzWrA.js +0 -2
- package/cdn/poster-element-BGr1VQJB.js.map +0 -1
- package/cdn/poster-element-DBmgOyep.js +0 -2
- package/cdn/poster-element-DBmgOyep.js.map +0 -1
- package/cdn/seek-button-element-XMTLIxZj.js.map +0 -1
- package/cdn/select-tracks-nRPBa1NC.js.map +0 -1
- package/cdn/select-tracks-xV1s28xD.js +0 -59
- package/cdn/select-tracks-xV1s28xD.js.map +0 -1
- package/cdn/time-slider-chapters-element-DJ0abZXI.js.map +0 -1
- package/cdn/time-slider-chapters-element-DW8YyJn8.js +0 -2
- package/cdn/time-slider-chapters-element-DW8YyJn8.js.map +0 -1
- package/cdn/ui-C0isALTQ.js +0 -2
- package/cdn/ui-DVpkE1MN.js +0 -2
|
@@ -1,49 +1,8 @@
|
|
|
1
1
|
import { u as isUndefined } from "./predicate-faYxAB6Z.js";
|
|
2
2
|
import { t as listen } from "./listen-CdeggIF8.js";
|
|
3
3
|
import { t as isWebKitAirPlayCapable } from "./webkit-C682yTT7.js";
|
|
4
|
-
import {
|
|
4
|
+
import { $ as getTracksByType, D as dispatchStep, F as getMinBufferedEnd, I as getCdnId, L as getOrderedCdnIds, M as DEFAULT_BANDWIDTH_CONFIG, N as getBandwidthEstimate, O as fetchStep, Q as findTrackById, S as isStandardPreload, at as isResolvedTrack, bt as effect, d as excludeUnplayableTracks, dt as computed, f as sameCandidateSet, ft as peek, g as pickTextTrackFromTracks, gt as SVTA_NO_SUPPORTED_VIDEO_TRACK, ht as SVTA_NO_SUPPORTED_AUDIO_TRACK, it as isResolvedPresentation, l as applyConstraints, m as matchesPartialTrack, mt as update, ot as createMachineReactor, u as applyRules, ut as defineBehavior, z as emitError } from "./error-surface-D0bo71gD.js";
|
|
5
5
|
|
|
6
|
-
//#region ../spf/dist/dev/media/errors.js
|
|
7
|
-
/** SVTA 1 [Media Content] 004 — the video is in a format we can't play (e.g. an MPEG-TS container). */
|
|
8
|
-
const SVTA_UNSUPPORTED_VIDEO_FORMAT = 1004;
|
|
9
|
-
/** SVTA 1 [Media Content] 005 — the audio counterpart of {@link SVTA_UNSUPPORTED_VIDEO_FORMAT}. */
|
|
10
|
-
const SVTA_UNSUPPORTED_AUDIO_FORMAT = 1005;
|
|
11
|
-
/**
|
|
12
|
-
* SVTA 4 [Content Protection] 008 — unsupported or unavailable DRM system. Used
|
|
13
|
-
* for "this source is encrypted and we have no decryption pipeline," which is
|
|
14
|
-
* detection, not a license failure.
|
|
15
|
-
*/
|
|
16
|
-
const SVTA_UNSUPPORTED_DRM_SYSTEM = 4008;
|
|
17
|
-
/**
|
|
18
|
-
* SVTA 2 [Playback] 011 — no video track the environment can play. For a source
|
|
19
|
-
* that *has* video renditions where every one was excluded as unplayable.
|
|
20
|
-
*/
|
|
21
|
-
const SVTA_NO_SUPPORTED_VIDEO_TRACK = 2011;
|
|
22
|
-
/** SVTA 2 [Playback] 012 — the audio counterpart of {@link SVTA_NO_SUPPORTED_VIDEO_TRACK}. */
|
|
23
|
-
const SVTA_NO_SUPPORTED_AUDIO_TRACK = 2012;
|
|
24
|
-
/**
|
|
25
|
-
* SVTA 99 [Custom] 001 — this engine has no pipeline for something the source
|
|
26
|
-
* requires, so the source is unplayable *here* rather than broken.
|
|
27
|
-
*
|
|
28
|
-
* Custom rather than standard because the standard codes available describe
|
|
29
|
-
* either narrower or wider things. The causes (1004/1005 unsupported format,
|
|
30
|
-
* 4008 unsupported DRM) say what one rendition hit; the verdicts (2011/2012 no
|
|
31
|
-
* supported track) say a type emptied without saying why it's unfixable. And
|
|
32
|
-
* 2039 "Manifest feature unsupported" covers features that are unsupported but
|
|
33
|
-
* still *playable* — LL-HLS degrading to standard live is a 2039 — so
|
|
34
|
-
* overloading it for a fatal condition would make it useless for the notices it
|
|
35
|
-
* belongs on.
|
|
36
|
-
*
|
|
37
|
-
* Index `001`: the spec defines only `99000` (Unknown) for the custom category
|
|
38
|
-
* and leaves the rest to the publisher, so this is the first code we define.
|
|
39
|
-
*
|
|
40
|
-
* Five digits, and deliberately not special-cased anywhere: {@link svtaCategory}
|
|
41
|
-
* and {@link svtaIndex} decompose it correctly by arithmetic alone, because
|
|
42
|
-
* every standard category is below `8000` and custom starts at `99000`.
|
|
43
|
-
*/
|
|
44
|
-
const SVTA_UNSUPPORTED_PLAYBACK_FEATURE = 99001;
|
|
45
|
-
|
|
46
|
-
//#endregion
|
|
47
6
|
//#region ../spf/dist/dev/playback/behaviors/dom/track-load-triggers.js
|
|
48
7
|
/**
|
|
49
8
|
* Slot-driven FSM. The slot `loadActivated` is the canonical externally-
|
|
@@ -303,73 +262,6 @@ const establishStartMediaTime = {
|
|
|
303
262
|
setup: establishStartMediaTimeSetup
|
|
304
263
|
};
|
|
305
264
|
|
|
306
|
-
//#endregion
|
|
307
|
-
//#region ../spf/dist/dev/media/dom/capabilities.js
|
|
308
|
-
/**
|
|
309
|
-
* Capability probing — the engine's foundation for asking the browser what it
|
|
310
|
-
* can actually decode before committing a rendition to the pipeline.
|
|
311
|
-
*
|
|
312
|
-
* Today this is the synchronous codec half: `canPlayTrack` answers "can this
|
|
313
|
-
* environment play this track?" by building the track's MIME codec string and
|
|
314
|
-
* passing it to `MediaSource.isTypeSupported` (via `isCodecSupported`). It's the
|
|
315
|
-
* DOM implementation of the DOM-free `CanPlayTrack` predicate the
|
|
316
|
-
* track-switching hard-constraint pre-pass consumes — injected through engine
|
|
317
|
-
* config so the (DOM-free) behavior never imports a DOM API directly.
|
|
318
|
-
*
|
|
319
|
-
* Results are memoized by built MIME string: codec support is a pure function
|
|
320
|
-
* of (codec, environment) and never changes after load, so probing is lazy
|
|
321
|
-
* (per candidate, at constraint-apply time) but each unique MIME is asked once.
|
|
322
|
-
*
|
|
323
|
-
* Future cluster-D phases (async `requestMediaKeySystemAccess` key-system
|
|
324
|
-
* probing, `SourceBuffer.changeType()` availability) extend this surface; the
|
|
325
|
-
* async ones land as a state-slot writer behavior rather than a config
|
|
326
|
-
* predicate, since their verdict resolves asynchronously.
|
|
327
|
-
*/
|
|
328
|
-
const codecSupportCache = /* @__PURE__ */ new Map();
|
|
329
|
-
/**
|
|
330
|
-
* Whether the environment can decode `track`, by codec. Builds the track's
|
|
331
|
-
* MIME codec string and checks `MediaSource.isTypeSupported`, memoized by MIME.
|
|
332
|
-
* A track without enough to probe — no `mimeType`, or no declared `codecs`
|
|
333
|
-
* (CODECS is optional per the HLS spec) — is unprobeable and passes through as
|
|
334
|
-
* playable (`true`) rather than being dropped; the late `createSourceBuffer`
|
|
335
|
-
* check stays as the backstop for those.
|
|
336
|
-
*
|
|
337
|
-
* Detected non-fMP4 containers (`video/mp2t`, `audio/aac`) are asserted
|
|
338
|
-
* unsupported regardless of the probe, so they're pruned before selection
|
|
339
|
-
* (the type makes no pick) instead of failing/stalling deep in the pipeline.
|
|
340
|
-
* Two different reasons, neither UA-based:
|
|
341
|
-
*
|
|
342
|
-
* - **MPEG-TS** can't be played at all here: `isTypeSupported('video/mp2t…')` is
|
|
343
|
-
* a genuine false positive on Chromium (reports `true` but appends produce no
|
|
344
|
-
* buffered range), and this engine has no TS transmux pipeline.
|
|
345
|
-
* - **Raw ADTS AAC** is a *temporary* limitation. The browser genuinely
|
|
346
|
-
* supports it (Chrome/Safari decode `audio/aac`; Firefox doesn't), so it could
|
|
347
|
-
* be made playable — but our segment actors / loading behaviors / append
|
|
348
|
-
* pipeline assume every rendition has an `EXT-X-MAP` init segment (e.g. an
|
|
349
|
-
* `append-init` task with an empty URL, fMP4-shaped append handling). Until
|
|
350
|
-
* that init-segment assumption is removed, ADTS would fetch but never buffer
|
|
351
|
-
* (a silent stall), so we assert it unplayable for now. FOLLOW-UP: drop the
|
|
352
|
-
* init-required assumption in the pipeline and switch this to a bare-MIME
|
|
353
|
-
* probe (`buildMimeCodec` would project `audio/aac` with no codecs) so it
|
|
354
|
-
* plays where the browser supports it.
|
|
355
|
-
*
|
|
356
|
-
* Override via the engine's `canPlayTrack` config when those pipelines land.
|
|
357
|
-
*/
|
|
358
|
-
const canPlayTrack = (track) => {
|
|
359
|
-
if (track.mimeType && NON_FMP4_CONTAINER_MIMES.has(track.mimeType)) return false;
|
|
360
|
-
if (getMediaPlaylistMetadata(track)?.encrypted) return false;
|
|
361
|
-
if (!track.mimeType || !track.codecs?.length) return true;
|
|
362
|
-
const mimeCodec = buildMimeCodec({
|
|
363
|
-
mimeType: track.mimeType,
|
|
364
|
-
codecs: track.codecs
|
|
365
|
-
});
|
|
366
|
-
const cached = codecSupportCache.get(mimeCodec);
|
|
367
|
-
if (cached !== void 0) return cached;
|
|
368
|
-
const supported = isCodecSupported(mimeCodec);
|
|
369
|
-
codecSupportCache.set(mimeCodec, supported);
|
|
370
|
-
return supported;
|
|
371
|
-
};
|
|
372
|
-
|
|
373
265
|
//#endregion
|
|
374
266
|
//#region ../spf/dist/dev/playback/behaviors/derive-cdn-priority.js
|
|
375
267
|
/**
|
|
@@ -895,49 +787,6 @@ function resolutionArea(track) {
|
|
|
895
787
|
//#endregion
|
|
896
788
|
//#region ../spf/dist/dev/playback/behaviors/track-switching.js
|
|
897
789
|
/**
|
|
898
|
-
* Apply rules to a candidate list in order; the pick is the first survivor.
|
|
899
|
-
* Two responsibilities the rules don't carry: a rule that returns nothing is
|
|
900
|
-
* skipped (fall-through — a preference never empties the set), and once one
|
|
901
|
-
* survivor remains the chain stops (early-bail — later rules, including the
|
|
902
|
-
* bandwidth ranker, never run, so the effect doesn't subscribe to their
|
|
903
|
-
* signals while the choice is fixed).
|
|
904
|
-
*
|
|
905
|
-
* @param rules - Rules to apply, most authoritative first
|
|
906
|
-
* @param tracks - Candidate tracks
|
|
907
|
-
* @param deps - The behavior's `{ state, context, config }`, passed through to each rule
|
|
908
|
-
* @returns The surviving candidates, pick first
|
|
909
|
-
*/
|
|
910
|
-
function applyRules(rules, tracks, deps) {
|
|
911
|
-
let current = tracks;
|
|
912
|
-
for (const rule of rules) {
|
|
913
|
-
const remaining = rule(current, deps);
|
|
914
|
-
if (remaining.length === 0) continue;
|
|
915
|
-
current = remaining;
|
|
916
|
-
if (current.length === 1) break;
|
|
917
|
-
}
|
|
918
|
-
return current;
|
|
919
|
-
}
|
|
920
|
-
/**
|
|
921
|
-
* Apply hard constraints to a candidate list — the pre-pass that runs before the
|
|
922
|
-
* rule chain. A constraint shares a rule's signature but its exclusion is
|
|
923
|
-
* *hard*: it removes the unplayable (a codec the environment can't decode, a CDN
|
|
924
|
-
* in failover cooldown) and a removed track is never attempted. Unlike
|
|
925
|
-
* `applyRules`, this never skips an empty result and never early-bails — every
|
|
926
|
-
* constraint always applies, and an empty survivor set is a real outcome
|
|
927
|
-
* ("nothing playable here"), not a fall-through. Because each constraint only
|
|
928
|
-
* removes, the order they run in can't change the result.
|
|
929
|
-
*
|
|
930
|
-
* @param constraints - Constraints to apply (pooled, order-independent)
|
|
931
|
-
* @param tracks - Candidate tracks
|
|
932
|
-
* @param deps - The behavior's `{ state, context, config }`, passed to each constraint
|
|
933
|
-
* @returns The playable survivors (possibly empty)
|
|
934
|
-
*/
|
|
935
|
-
function applyConstraints(constraints, tracks, deps) {
|
|
936
|
-
let current = tracks;
|
|
937
|
-
for (const constraint of constraints) current = constraint(current, deps);
|
|
938
|
-
return current;
|
|
939
|
-
}
|
|
940
|
-
/**
|
|
941
790
|
* User intent — a soft filter. Narrows to tracks matching the partial-track
|
|
942
791
|
* selection in `user*TrackSelection`; an empty match falls through (the
|
|
943
792
|
* composer skips it) to the unfiltered set — e.g. a stale id from a previous
|
|
@@ -969,27 +818,6 @@ function excludeFailedCdns(tracks, { state, config }) {
|
|
|
969
818
|
return tracks.filter((track) => !failedSet.has(getCdnId$1(track.url)));
|
|
970
819
|
}
|
|
971
820
|
/**
|
|
972
|
-
* Capability constraint — a *hard* filter (constraints pre-pass), shared by
|
|
973
|
-
* video and audio. Removes renditions this environment can't decode, probed via
|
|
974
|
-
* the injected `canPlayTrack` (codec → `MediaSource.isTypeSupported`). Moving
|
|
975
|
-
* the check here — before selection — means an unplayable variant (e.g. HEVC on
|
|
976
|
-
* a browser without HEVC) is pruned upstream and never picked, instead of
|
|
977
|
-
* surviving into the pipeline to fail late at `createSourceBuffer`. That late
|
|
978
|
-
* throw stays as a defensive structural guarantee; with this constraint it
|
|
979
|
-
* should rarely fire.
|
|
980
|
-
*
|
|
981
|
-
* Passes everything through when there's no `canPlayTrack` probe (a composition
|
|
982
|
-
* that didn't wire it, or DOM-free tests). When it prunes *every* track (no
|
|
983
|
-
* decodable rendition), the empty result is preserved (per `applyConstraints`)
|
|
984
|
-
* — "nothing playable," so the behavior clears the selection (no pick) and the
|
|
985
|
-
* late `createSourceBuffer` check stays as the backstop.
|
|
986
|
-
*/
|
|
987
|
-
function excludeUnplayableTracks(tracks, { config }) {
|
|
988
|
-
const canPlay = config.canPlayTrack;
|
|
989
|
-
if (!canPlay) return tracks;
|
|
990
|
-
return tracks.filter((track) => canPlay(track));
|
|
991
|
-
}
|
|
992
|
-
/**
|
|
993
821
|
* Active-CDN scope — a soft filter, shared by video and audio. Narrows to the
|
|
994
822
|
* highest-priority CDN in `cdnPriority` (owned by `deriveCdnPriority`) that
|
|
995
823
|
* still has tracks, so every track type stays on one CDN. A redundant-streams
|
|
@@ -1076,7 +904,7 @@ function selectChainHead(candidates) {
|
|
|
1076
904
|
* stale pick whose match is gone (e.g. the language dropped on a source
|
|
1077
905
|
* change) falls through to the default policy.
|
|
1078
906
|
* - auto (`undefined`) → the opt-in default policy (`preferredSubtitleLanguage`
|
|
1079
|
-
* → `DEFAULT=YES + AUTOSELECT=YES` → none),
|
|
907
|
+
* → `DEFAULT=YES + AUTOSELECT=YES` → none), via `pickTextTrackFromTracks`.
|
|
1080
908
|
*
|
|
1081
909
|
* Returning `undefined` is a real outcome (captions are opt-in), which is why the
|
|
1082
910
|
* text variant relies on `setupTrackSwitching`'s no-selection seam.
|
|
@@ -1098,7 +926,7 @@ function setupTrackSwitching(deps) {
|
|
|
1098
926
|
const presentation = state.presentation.get();
|
|
1099
927
|
if (!isResolvedPresentation(presentation)) return [];
|
|
1100
928
|
return applyConstraints(config.constraints ?? [], getTracks(presentation), deps);
|
|
1101
|
-
}, { equals:
|
|
929
|
+
}, { equals: sameCandidateSet });
|
|
1102
930
|
return createMachineReactor({
|
|
1103
931
|
initial: "presentation-unresolved",
|
|
1104
932
|
monitor: () => derivedStateSignal.get(),
|
|
@@ -1719,171 +1547,5 @@ const relocatingTextPipelines = () => [
|
|
|
1719
1547
|
];
|
|
1720
1548
|
|
|
1721
1549
|
//#endregion
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
* The seam `resolve-track` uses to report conditions discovered in a freshly
|
|
1725
|
-
* parsed media playlist.
|
|
1726
|
-
*
|
|
1727
|
-
* Injected rather than baked in so `resolve-track` stays free of format and
|
|
1728
|
-
* policy knowledge: it parses and commits, and whatever the composition wants
|
|
1729
|
-
* noticed about the result is this function's business. Which conditions matter,
|
|
1730
|
-
* and which codes they carry, therefore vary per composition — a provider that
|
|
1731
|
-
* never ships MPEG-TS can drop that check, and future playlist-derived notices
|
|
1732
|
-
* (LL-HLS or DVR support that's partial rather than absent) attach here without
|
|
1733
|
-
* touching the resolver.
|
|
1734
|
-
*
|
|
1735
|
-
* Reported **per rendition, as it resolves**, which is why these are causes and
|
|
1736
|
-
* not verdicts: one rendition being unplayable doesn't make the source
|
|
1737
|
-
* unplayable. The verdict is `track-switching`'s, which reports
|
|
1738
|
-
* `SVTA_NO_SUPPORTED_{VIDEO,AUDIO}_TRACK` when a type's candidates actually
|
|
1739
|
-
* empty. Keeping the two apart is what lets a mixed source — some renditions
|
|
1740
|
-
* encrypted or MPEG-TS, others playable — log its causes and still play.
|
|
1741
|
-
*/
|
|
1742
|
-
/** Unsupported-format code per type; text has none — absent captions aren't a failure. */
|
|
1743
|
-
const UNSUPPORTED_FORMAT_CODE = {
|
|
1744
|
-
video: SVTA_UNSUPPORTED_VIDEO_FORMAT,
|
|
1745
|
-
audio: SVTA_UNSUPPORTED_AUDIO_FORMAT
|
|
1746
|
-
};
|
|
1747
|
-
/**
|
|
1748
|
-
* The types a reported cause can legitimately describe: the ones whose candidates
|
|
1749
|
-
* `canPlayTrack` actually prunes, via `track-switching`'s `excludeUnplayableTracks`
|
|
1750
|
-
* pre-pass.
|
|
1751
|
-
*
|
|
1752
|
-
* Text is outside it by design — its switching chain runs failed-CDN constraints
|
|
1753
|
-
* alone, because an MSE codec probe is the wrong question for a WebVTT rendition
|
|
1754
|
-
* (see `track-switching.ts`). So nothing prunes a text rendition, no verdict can
|
|
1755
|
-
* follow from one, and a cause reported against it would be an orphan: the
|
|
1756
|
-
* adapter's unsupported-feature substitution scans the sequence as a whole, so a
|
|
1757
|
-
* lone encrypted subtitle would otherwise recode an unrelated verdict — an
|
|
1758
|
-
* all-CDN cooldown among them — as "this engine can't play the source".
|
|
1759
|
-
*/
|
|
1760
|
-
const CAPABILITY_PRUNED_TYPES = /* @__PURE__ */ new Set(["video", "audio"]);
|
|
1761
|
-
/**
|
|
1762
|
-
* The default: report what makes a rendition unplayable *to this engine* — a
|
|
1763
|
-
* container MSE can't accept, or encryption with no decryption pipeline. Both
|
|
1764
|
-
* mirror what `canPlayTrack` prunes on, so a reported cause always has a
|
|
1765
|
-
* corresponding exclusion.
|
|
1766
|
-
*
|
|
1767
|
-
* A condition carries its code and its context, not copy. `data.mimeType` is
|
|
1768
|
-
* what preserves the specificity — the format codes cover every non-fMP4
|
|
1769
|
-
* container, so "which one" lives there for a consumer that wants to say, rather
|
|
1770
|
-
* than being flattened into an English sentence here.
|
|
1771
|
-
*
|
|
1772
|
-
* Both carry `trackType`, redundantly for the format codes (1004/1005 are
|
|
1773
|
-
* already per type) but not for 4008, which isn't per type — SVTA has one
|
|
1774
|
-
* content-protection code for both. Nothing branches on the tag: it's diagnostic
|
|
1775
|
-
* context, reaching a developer through the logged sequence and `error.data`,
|
|
1776
|
-
* which is why it goes on every condition rather than only where the code can't
|
|
1777
|
-
* carry it. `trackId` alongside it is what distinguishes two renditions of the
|
|
1778
|
-
* same type.
|
|
1779
|
-
*/
|
|
1780
|
-
function reportUnsupportedTrackConditions(track) {
|
|
1781
|
-
if (!CAPABILITY_PRUNED_TYPES.has(track.type)) return [];
|
|
1782
|
-
const conditions = [];
|
|
1783
|
-
const data = {
|
|
1784
|
-
trackType: track.type,
|
|
1785
|
-
trackId: track.id
|
|
1786
|
-
};
|
|
1787
|
-
const formatCode = UNSUPPORTED_FORMAT_CODE[track.type];
|
|
1788
|
-
if (formatCode !== void 0 && NON_FMP4_CONTAINER_MIMES.has(track.mimeType)) conditions.push({
|
|
1789
|
-
code: formatCode,
|
|
1790
|
-
data: {
|
|
1791
|
-
...data,
|
|
1792
|
-
mimeType: track.mimeType
|
|
1793
|
-
}
|
|
1794
|
-
});
|
|
1795
|
-
if (getMediaPlaylistMetadata(track)?.encrypted) conditions.push({
|
|
1796
|
-
code: SVTA_UNSUPPORTED_DRM_SYSTEM,
|
|
1797
|
-
data
|
|
1798
|
-
});
|
|
1799
|
-
return conditions;
|
|
1800
|
-
}
|
|
1801
|
-
|
|
1802
|
-
//#endregion
|
|
1803
|
-
//#region ../spf/dist/dev/playback/primitives/error-messages.js
|
|
1804
|
-
/**
|
|
1805
|
-
* Developer-facing copy for what this engine reports.
|
|
1806
|
-
*
|
|
1807
|
-
* Everything here reaches a **console**, never a viewer. Viewer-facing copy for
|
|
1808
|
-
* a fatal condition is the presentation layer's to compose: the engine reports a
|
|
1809
|
-
* code, and a consumer maps that code to localized text it owns.
|
|
1810
|
-
*
|
|
1811
|
-
* Plain string constants, one export each. Nothing is parameterized — a message
|
|
1812
|
-
* that names the engine has to be built at the call site from state the engine
|
|
1813
|
-
* carries around solely to say it, which is a lot of plumbing for a console
|
|
1814
|
-
* prefix. Separate exports rather than one object so a composition that logs
|
|
1815
|
-
* neither notice doesn't carry their bytes.
|
|
1816
|
-
*/
|
|
1817
|
-
/**
|
|
1818
|
-
* Logged when a fatal `SVTA_UNSUPPORTED_PLAYBACK_FEATURE` is surfaced.
|
|
1819
|
-
*
|
|
1820
|
-
* The developer's half of that event; the viewer gets the localized copy the
|
|
1821
|
-
* code maps to. One sentence is enough because the specifics — which container,
|
|
1822
|
-
* which rendition, whether it was DRM — stay structured on the reported
|
|
1823
|
-
* conditions logged beside it.
|
|
1824
|
-
*/
|
|
1825
|
-
const UNSUPPORTED_PLAYBACK_FEATURE_MESSAGE = "Can't play this source: it requires an unsupported playback feature.";
|
|
1826
|
-
/**
|
|
1827
|
-
* LL-HLS delivery, played as standard live. The parser ignores partial segments
|
|
1828
|
-
* and the loader fetches whole ones, so latency lands wherever `HOLD-BACK` puts
|
|
1829
|
-
* it — the stream plays, just not at the latency it was published for.
|
|
1830
|
-
*/
|
|
1831
|
-
const LOW_LATENCY_UNSUPPORTED_MESSAGE = "Low-Latency HLS is unsupported; playing as standard live at higher latency.";
|
|
1832
|
-
/**
|
|
1833
|
-
* `#EXT-X-PLAYLIST-TYPE:EVENT` — a growing window, which is how DVR is
|
|
1834
|
-
* delivered. It plays, but the seekable-range and live-edge handling for it is
|
|
1835
|
-
* newer and less exercised than sliding-window live.
|
|
1836
|
-
*/
|
|
1837
|
-
const DVR_EXPERIMENTAL_MESSAGE = "DVR support for EVENT playlists is experimental.";
|
|
1838
|
-
|
|
1839
|
-
//#endregion
|
|
1840
|
-
//#region ../spf/dist/dev/playback/adapters/hls-video/error-surface.js
|
|
1841
|
-
/**
|
|
1842
|
-
* `message`, plus the alternative-Media sentence when `media`'s class names one.
|
|
1843
|
-
*
|
|
1844
|
-
* Read off the class rather than passed in so a subclass can point at a
|
|
1845
|
-
* better-equipped sibling — the SPF Mux Medias name the hls.js-backed one, which
|
|
1846
|
-
* plays the MPEG-TS and DRM sources SPF doesn't — without either adapter knowing
|
|
1847
|
-
* that sibling exists.
|
|
1848
|
-
*/
|
|
1849
|
-
function withAlternativeMediaSuggestion(message, media) {
|
|
1850
|
-
const { alternativeMediaSuggestion } = media.constructor;
|
|
1851
|
-
const suggestion = alternativeMediaSuggestion?.trim();
|
|
1852
|
-
return suggestion ? `${message} ${suggestion}` : message;
|
|
1853
|
-
}
|
|
1854
|
-
/** The first condition `fatalCodes` covers — the root cause, not its consequences. */
|
|
1855
|
-
function firstFatal(errors, fatalCodes) {
|
|
1856
|
-
return errors?.find((error) => fatalCodes.has(error.code));
|
|
1857
|
-
}
|
|
1858
|
-
/**
|
|
1859
|
-
* The causes that mean the engine has no pipeline for what the source delivers —
|
|
1860
|
-
* a container it can't append, or encryption it can't decrypt.
|
|
1861
|
-
*
|
|
1862
|
-
* What these have in common is that no retry, no other CDN, and no other
|
|
1863
|
-
* rendition of the same source fixes them: the source needs a capability this
|
|
1864
|
-
* engine doesn't have. That's the distinction the surfaced code exists to draw,
|
|
1865
|
-
* and it's why the set is these three rather than "every cause".
|
|
1866
|
-
*/
|
|
1867
|
-
const UNSUPPORTED_FEATURE_CAUSES = /* @__PURE__ */ new Set([
|
|
1868
|
-
SVTA_UNSUPPORTED_VIDEO_FORMAT,
|
|
1869
|
-
SVTA_UNSUPPORTED_AUDIO_FORMAT,
|
|
1870
|
-
SVTA_UNSUPPORTED_DRM_SYSTEM
|
|
1871
|
-
]);
|
|
1872
|
-
/**
|
|
1873
|
-
* Whether anything in the sequence is a cause of the "we don't implement this"
|
|
1874
|
-
* kind.
|
|
1875
|
-
*
|
|
1876
|
-
* Deliberately `some` over the whole sequence rather than a per-type match
|
|
1877
|
-
* against the verdict. A verdict means one type's candidates emptied, but the
|
|
1878
|
-
* *reason* the source is unplayable can sit on another type — an audio-only
|
|
1879
|
-
* source whose sole rendition is encrypted empties the audio candidates, and a
|
|
1880
|
-
* video source with encrypted video empties the video ones. Both are the same
|
|
1881
|
-
* answer to the viewer, so both get the same code.
|
|
1882
|
-
*/
|
|
1883
|
-
function hasUnsupportedFeatureCause(errors) {
|
|
1884
|
-
return errors?.some((error) => UNSUPPORTED_FEATURE_CAUSES.has(error.code)) ?? false;
|
|
1885
|
-
}
|
|
1886
|
-
|
|
1887
|
-
//#endregion
|
|
1888
|
-
export { gateFirstParseOnAnchor as C, SVTA_UNSUPPORTED_PLAYBACK_FEATURE as D, SVTA_NO_SUPPORTED_VIDEO_TRACK as E, establishStartMediaTime as S, SVTA_NO_SUPPORTED_AUDIO_TRACK as T, applyStartPosition as _, LOW_LATENCY_UNSUPPORTED_MESSAGE as a, canPlayTrack as b, relocatingTextPipelines as c, switchAudioTrack as d, switchTextTrack as f, recoverEndStall as g, setupFailoverMonitor as h, DVR_EXPERIMENTAL_MESSAGE as i, relocationPipelinesFor as l, syncPreload as m, hasUnsupportedFeatureCause as n, UNSUPPORTED_PLAYBACK_FEATURE_MESSAGE as o, switchVideoTrack as p, withAlternativeMediaSuggestion as r, reportUnsupportedTrackConditions as s, firstFatal as t, DEFAULT_TEXT_MESSAGE_PIPELINES as u, setupAirPlay as v, trackLoadTriggers as w, deriveSharedMinStartMediaTime as x, deriveCdnPriority as y };
|
|
1889
|
-
//# sourceMappingURL=error-surface-drmCvBVW.js.map
|
|
1550
|
+
export { switchTextTrack as a, setupFailoverMonitor as c, setupAirPlay as d, deriveCdnPriority as f, trackLoadTriggers as g, gateFirstParseOnAnchor as h, switchAudioTrack as i, recoverEndStall as l, establishStartMediaTime as m, relocationPipelinesFor as n, switchVideoTrack as o, deriveSharedMinStartMediaTime as p, DEFAULT_TEXT_MESSAGE_PIPELINES as r, syncPreload as s, relocatingTextPipelines as t, applyStartPosition as u };
|
|
1551
|
+
//# sourceMappingURL=relocation-pipelines-Dh8CcgHw.js.map
|