@mux/playback-core 0.17.1 → 0.18.0

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.
@@ -1 +1 @@
1
- {"program":{"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.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.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.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.es2019.full.d.ts","../../../node_modules/hls.js/dist/hls.js.d.ts","./types/mux-embed.d.ts","../src/errors.ts","../src/hls.ts","../src/types.ts","../src/util.ts","../src/autoplay.ts","../src/preload.ts","../src/tracks.ts","../src/index.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","a621252aa9fa2527cd9b9d544d728ee31043d556339a99e269ed32368523ef7e",{"version":"6ff45ab1a5c3f32638dd1131cc94ecd68f11566363ea16dca3c8a7d556a81bbb","affectsGlobalScope":true},{"version":"f9c9f4036e6351de47c9a53aba2f692b1eb77269ed854be64a4a5ada2d6cba86","signature":"de64daa4e510abaaf4b4970c6dd37e39c3b8a263cccbeb80a41c69ae5a2a34ba"},{"version":"d8b208f9c17b0f53d9402161fc178cbc564d1b6c8944bf17ad052d6a0f7004e6","signature":"773d1148d4729e5b25d0bdb65552c2854378506fbb408424a5947dbfdfd8b789"},{"version":"b856405153c916cebdfab5e168923d4c3ffcc69d2fcb2b8f76683d5ed457bc94","signature":"9c7d1dad5c9c395839ca54ca11db0717c30a9907bdd1209af409080eae22bf7b"},{"version":"cda7db617e050c1ab1bad4323787f71c9249a32b1c093eb68f1703253c70a528","signature":"5365c69fdbb9f6f27c86d784adc7dbcac71e6f391b94468007095b4f6e993f65"},{"version":"53c9b795a91dd165226fa236ce0a3cef93e9604f9203d52bdc36695756b2c604","signature":"5a6e81e28183631d440aedfbfa700c011b883b23d224ad0563106ff2c8de6a21"},{"version":"33a7c8c6e9c79e94f4b71eddf5466737a12026eb1215daa85621b5c4f3524193","signature":"594247a3e85c76e671668ae878b41d5e11ad4dbeb32717b567300d2426bd4f8b"},{"version":"84a917195113666860f43e1515bfb09aab0ba8bd71fa45efc157a4e2a9ceb806","signature":"bc87a0cdc972f4b11e138495209c7a076653f38ee00c51f82738859510c46539"},{"version":"1d37d52e5c451fb909b112564769259d241fc3e336a3bd569eeda07be3121d6e","signature":"d7c5d82ba0573dc9b39a819c350a15f7269c0b393b2161770f38f0e77c240288"}],"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":6},"fileIdsList":[[37],[40,41,42],[38,39,40,41,42,43,44,45],[41,42],[38,39,40],[41],[37,38,39,40,41,45],[40,41]],"referencedMap":[[38,1],[43,2],[40,1],[46,3],[44,4],[45,2],[41,5],[42,6]],"exportedModulesMap":[[38,1],[43,6],[40,1],[46,7],[44,6],[45,8],[41,5],[42,6]],"semanticDiagnosticsPerFile":[37,7,8,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,36,35,32,33,34,1,10,9,38,43,39,40,46,44,45,41,42],"latestChangedDtsFile":"./types/index.d.ts"},"version":"4.9.4"}
1
+ {"program":{"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.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.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.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.es2019.full.d.ts","../../../node_modules/hls.js/dist/hls.js.d.ts","./types/mux-embed.d.ts","../src/errors.ts","../src/hls.ts","../src/types.ts","../src/util.ts","../src/autoplay.ts","../src/preload.ts","../src/tracks.ts","../src/pdt.ts","../src/index.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","0c7129bda64d3182c63631823158a8e1d97cf8c017038f9a55a50a342e301443",{"version":"6ff45ab1a5c3f32638dd1131cc94ecd68f11566363ea16dca3c8a7d556a81bbb","affectsGlobalScope":true},{"version":"f9c9f4036e6351de47c9a53aba2f692b1eb77269ed854be64a4a5ada2d6cba86","signature":"de64daa4e510abaaf4b4970c6dd37e39c3b8a263cccbeb80a41c69ae5a2a34ba"},{"version":"d8b208f9c17b0f53d9402161fc178cbc564d1b6c8944bf17ad052d6a0f7004e6","signature":"773d1148d4729e5b25d0bdb65552c2854378506fbb408424a5947dbfdfd8b789"},{"version":"6d452298823e8020864d5494697e7ecd2e48712927c77f6e7afdb98924f4a674","signature":"4793eb8f2aa04221093b0fa780ff6bf7cf92381c616fc94719e5c29508492017"},{"version":"02023add3112230f1ddfb004078da4616fbfbc4e09b414b6a8cd85207b9d402b","signature":"2d04e1242a12a52b1bb95ef8188f472d23b2c398530d74d6808d055bb20e2e0f"},{"version":"53c9b795a91dd165226fa236ce0a3cef93e9604f9203d52bdc36695756b2c604","signature":"5a6e81e28183631d440aedfbfa700c011b883b23d224ad0563106ff2c8de6a21"},{"version":"33a7c8c6e9c79e94f4b71eddf5466737a12026eb1215daa85621b5c4f3524193","signature":"594247a3e85c76e671668ae878b41d5e11ad4dbeb32717b567300d2426bd4f8b"},{"version":"84a917195113666860f43e1515bfb09aab0ba8bd71fa45efc157a4e2a9ceb806","signature":"bc87a0cdc972f4b11e138495209c7a076653f38ee00c51f82738859510c46539"},{"version":"0357e4c609f9e3a89903899e8334cbcd44530e1b077329051846e6a1754eed93","signature":"dccea7b665fe08ed006acd191a7e68123ba7ec49848ac7c28a164962bf21254e"},{"version":"8c0bc5374440b298386c848770c44838021d06236c7e43f09f2fc3ae881b4c4e","signature":"7baf82385aff7b41234df1aefaa903365f62e36b52615d1fac7e2b0053c33a2d"}],"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":6},"fileIdsList":[[37],[40,41,42],[38,39,40,41,42,43,44,45,46],[41],[41,42],[38,39,40],[37,38,39,40,41,45,46],[40,41]],"referencedMap":[[38,1],[43,2],[40,1],[47,3],[46,4],[44,5],[45,2],[41,6],[42,4]],"exportedModulesMap":[[38,1],[43,4],[40,1],[47,7],[46,4],[44,4],[45,8],[41,6],[42,4]],"semanticDiagnosticsPerFile":[37,7,8,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,36,35,32,33,34,1,10,9,38,43,39,40,47,46,44,45,41,42],"latestChangedDtsFile":"./types/index.d.ts"},"version":"4.9.4"}
@@ -4,9 +4,24 @@ import Hls from './hls';
4
4
  import type { HlsInterface } from './hls';
5
5
  import { MediaError } from './errors';
6
6
  import { addTextTrack, removeTextTrack, addCuePoints, getCuePoints, getActiveCuePoint, setupCuePoints, getCuePointsTrack } from './tracks';
7
+ import { getStartDate, getCurrentPdt } from './pdt';
7
8
  import { StreamTypes, type ValueOf, type PlaybackCore, type MuxMediaProps, type MuxMediaPropsInternal } from './types';
8
- export { mux, Hls, MediaError, addTextTrack, removeTextTrack, addCuePoints, getCuePoints, getActiveCuePoint, getCuePointsTrack, setupCuePoints, };
9
+ export { mux, Hls, MediaError, addTextTrack, removeTextTrack, addCuePoints, getCuePoints, getActiveCuePoint, getCuePointsTrack, setupCuePoints, getStartDate, getCurrentPdt, };
9
10
  export * from './types';
11
+ export declare const getMediaPlaylistLinesFromMultivariantPlaylistSrc: (src: string) => Promise<string[]>;
12
+ export declare const getStreamInfoFromPlaylistLines: (playlistLines: string[]) => {
13
+ streamType: "on-demand" | "live";
14
+ targetLiveWindow: number;
15
+ liveEdgeStartOffset: number | undefined;
16
+ };
17
+ export declare const updateStreamInfoFromSrc: (src: string, mediaEl: HTMLMediaElement) => Promise<void>;
18
+ export declare const getStreamInfoFromHlsjsLevelDetails: (levelDetails: any) => {
19
+ streamType: "on-demand" | "live";
20
+ targetLiveWindow: number;
21
+ liveEdgeStartOffset: number | undefined;
22
+ lowLatency: boolean;
23
+ };
24
+ export declare const updateStreamInfoFromHlsjsLevelDetails: (levelDetails: any, mediaEl: HTMLMediaElement, hls: Pick<Hls, 'config' | 'userConfig' | 'liveSyncPosition'>) => void;
10
25
  export declare const generatePlayerInitTime: () => number;
11
26
  export declare const generateUUID: () => string;
12
27
  export declare const toMuxVideoURL: (playbackId?: string, { domain, maxResolution }?: {
@@ -14,6 +29,10 @@ export declare const toMuxVideoURL: (playbackId?: string, { domain, maxResolutio
14
29
  maxResolution?: string | undefined;
15
30
  }) => string | undefined;
16
31
  export declare const getError: (mediaEl: HTMLMediaElement) => globalThis.MediaError | (globalThis.MediaError & MediaError) | null | undefined;
32
+ export declare const getStreamType: (mediaEl: HTMLMediaElement) => ValueOf<StreamTypes>;
33
+ export declare const getTargetLiveWindow: (mediaEl: HTMLMediaElement) => number;
34
+ export declare const getSeekable: (mediaEl: HTMLMediaElement) => TimeRanges;
35
+ export declare const getLiveEdgeStart: (mediaEl: HTMLMediaElement) => number;
17
36
  export declare const initialize: (props: Partial<MuxMediaPropsInternal>, mediaEl: HTMLMediaElement, core?: PlaybackCore) => {
18
37
  engine: import("hls.js").default | undefined;
19
38
  setAutoplay: (newAutoplay?: import("./types").Autoplay | undefined) => void;
@@ -24,4 +43,4 @@ export declare const setupHls: (props: Partial<Pick<MuxMediaPropsInternal, 'debu
24
43
  export declare const getStreamTypeConfig: (streamType?: ValueOf<StreamTypes>) => {};
25
44
  export declare const isMuxVideoSrc: ({ playbackId, src, customDomain, }: Partial<Pick<MuxMediaPropsInternal, 'playbackId' | 'src' | 'customDomain'>>) => boolean;
26
45
  export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, 'envKey' | 'playerInitTime' | 'beaconCollectionDomain' | 'errorTranslator' | 'metadata' | 'debug' | 'playerSoftwareName' | 'playerSoftwareVersion' | 'playbackId' | 'src' | 'customDomain' | 'disableCookies'>>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
27
- export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, 'preferPlayback' | 'src' | 'type' | 'startTime' | 'streamType' | 'autoplay'>>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, 'config' | 'on' | 'once' | 'startLoad' | 'stopLoad' | 'recoverMediaError' | 'destroy' | 'loadSource' | 'attachMedia' | 'liveSyncPosition' | 'subtitleTracks' | 'subtitleTrack'>) => void;
46
+ export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, 'preferPlayback' | 'src' | 'type' | 'startTime' | 'streamType' | 'autoplay'>>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, 'config' | 'on' | 'once' | 'startLoad' | 'stopLoad' | 'recoverMediaError' | 'destroy' | 'loadSource' | 'attachMedia' | 'liveSyncPosition' | 'subtitleTracks' | 'subtitleTrack' | 'userConfig'>) => void;
@@ -0,0 +1,7 @@
1
+ import { PlaybackEngine } from './types';
2
+ type MediaWithPDT = HTMLMediaElement & {
3
+ getStartDate?: () => Date;
4
+ };
5
+ export declare function getStartDate(mediaEl: MediaWithPDT, hls: PlaybackEngine | undefined): Date;
6
+ export declare function getCurrentPdt(mediaEl: MediaWithPDT, hls: PlaybackEngine | undefined): Date;
7
+ export {};
@@ -20,13 +20,11 @@ export type AutoplayTypes = {
20
20
  };
21
21
  export declare const AutoplayTypes: AutoplayTypes;
22
22
  export type Autoplay = boolean | ValueOf<AutoplayTypes>;
23
+ export type HlsPlaylistTypes = 'VOD' | 'EVENT' | null | undefined;
23
24
  export type StreamTypes = {
24
- VOD: 'on-demand';
25
25
  ON_DEMAND: 'on-demand';
26
26
  LIVE: 'live';
27
- LL_LIVE: 'll-live';
28
- DVR: 'live:dvr';
29
- LL_DVR: 'll-live:dvr';
27
+ UNKNOWN: 'unknown';
30
28
  };
31
29
  export declare const StreamTypes: StreamTypes;
32
30
  export type PlaybackTypes = {
@@ -73,13 +71,15 @@ export type MuxMediaPropTypes = {
73
71
  preferPlayback: ValueOf<PlaybackTypes> | undefined;
74
72
  type: MediaTypes;
75
73
  streamType: ValueOf<StreamTypes>;
74
+ targetLiveWindow: number;
75
+ liveEdgeStart: number;
76
76
  startTime: Hls['config']['startPosition'];
77
77
  autoPlay?: Autoplay;
78
78
  autoplay?: Autoplay;
79
79
  preferCmcd: ValueOf<CmcdTypes> | undefined;
80
80
  error?: HTMLMediaElement['error'] | MediaError;
81
81
  };
82
- export type HTMLMediaElementProps = Partial<Pick<HTMLMediaElement, 'src' | 'preload' | 'error'>>;
82
+ export type HTMLMediaElementProps = Partial<Pick<HTMLMediaElement, 'src' | 'preload' | 'error' | 'seekable'>>;
83
83
  export type MuxMediaProps = HTMLMediaElementProps & MuxMediaPropTypes;
84
84
  export type MuxMediaPropsInternal = MuxMediaProps & {
85
85
  playerSoftwareName: MetaData['player_software_name'];
@@ -1,8 +1,10 @@
1
- import { type MuxMediaProps } from './types';
1
+ import type { HlsPlaylistTypes, MuxMediaProps } from './types';
2
2
  type addEventListenerWithTeardown = <K extends keyof HTMLMediaElementEventMap, T extends EventTarget = HTMLMediaElement>(mediaEl: HTMLMediaElement, type: K, listener: (this: T, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions, target?: T | HTMLMediaElement) => void;
3
3
  export declare const addEventListenerWithTeardown: addEventListenerWithTeardown;
4
4
  export declare function inSeekableRange(seekable: TimeRanges, duration: number, time: number): boolean;
5
5
  export declare const toPlaybackIdParts: (playbackIdWithOptionalParams: string) => [string, string?];
6
6
  export declare const getType: (props: Partial<Pick<MuxMediaProps, 'type' | 'src'>>) => "" | import("./types").MediaTypes;
7
+ export declare const toStreamTypeFromPlaylistType: (playlistType: HlsPlaylistTypes) => "on-demand" | "live";
8
+ export declare const toTargetLiveWindowFromPlaylistType: (playlistType: HlsPlaylistTypes) => number;
7
9
  export declare const inferMimeTypeFromURL: (url: string) => "" | "application/vnd.apple.mpegurl" | "video/mp4";
8
10
  export {};
@@ -4,9 +4,24 @@ import Hls from './hls';
4
4
  import { HlsInterface } from './hls';
5
5
  import { MediaError } from './errors';
6
6
  import { addTextTrack, removeTextTrack, addCuePoints, getCuePoints, getActiveCuePoint, setupCuePoints, getCuePointsTrack } from './tracks';
7
+ import { getStartDate, getCurrentPdt } from './pdt';
7
8
  import { StreamTypes, ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal } from './types';
8
- export { mux, Hls, MediaError, addTextTrack, removeTextTrack, addCuePoints, getCuePoints, getActiveCuePoint, getCuePointsTrack, setupCuePoints, };
9
+ export { mux, Hls, MediaError, addTextTrack, removeTextTrack, addCuePoints, getCuePoints, getActiveCuePoint, getCuePointsTrack, setupCuePoints, getStartDate, getCurrentPdt, };
9
10
  export * from './types';
11
+ export declare const getMediaPlaylistLinesFromMultivariantPlaylistSrc: (src: string) => Promise<string[]>;
12
+ export declare const getStreamInfoFromPlaylistLines: (playlistLines: string[]) => {
13
+ streamType: "on-demand" | "live";
14
+ targetLiveWindow: number;
15
+ liveEdgeStartOffset: number | undefined;
16
+ };
17
+ export declare const updateStreamInfoFromSrc: (src: string, mediaEl: HTMLMediaElement) => Promise<void>;
18
+ export declare const getStreamInfoFromHlsjsLevelDetails: (levelDetails: any) => {
19
+ streamType: "on-demand" | "live";
20
+ targetLiveWindow: number;
21
+ liveEdgeStartOffset: number | undefined;
22
+ lowLatency: boolean;
23
+ };
24
+ export declare const updateStreamInfoFromHlsjsLevelDetails: (levelDetails: any, mediaEl: HTMLMediaElement, hls: Pick<Hls, 'config' | 'userConfig' | 'liveSyncPosition'>) => void;
10
25
  export declare const generatePlayerInitTime: () => number;
11
26
  export declare const generateUUID: () => string;
12
27
  export declare const toMuxVideoURL: (playbackId?: string, { domain, maxResolution }?: {
@@ -14,6 +29,10 @@ export declare const toMuxVideoURL: (playbackId?: string, { domain, maxResolutio
14
29
  maxResolution?: string | undefined;
15
30
  }) => string | undefined;
16
31
  export declare const getError: (mediaEl: HTMLMediaElement) => globalThis.MediaError | (globalThis.MediaError & MediaError) | null | undefined;
32
+ export declare const getStreamType: (mediaEl: HTMLMediaElement) => ValueOf<StreamTypes>;
33
+ export declare const getTargetLiveWindow: (mediaEl: HTMLMediaElement) => number;
34
+ export declare const getSeekable: (mediaEl: HTMLMediaElement) => TimeRanges;
35
+ export declare const getLiveEdgeStart: (mediaEl: HTMLMediaElement) => number;
17
36
  export declare const initialize: (props: Partial<MuxMediaPropsInternal>, mediaEl: HTMLMediaElement, core?: PlaybackCore) => {
18
37
  engine: import("hls.js").default | undefined;
19
38
  setAutoplay: (newAutoplay?: import("./types").Autoplay | undefined) => void;
@@ -24,4 +43,4 @@ export declare const setupHls: (props: Partial<Pick<MuxMediaPropsInternal, 'debu
24
43
  export declare const getStreamTypeConfig: (streamType?: ValueOf<StreamTypes>) => {};
25
44
  export declare const isMuxVideoSrc: ({ playbackId, src, customDomain, }: Partial<Pick<MuxMediaPropsInternal, 'playbackId' | 'src' | 'customDomain'>>) => boolean;
26
45
  export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, 'envKey' | 'playerInitTime' | 'beaconCollectionDomain' | 'errorTranslator' | 'metadata' | 'debug' | 'playerSoftwareName' | 'playerSoftwareVersion' | 'playbackId' | 'src' | 'customDomain' | 'disableCookies'>>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
27
- export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, 'preferPlayback' | 'src' | 'type' | 'startTime' | 'streamType' | 'autoplay'>>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, 'config' | 'on' | 'once' | 'startLoad' | 'stopLoad' | 'recoverMediaError' | 'destroy' | 'loadSource' | 'attachMedia' | 'liveSyncPosition' | 'subtitleTracks' | 'subtitleTrack'>) => void;
46
+ export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, 'preferPlayback' | 'src' | 'type' | 'startTime' | 'streamType' | 'autoplay'>>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, 'config' | 'on' | 'once' | 'startLoad' | 'stopLoad' | 'recoverMediaError' | 'destroy' | 'loadSource' | 'attachMedia' | 'liveSyncPosition' | 'subtitleTracks' | 'subtitleTrack' | 'userConfig'>) => void;
@@ -0,0 +1,7 @@
1
+ import { PlaybackEngine } from './types';
2
+ type MediaWithPDT = HTMLMediaElement & {
3
+ getStartDate?: () => Date;
4
+ };
5
+ export declare function getStartDate(mediaEl: MediaWithPDT, hls: PlaybackEngine | undefined): Date;
6
+ export declare function getCurrentPdt(mediaEl: MediaWithPDT, hls: PlaybackEngine | undefined): Date;
7
+ export {};
@@ -20,13 +20,11 @@ export type AutoplayTypes = {
20
20
  };
21
21
  export declare const AutoplayTypes: AutoplayTypes;
22
22
  export type Autoplay = boolean | ValueOf<AutoplayTypes>;
23
+ export type HlsPlaylistTypes = 'VOD' | 'EVENT' | null | undefined;
23
24
  export type StreamTypes = {
24
- VOD: 'on-demand';
25
25
  ON_DEMAND: 'on-demand';
26
26
  LIVE: 'live';
27
- LL_LIVE: 'll-live';
28
- DVR: 'live:dvr';
29
- LL_DVR: 'll-live:dvr';
27
+ UNKNOWN: 'unknown';
30
28
  };
31
29
  export declare const StreamTypes: StreamTypes;
32
30
  export type PlaybackTypes = {
@@ -73,13 +71,15 @@ export type MuxMediaPropTypes = {
73
71
  preferPlayback: ValueOf<PlaybackTypes> | undefined;
74
72
  type: MediaTypes;
75
73
  streamType: ValueOf<StreamTypes>;
74
+ targetLiveWindow: number;
75
+ liveEdgeStart: number;
76
76
  startTime: Hls['config']['startPosition'];
77
77
  autoPlay?: Autoplay;
78
78
  autoplay?: Autoplay;
79
79
  preferCmcd: ValueOf<CmcdTypes> | undefined;
80
80
  error?: HTMLMediaElement['error'] | MediaError;
81
81
  };
82
- export type HTMLMediaElementProps = Partial<Pick<HTMLMediaElement, 'src' | 'preload' | 'error'>>;
82
+ export type HTMLMediaElementProps = Partial<Pick<HTMLMediaElement, 'src' | 'preload' | 'error' | 'seekable'>>;
83
83
  export type MuxMediaProps = HTMLMediaElementProps & MuxMediaPropTypes;
84
84
  export type MuxMediaPropsInternal = MuxMediaProps & {
85
85
  playerSoftwareName: MetaData['player_software_name'];
@@ -1,4 +1,4 @@
1
- import { MuxMediaProps } from './types';
1
+ import { HlsPlaylistTypes, MuxMediaProps } from './types';
2
2
  type addEventListenerWithTeardown = <K extends keyof HTMLMediaElementEventMap, T extends EventTarget = HTMLMediaElement>(mediaEl: HTMLMediaElement, type: K, listener: (this: T, ev: HTMLMediaElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions, target?: T | HTMLMediaElement) => void;
3
3
  export declare const addEventListenerWithTeardown: addEventListenerWithTeardown;
4
4
  export declare function inSeekableRange(seekable: TimeRanges, duration: number, time: number): boolean;
@@ -7,5 +7,7 @@ export declare const toPlaybackIdParts: (playbackIdWithOptionalParams: string) =
7
7
  string?
8
8
  ];
9
9
  export declare const getType: (props: Partial<Pick<MuxMediaProps, 'type' | 'src'>>) => "" | import("./types").MediaTypes;
10
+ export declare const toStreamTypeFromPlaylistType: (playlistType: HlsPlaylistTypes) => "on-demand" | "live";
11
+ export declare const toTargetLiveWindowFromPlaylistType: (playlistType: HlsPlaylistTypes) => number;
10
12
  export declare const inferMimeTypeFromURL: (url: string) => "" | "application/vnd.apple.mpegurl" | "video/mp4";
11
13
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mux/playback-core",
3
- "version": "0.17.1",
3
+ "version": "0.18.0",
4
4
  "description": "Core library for media playback in the browser shared by mux elements",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.mjs",
@@ -50,7 +50,7 @@
50
50
  "publish-release": "../../scripts/publish.sh"
51
51
  },
52
52
  "dependencies": {
53
- "hls.js": "1.4.0-beta.2",
53
+ "hls.js": "1.4.0",
54
54
  "mux-embed": "^4.24.0"
55
55
  },
56
56
  "devDependencies": {
@@ -67,5 +67,5 @@
67
67
  "shx": "^0.3.4",
68
68
  "typescript": "^4.9.4"
69
69
  },
70
- "gitHead": "0d69b0cafa8b1109999634ecfca17456ca835d84"
70
+ "gitHead": "0bf180baa5b87fb2e4f6671396adf20c9fa8bc80"
71
71
  }