@mux/playback-core 0.35.1-canary.2 → 0.35.2
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/dist/index.cjs.js +5 -5
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.mjs +6 -6
- package/dist/index.mjs.map +4 -4
- package/dist/playback-core.js +28 -28
- package/dist/playback-core.js.map +4 -4
- package/dist/playback-core.mjs +29 -29
- package/dist/playback-core.mjs.map +4 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/errors.d.ts +2 -0
- package/dist/types/index.d.ts +3 -8
- package/dist/types/network-recovery.d.ts +49 -0
- package/dist/types/types.d.ts +14 -0
- package/dist/types-ts3.4/errors.d.ts +2 -0
- package/dist/types-ts3.4/index.d.ts +3 -8
- package/dist/types-ts3.4/network-recovery.d.ts +49 -0
- package/dist/types-ts3.4/types.d.ts +14 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../src/vendor/mux-embed.ts","../src/errors.ts","../node_modules/hls.js/dist/hls.d.mts","../src/types.ts","../lang/en.json","../src/util.ts","../src/hls.ts","../src/autoplay.ts","../src/eme-fairplay.ts","../src/preload.ts","../src/min-preload.ts","../src/media-tracks.ts","../src/text-tracks.ts","../src/pdt.ts","../src/request-errors.ts","../src/min-cap-level-controller.ts","../src/webkit-fairplay.d.ts","../src/webkit-fairplay.ts","../src/index.ts","../../../node_modules/media-tracks/dist/video-rendition.d.ts","../../../node_modules/media-tracks/dist/video-track.d.ts","../../../node_modules/media-tracks/dist/video-track-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition.d.ts","../../../node_modules/media-tracks/dist/audio-track.d.ts","../../../node_modules/media-tracks/dist/audio-track-list.d.ts","../../../node_modules/media-tracks/dist/video-rendition-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition-list.d.ts","../../../node_modules/media-tracks/dist/global.d.ts"],"fileIdsList":[[74,75],[75],[74],[72,73,75,76,77,78],[71,72],[72],[71],[55,57,58],[53,57],[54],[52,53,54,55,57,58,59,60,61,62,63,64,65,66,67,69],[58],[54,55,58],[55],[55,57],[53,54,55,57],[52,53,54],[55,56],[53,57,60,68]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"7973d3c1a1c036dbc656a8b6a514ca7349dcc6d039a1dfb6b102efd0b8cf85c6","signature":"9632e3ccd357b6c526182a6983e57d1fc2c64fc4dc55e86611016a9c418879cd","affectsGlobalScope":true},{"version":"d0ebbdc27c1a71604ac47a77457479b0b04a30270259519f8ca5f4c4a5082b40","signature":"c757b1b4e1ff177d5e8e3629822474c82bf4146156520876b6e3f706f9738eda","affectsGlobalScope":true},{"version":"853bece6815b265980b443f83d4ed245ffcccce293aa60dc1bce18aeaec827c8","impliedFormat":99},{"version":"b8006498bb0b0c4a6edd7f97048dfc2e31726a2ca75bb754de24dd8237c8d828","signature":"0ca6ddd81f2ff3b5eafbb5536e66ea796f151da98bfb07fcdd0588f071f499ed"},"5a1d054cc0ec9e4cf5e74331d6c39156d3d71338e9b6292cae936786a1f45b20",{"version":"a2258ca3cb3f2116a55a2526577f8b9a7e0584a09566642e68ac4a7221cf5cd1","signature":"f4a1a1d2de66d3a4afe8cb40d917010772f9d9c32483ad59fcd11003cb0133b8"},"c13fb8c7fdb84f3c59470c672220c380ac26ffb099721ccebba3c53971cb700d",{"version":"89b90951a374603ba2102d1eeef328c9e6726f694698eb1ebba7ffebf639b463","signature":"cc64cc2b871c6127ae5841dc6f8a2aa2064d73569f707d913ed76de3ebfc97e5"},{"version":"68e72a04d58a6543c7fd5886ab95599a127a10c0c4e8d1b9a7ce7a30f688671a","signature":"8955872513ccce0115890f60b94a1f3535f41230ea25938e592f4d2de2f3180a"},{"version":"33a7c8c6e9c79e94f4b71eddf5466737a12026eb1215daa85621b5c4f3524193","signature":"bec076d074f786e91c7f1787c871e5eeb951c72e0415df4f6f1041cc540058b8"},{"version":"9b0b9298021456d58c71dc29f5aa2bcef72225b658ea6a8e84d0b5cb28e1cb53","signature":"6bfeba80fa7f841d014cb7e7160e5f464efbd337f866f0b7767a35123b67a42c"},{"version":"a995bd7c285ddd8b001ffd32209b2c97a4aaa6de4e152b85b38460ebf0bf6711","signature":"f9416c803360f1b7d50d5005aa62780607533c0f446f164f373711038b000b5f"},{"version":"62be64bc107031515053bb80c80c6585e428ba528d1f2b2e4710ff3ad071839a","signature":"3be94ff5800bf4567d511f1d716237ef30f753ef916bf855209a7f4c2cd741e1"},{"version":"0357e4c609f9e3a89903899e8334cbcd44530e1b077329051846e6a1754eed93","signature":"dccea7b665fe08ed006acd191a7e68123ba7ec49848ac7c28a164962bf21254e"},{"version":"b8a696e6d4b719b00d3a0d62383077d9ad529eb16b9e4704779d4a38e2f27cba","signature":"b00bb60d069436e8d5ed514413e95ec8b0cf31a3ac3132ed8e4e95571b4e78f9"},{"version":"341e6b5e827293044cb106daa2d5b6ab8861094aa0d6e33b6fa4ce0e56d8176e","signature":"7040fa063b8228f94bcef292b268c3036f56995098cd1837414b756555a6e45f"},{"version":"922d3d5d3ddef7dd0c9cb0ccb870a095a145b535489b50bdfc12c90686f725d4","affectsGlobalScope":true},{"version":"4999a70d59a5a62fe3a5c576bd6648a0ba10317cc334a336fad475ec66284e73","signature":"cbe583e9152673bdd81157152f92948cd2568aa9efb426eb0fa40a746808539c"},{"version":"d29069fc91950486cfb46a23bc0ad963fa4a84c6e63f431be17a7a3ad614889d","signature":"ca11c2e27be468ee672dce0e26ef4707ea5aa916b6eaa43b0caca44be2c8d072","affectsGlobalScope":true},{"version":"2ed351b90f48ecae9c627d41e2614c6a4fe670f958e8a5a5d3bb4bc21980bdb6","impliedFormat":99},{"version":"8f358619bbe2b132a373c5e8381018bb1f11f55dbac8cb84c380d5279f18eb75","impliedFormat":99},{"version":"ba0b6859e73b5fb85f18160a3b0d741968b1c4122fdd3436398dc99a6a9736c9","impliedFormat":99},{"version":"9979bad516454ac2aaff1756fc7f664ca6ccfdd9b4077f306e99df3033edf0a2","impliedFormat":99},{"version":"323cfa8826348d6f5269abeed193b53c1ee351a9c178858bce4dee6e9b6c3ac9","impliedFormat":99},{"version":"24354cb3bc1d897f8321bce628352612d35d92a79dba42e6609f7f5ec7d3a697","impliedFormat":99},{"version":"03835f80c63304658099d429a9f165a6a1d481a5050d74c7be05523c3b46f406","impliedFormat":99},{"version":"2811b69d59d0ccb820cef1c6b751ef9625bcba7cc71d438b4ba8f1a15901a8eb","impliedFormat":99},{"version":"2c512f7b30f704093ae23b2591a6e9e9cc852006be0bf8e4f770788d88b17796","affectsGlobalScope":true,"impliedFormat":99}],"root":[52,53,55,[57,67],69,70,79],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":5,"noImplicitAny":true,"outDir":"./types","rootDir":"../src","skipLibCheck":false,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[78,1],[76,2],[75,3],[79,4],[77,5],[73,6],[72,7],[59,8],[60,9],[58,10],[70,11],[63,12],[67,13],[62,8],[65,14],[61,15],[66,16],[64,8],[55,17],[57,18],[69,19]],"latestChangedDtsFile":"./types/index.d.ts","version":"5.8.3"}
|
|
1
|
+
{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2020.full.d.ts","../src/vendor/mux-embed.ts","../src/errors.ts","../node_modules/hls.js/dist/hls.d.mts","../src/types.ts","../lang/en.json","../src/util.ts","../src/hls.ts","../src/autoplay.ts","../src/eme-fairplay.ts","../src/preload.ts","../src/min-preload.ts","../src/media-tracks.ts","../src/text-tracks.ts","../src/pdt.ts","../src/request-errors.ts","../src/min-cap-level-controller.ts","../src/webkit-fairplay.d.ts","../src/webkit-fairplay.ts","../src/network-recovery.ts","../src/index.ts","../../../node_modules/media-tracks/dist/video-rendition.d.ts","../../../node_modules/media-tracks/dist/video-track.d.ts","../../../node_modules/media-tracks/dist/video-track-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition.d.ts","../../../node_modules/media-tracks/dist/audio-track.d.ts","../../../node_modules/media-tracks/dist/audio-track-list.d.ts","../../../node_modules/media-tracks/dist/video-rendition-list.d.ts","../../../node_modules/media-tracks/dist/audio-rendition-list.d.ts","../../../node_modules/media-tracks/dist/global.d.ts"],"fileIdsList":[[75,76],[76],[75],[73,74,76,77,78,79],[72,73],[73],[72],[55,57,58],[53,57],[54],[52,53,54,55,57,58,59,60,61,62,63,64,65,66,67,69,70],[58],[54,55,58],[53,54,55,57,58],[55],[55,57],[53,54,55,57],[52,53,54],[55,56],[53,57,60,68]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"7973d3c1a1c036dbc656a8b6a514ca7349dcc6d039a1dfb6b102efd0b8cf85c6","signature":"9632e3ccd357b6c526182a6983e57d1fc2c64fc4dc55e86611016a9c418879cd","affectsGlobalScope":true},{"version":"d74c95d91c0acdae14c192323cb012865112699672b0ccfaed7a3afd7bfff6ea","signature":"61247a50f2bb4ff64d1ff5dfb79243643cec290494e39123dd10600b4bd4d6f6","affectsGlobalScope":true},{"version":"853bece6815b265980b443f83d4ed245ffcccce293aa60dc1bce18aeaec827c8","impliedFormat":99},{"version":"78a33a8d98196011bcd5450c435448e28213e12449b13565fcaccbf6d1073cd2","signature":"c84017a35db57b94b314cd47b7dffc3cebb8ecb2929e1e360789760c2b27bd70"},"4852b67eeea2a12e7383b830bc91084c720bf4046de14d3db0e10087a676247a",{"version":"a2258ca3cb3f2116a55a2526577f8b9a7e0584a09566642e68ac4a7221cf5cd1","signature":"f4a1a1d2de66d3a4afe8cb40d917010772f9d9c32483ad59fcd11003cb0133b8"},"c13fb8c7fdb84f3c59470c672220c380ac26ffb099721ccebba3c53971cb700d",{"version":"89b90951a374603ba2102d1eeef328c9e6726f694698eb1ebba7ffebf639b463","signature":"cc64cc2b871c6127ae5841dc6f8a2aa2064d73569f707d913ed76de3ebfc97e5"},{"version":"68e72a04d58a6543c7fd5886ab95599a127a10c0c4e8d1b9a7ce7a30f688671a","signature":"8955872513ccce0115890f60b94a1f3535f41230ea25938e592f4d2de2f3180a"},{"version":"33a7c8c6e9c79e94f4b71eddf5466737a12026eb1215daa85621b5c4f3524193","signature":"bec076d074f786e91c7f1787c871e5eeb951c72e0415df4f6f1041cc540058b8"},{"version":"9b0b9298021456d58c71dc29f5aa2bcef72225b658ea6a8e84d0b5cb28e1cb53","signature":"6bfeba80fa7f841d014cb7e7160e5f464efbd337f866f0b7767a35123b67a42c"},{"version":"a995bd7c285ddd8b001ffd32209b2c97a4aaa6de4e152b85b38460ebf0bf6711","signature":"f9416c803360f1b7d50d5005aa62780607533c0f446f164f373711038b000b5f"},{"version":"62be64bc107031515053bb80c80c6585e428ba528d1f2b2e4710ff3ad071839a","signature":"3be94ff5800bf4567d511f1d716237ef30f753ef916bf855209a7f4c2cd741e1"},{"version":"0357e4c609f9e3a89903899e8334cbcd44530e1b077329051846e6a1754eed93","signature":"dccea7b665fe08ed006acd191a7e68123ba7ec49848ac7c28a164962bf21254e"},{"version":"b8a696e6d4b719b00d3a0d62383077d9ad529eb16b9e4704779d4a38e2f27cba","signature":"b00bb60d069436e8d5ed514413e95ec8b0cf31a3ac3132ed8e4e95571b4e78f9"},{"version":"341e6b5e827293044cb106daa2d5b6ab8861094aa0d6e33b6fa4ce0e56d8176e","signature":"7040fa063b8228f94bcef292b268c3036f56995098cd1837414b756555a6e45f"},{"version":"922d3d5d3ddef7dd0c9cb0ccb870a095a145b535489b50bdfc12c90686f725d4","affectsGlobalScope":true},{"version":"4999a70d59a5a62fe3a5c576bd6648a0ba10317cc334a336fad475ec66284e73","signature":"cbe583e9152673bdd81157152f92948cd2568aa9efb426eb0fa40a746808539c"},{"version":"aab6153e4a73b29c64d00d09278dcc436fc74c2f07cf37946ef348cd89c591d9","signature":"fd3fe4c47a157cf2222ce11b08c150df327c87170327aced9e36082ca34c2bb7"},{"version":"081b5c3b2f9ad16a2af57d69b2ae3a4c65425cf463aa2854ccbd1b3cc70ddd40","signature":"e071d00aee34eb6cddad7202536a21c837826207fdd5b13eeb2ec5396e94f34f","affectsGlobalScope":true},{"version":"2ed351b90f48ecae9c627d41e2614c6a4fe670f958e8a5a5d3bb4bc21980bdb6","impliedFormat":99},{"version":"8f358619bbe2b132a373c5e8381018bb1f11f55dbac8cb84c380d5279f18eb75","impliedFormat":99},{"version":"ba0b6859e73b5fb85f18160a3b0d741968b1c4122fdd3436398dc99a6a9736c9","impliedFormat":99},{"version":"9979bad516454ac2aaff1756fc7f664ca6ccfdd9b4077f306e99df3033edf0a2","impliedFormat":99},{"version":"323cfa8826348d6f5269abeed193b53c1ee351a9c178858bce4dee6e9b6c3ac9","impliedFormat":99},{"version":"24354cb3bc1d897f8321bce628352612d35d92a79dba42e6609f7f5ec7d3a697","impliedFormat":99},{"version":"03835f80c63304658099d429a9f165a6a1d481a5050d74c7be05523c3b46f406","impliedFormat":99},{"version":"2811b69d59d0ccb820cef1c6b751ef9625bcba7cc71d438b4ba8f1a15901a8eb","impliedFormat":99},{"version":"2c512f7b30f704093ae23b2591a6e9e9cc852006be0bf8e4f770788d88b17796","affectsGlobalScope":true,"impliedFormat":99}],"root":[52,53,55,[57,67],[69,71],80],"options":{"composite":true,"declaration":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":2,"module":5,"noImplicitAny":true,"outDir":"./types","rootDir":"../src","skipLibCheck":false,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[79,1],[77,2],[76,3],[80,4],[78,5],[74,6],[73,7],[59,8],[60,9],[58,10],[71,11],[63,12],[67,13],[62,8],[70,14],[65,15],[61,16],[66,17],[64,8],[55,18],[57,19],[69,20]],"latestChangedDtsFile":"./types/index.d.ts","version":"5.8.3"}
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const MuxErrorCategory: {
|
|
|
7
7
|
export declare const MuxErrorCode: {
|
|
8
8
|
readonly NOT_AN_ERROR: 0;
|
|
9
9
|
readonly NETWORK_OFFLINE: 2000002;
|
|
10
|
+
readonly NETWORK_RECONNECTING: 2000003;
|
|
10
11
|
readonly NETWORK_UNKNOWN_ERROR: 2000000;
|
|
11
12
|
readonly NETWORK_NO_STATUS: 2000001;
|
|
12
13
|
readonly NETWORK_INVALID_URL: 2400000;
|
|
@@ -59,6 +60,7 @@ export declare class MediaError extends Error {
|
|
|
59
60
|
fatal: boolean;
|
|
60
61
|
data?: any;
|
|
61
62
|
streamType?: 'live' | 'on-demand' | 'unknown';
|
|
63
|
+
reload?: boolean;
|
|
62
64
|
constructor(message?: Stringable, code?: number, fatal?: boolean, context?: string);
|
|
63
65
|
}
|
|
64
66
|
export {};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes } from './types';
|
|
1
|
+
import type { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes, MuxMediaState } from './types';
|
|
2
2
|
import mux from 'mux-embed';
|
|
3
3
|
import Hls from './hls';
|
|
4
4
|
import type { HlsInterface } from './hls';
|
|
@@ -86,12 +86,7 @@ declare global {
|
|
|
86
86
|
userAgentData?: NavigatorUAData;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
export declare const muxMediaState:
|
|
90
|
-
seekable?: TimeRanges;
|
|
91
|
-
liveEdgeStartOffset?: number;
|
|
92
|
-
retryCount?: number;
|
|
93
|
-
coreReference?: PlaybackCore;
|
|
94
|
-
}>;
|
|
89
|
+
export declare const muxMediaState: MuxMediaState;
|
|
95
90
|
export declare const generatePlayerInitTime: () => number | undefined;
|
|
96
91
|
export declare const generateUUID: () => string;
|
|
97
92
|
type MuxVideoURLProps = Partial<Pick<MuxMediaPropTypes, 'playbackId' | 'customDomain' | 'maxResolution' | 'minResolution' | 'renditionOrder' | 'programStartTime' | 'programEndTime' | 'assetStartTime' | 'assetEndTime' | 'tokens' | 'playbackToken' | 'extraSourceParams'>>;
|
|
@@ -128,4 +123,4 @@ export declare const toAppCertURL: ({ playbackId: playbackIdWithParams, tokens:
|
|
|
128
123
|
export declare const isMuxVideoSrc: ({ playbackId, src, customDomain, }: Partial<Pick<MuxMediaPropsInternal, "playbackId" | "src" | "customDomain">>) => boolean;
|
|
129
124
|
export declare const getCapLevelControllerConfig: (props: Pick<MuxMediaPropsInternal, "capRenditionToPlayerSize">, _hlsConfig: Partial<HlsConfig>) => Partial<Pick<HlsConfig, "capLevelController" | "capLevelToPlayerSize">>;
|
|
130
125
|
export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, "envKey" | "playerInitTime" | "beaconCollectionDomain" | "errorTranslator" | "metadata" | "debug" | "playerSoftwareName" | "playerSoftwareVersion" | "playbackId" | "src" | "customDomain" | "disableCookies" | "disableTracking" | "muxDataSDK" | "muxDataSDKOptions">>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
|
|
131
|
-
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
|
|
126
|
+
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "maxReconnectRetries" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import Hls from './hls';
|
|
2
|
+
import type { ErrorData } from 'hls.js';
|
|
3
|
+
import { MediaError } from './errors';
|
|
4
|
+
import type { MuxMediaState } from './types';
|
|
5
|
+
export interface NetworkRecoveryConfig {
|
|
6
|
+
hls: Pick<Hls, 'on' | 'loadSource' | 'startLoad'>;
|
|
7
|
+
mediaEl: HTMLMediaElement;
|
|
8
|
+
/** The current source, used to re-request the manifest if it never loaded. */
|
|
9
|
+
src: string | undefined;
|
|
10
|
+
muxMediaState: MuxMediaState;
|
|
11
|
+
saveAndDispatchError: (mediaEl: HTMLMediaElement, error: MediaError) => void;
|
|
12
|
+
/** Max reconnect attempts per stall episode before surfacing a terminal error and stopping. */
|
|
13
|
+
maxRetries: number;
|
|
14
|
+
}
|
|
15
|
+
export interface NetworkRecovery {
|
|
16
|
+
/**
|
|
17
|
+
* Call from the hls ERROR handler. Returns true when recovery has taken over the error (the
|
|
18
|
+
* caller should stop processing it, i.e. not dispatch it as a fatal error).
|
|
19
|
+
*/
|
|
20
|
+
handleHlsError: (data: ErrorData, error: MediaError) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Call from the hls MANIFEST_LOADED handler. Records that the manifest has loaded and stops any
|
|
23
|
+
* pending retry, but does NOT end recovery as fragments could still fail.
|
|
24
|
+
* Defers loading to engine.
|
|
25
|
+
*/
|
|
26
|
+
onManifestLoaded: () => void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* --- Network interruption recovery ---
|
|
30
|
+
* hls.js retries non-fatal network errors itself; once it gives up (fatal) it stops loading and
|
|
31
|
+
* won't resume - including on flaky networks where the browser never fires `offline`/`online`
|
|
32
|
+
* (navigator.onLine only reflects a network link, not whether requests succeed).
|
|
33
|
+
*
|
|
34
|
+
* When playback stalls during an outage we let hls.js run (and give up on) its own internal
|
|
35
|
+
* retries, and *after* it reports a fatal error we wait a backoff delay and call startLoad() to make
|
|
36
|
+
* it try again.
|
|
37
|
+
* Each fatal drives the next attempt, up to maxRetries, then we surface a terminal error and stop
|
|
38
|
+
* (bounded - no infinite polling).
|
|
39
|
+
*
|
|
40
|
+
* Backoff before each attempt, e.g. maxRetries=6 -> ~1s + 2s + 4s + 8s + 16s + 30s (plus however
|
|
41
|
+
* long hls.js's own internal retries take in between).
|
|
42
|
+
*
|
|
43
|
+
* The retry loop and its "Reconnecting..." UI are tied to the stall (same condition as the loading
|
|
44
|
+
* spinner): while there's still playable buffer, hls.js's own retry handles refilling and we stay
|
|
45
|
+
* silent.
|
|
46
|
+
*
|
|
47
|
+
* `online` is a fast path that retries immediately with a fresh budget.
|
|
48
|
+
*/
|
|
49
|
+
export declare const setupNetworkRecovery: ({ hls, mediaEl, src, muxMediaState, saveAndDispatchError, maxRetries, }: NetworkRecoveryConfig) => NetworkRecovery;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -111,6 +111,13 @@ export type MuxMediaPropTypes = {
|
|
|
111
111
|
disableCookies: Options['disableCookies'];
|
|
112
112
|
disableTracking: boolean;
|
|
113
113
|
disablePseudoEnded: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Max reconnect attempts per stall episode before surfacing a terminal error and stopping.
|
|
116
|
+
* Distinct from hls.js's own per-request `maxNumRetry`.
|
|
117
|
+
*
|
|
118
|
+
* Default: 0
|
|
119
|
+
*/
|
|
120
|
+
maxReconnectRetries: number;
|
|
114
121
|
drmToken?: string;
|
|
115
122
|
playbackToken?: string;
|
|
116
123
|
envKey: MetaData['env_key'];
|
|
@@ -153,6 +160,13 @@ export type MuxMediaPropsInternal = MuxMediaProps & {
|
|
|
153
160
|
muxDataKeepSession?: boolean;
|
|
154
161
|
drmTypeCb?: (drmType: Metadata['view_drm_type']) => void;
|
|
155
162
|
};
|
|
163
|
+
export type MuxMediaState = WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
|
|
164
|
+
seekable?: TimeRanges;
|
|
165
|
+
liveEdgeStartOffset?: number;
|
|
166
|
+
retryCount?: number;
|
|
167
|
+
networkError?: boolean;
|
|
168
|
+
coreReference?: PlaybackCore;
|
|
169
|
+
}>;
|
|
156
170
|
export type MuxMediaEventsMap = {
|
|
157
171
|
cuepointchange: CustomEvent<{
|
|
158
172
|
composed: true;
|
|
@@ -7,6 +7,7 @@ export declare const MuxErrorCategory: {
|
|
|
7
7
|
export declare const MuxErrorCode: {
|
|
8
8
|
readonly NOT_AN_ERROR: 0;
|
|
9
9
|
readonly NETWORK_OFFLINE: 2000002;
|
|
10
|
+
readonly NETWORK_RECONNECTING: 2000003;
|
|
10
11
|
readonly NETWORK_UNKNOWN_ERROR: 2000000;
|
|
11
12
|
readonly NETWORK_NO_STATUS: 2000001;
|
|
12
13
|
readonly NETWORK_INVALID_URL: 2400000;
|
|
@@ -59,6 +60,7 @@ export declare class MediaError extends Error {
|
|
|
59
60
|
fatal: boolean;
|
|
60
61
|
data?: any;
|
|
61
62
|
streamType?: 'live' | 'on-demand' | 'unknown';
|
|
63
|
+
reload?: boolean;
|
|
62
64
|
constructor(message?: Stringable, code?: number, fatal?: boolean, context?: string);
|
|
63
65
|
}
|
|
64
66
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes } from './types';
|
|
1
|
+
import { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes, MuxMediaState } from './types';
|
|
2
2
|
import mux from 'mux-embed';
|
|
3
3
|
import Hls from './hls';
|
|
4
4
|
import { HlsInterface } from './hls';
|
|
@@ -86,12 +86,7 @@ declare global {
|
|
|
86
86
|
userAgentData?: NavigatorUAData;
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
|
-
export declare const muxMediaState:
|
|
90
|
-
seekable?: TimeRanges;
|
|
91
|
-
liveEdgeStartOffset?: number;
|
|
92
|
-
retryCount?: number;
|
|
93
|
-
coreReference?: PlaybackCore;
|
|
94
|
-
}>;
|
|
89
|
+
export declare const muxMediaState: MuxMediaState;
|
|
95
90
|
export declare const generatePlayerInitTime: () => number | undefined;
|
|
96
91
|
export declare const generateUUID: () => string;
|
|
97
92
|
type MuxVideoURLProps = Partial<Pick<MuxMediaPropTypes, 'playbackId' | 'customDomain' | 'maxResolution' | 'minResolution' | 'renditionOrder' | 'programStartTime' | 'programEndTime' | 'assetStartTime' | 'assetEndTime' | 'tokens' | 'playbackToken' | 'extraSourceParams'>>;
|
|
@@ -128,4 +123,4 @@ export declare const toAppCertURL: ({ playbackId: playbackIdWithParams, tokens:
|
|
|
128
123
|
export declare const isMuxVideoSrc: ({ playbackId, src, customDomain, }: Partial<Pick<MuxMediaPropsInternal, "playbackId" | "src" | "customDomain">>) => boolean;
|
|
129
124
|
export declare const getCapLevelControllerConfig: (props: Pick<MuxMediaPropsInternal, "capRenditionToPlayerSize">, _hlsConfig: Partial<HlsConfig>) => Partial<Pick<HlsConfig, "capLevelController" | "capLevelToPlayerSize">>;
|
|
130
125
|
export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, "envKey" | "playerInitTime" | "beaconCollectionDomain" | "errorTranslator" | "metadata" | "debug" | "playerSoftwareName" | "playerSoftwareVersion" | "playbackId" | "src" | "customDomain" | "disableCookies" | "disableTracking" | "muxDataSDK" | "muxDataSDKOptions">>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
|
|
131
|
-
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
|
|
126
|
+
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "maxReconnectRetries" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import Hls from './hls';
|
|
2
|
+
import { ErrorData } from 'hls.js';
|
|
3
|
+
import { MediaError } from './errors';
|
|
4
|
+
import { MuxMediaState } from './types';
|
|
5
|
+
export interface NetworkRecoveryConfig {
|
|
6
|
+
hls: Pick<Hls, 'on' | 'loadSource' | 'startLoad'>;
|
|
7
|
+
mediaEl: HTMLMediaElement;
|
|
8
|
+
/** The current source, used to re-request the manifest if it never loaded. */
|
|
9
|
+
src: string | undefined;
|
|
10
|
+
muxMediaState: MuxMediaState;
|
|
11
|
+
saveAndDispatchError: (mediaEl: HTMLMediaElement, error: MediaError) => void;
|
|
12
|
+
/** Max reconnect attempts per stall episode before surfacing a terminal error and stopping. */
|
|
13
|
+
maxRetries: number;
|
|
14
|
+
}
|
|
15
|
+
export interface NetworkRecovery {
|
|
16
|
+
/**
|
|
17
|
+
* Call from the hls ERROR handler. Returns true when recovery has taken over the error (the
|
|
18
|
+
* caller should stop processing it, i.e. not dispatch it as a fatal error).
|
|
19
|
+
*/
|
|
20
|
+
handleHlsError: (data: ErrorData, error: MediaError) => boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Call from the hls MANIFEST_LOADED handler. Records that the manifest has loaded and stops any
|
|
23
|
+
* pending retry, but does NOT end recovery as fragments could still fail.
|
|
24
|
+
* Defers loading to engine.
|
|
25
|
+
*/
|
|
26
|
+
onManifestLoaded: () => void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* --- Network interruption recovery ---
|
|
30
|
+
* hls.js retries non-fatal network errors itself; once it gives up (fatal) it stops loading and
|
|
31
|
+
* won't resume - including on flaky networks where the browser never fires `offline`/`online`
|
|
32
|
+
* (navigator.onLine only reflects a network link, not whether requests succeed).
|
|
33
|
+
*
|
|
34
|
+
* When playback stalls during an outage we let hls.js run (and give up on) its own internal
|
|
35
|
+
* retries, and *after* it reports a fatal error we wait a backoff delay and call startLoad() to make
|
|
36
|
+
* it try again.
|
|
37
|
+
* Each fatal drives the next attempt, up to maxRetries, then we surface a terminal error and stop
|
|
38
|
+
* (bounded - no infinite polling).
|
|
39
|
+
*
|
|
40
|
+
* Backoff before each attempt, e.g. maxRetries=6 -> ~1s + 2s + 4s + 8s + 16s + 30s (plus however
|
|
41
|
+
* long hls.js's own internal retries take in between).
|
|
42
|
+
*
|
|
43
|
+
* The retry loop and its "Reconnecting..." UI are tied to the stall (same condition as the loading
|
|
44
|
+
* spinner): while there's still playable buffer, hls.js's own retry handles refilling and we stay
|
|
45
|
+
* silent.
|
|
46
|
+
*
|
|
47
|
+
* `online` is a fast path that retries immediately with a fresh budget.
|
|
48
|
+
*/
|
|
49
|
+
export declare const setupNetworkRecovery: ({ hls, mediaEl, src, muxMediaState, saveAndDispatchError, maxRetries, }: NetworkRecoveryConfig) => NetworkRecovery;
|
|
@@ -111,6 +111,13 @@ export type MuxMediaPropTypes = {
|
|
|
111
111
|
disableCookies: Options['disableCookies'];
|
|
112
112
|
disableTracking: boolean;
|
|
113
113
|
disablePseudoEnded: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Max reconnect attempts per stall episode before surfacing a terminal error and stopping.
|
|
116
|
+
* Distinct from hls.js's own per-request `maxNumRetry`.
|
|
117
|
+
*
|
|
118
|
+
* Default: 0
|
|
119
|
+
*/
|
|
120
|
+
maxReconnectRetries: number;
|
|
114
121
|
drmToken?: string;
|
|
115
122
|
playbackToken?: string;
|
|
116
123
|
envKey: MetaData['env_key'];
|
|
@@ -153,6 +160,13 @@ export type MuxMediaPropsInternal = MuxMediaProps & {
|
|
|
153
160
|
muxDataKeepSession?: boolean;
|
|
154
161
|
drmTypeCb?: (drmType: Metadata['view_drm_type']) => void;
|
|
155
162
|
};
|
|
163
|
+
export type MuxMediaState = WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
|
|
164
|
+
seekable?: TimeRanges;
|
|
165
|
+
liveEdgeStartOffset?: number;
|
|
166
|
+
retryCount?: number;
|
|
167
|
+
networkError?: boolean;
|
|
168
|
+
coreReference?: PlaybackCore;
|
|
169
|
+
}>;
|
|
156
170
|
export type MuxMediaEventsMap = {
|
|
157
171
|
cuepointchange: CustomEvent<{
|
|
158
172
|
composed: true;
|
package/package.json
CHANGED