@100mslive/hls-stats 0.5.3-alpha.4 → 0.5.3-alpha.6

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.
@@ -3,5 +3,5 @@
3
3
  "sources": ["../src/index.ts", "../src/adapters/HlsJsAdapter.ts", "../src/adapters/BaseAdapter.ts", "../src/controllers/HlsStats.ts"],
4
4
  "sourcesContent": ["export { HlsStats } from './controllers/HlsStats';\nexport type { IHlsStats } from './interfaces/IHlsStats';\nexport type { HlsPlayerStats } from './interfaces/index';\n", "import Hls from 'hls.js';\nimport { BaseAdapter } from './BaseAdapter';\n\nexport class HlsJsAdapter extends BaseAdapter {\n timeUpdateHandler = () => {\n const bufferedDuration =\n this.videoEl.buffered.length > 0 ? this.videoEl.buffered.end(0) - this.videoEl.buffered.start(0) : 0;\n const distanceFromLive =\n (this.hlsInstance.liveSyncPosition ? this.hlsInstance.liveSyncPosition - this.videoEl.currentTime : 0) * 1000;\n const quality = this.videoEl.getVideoPlaybackQuality();\n const droppedFrames = quality.droppedVideoFrames;\n this.hlsStatsState = {\n ...this.hlsStatsState,\n distanceFromLive: distanceFromLive > 0 ? distanceFromLive : 0,\n bufferedDuration,\n droppedFrames,\n };\n };\n\n levelLoadedHandler = (_: any, { level }: { level: number }) => {\n const currentLevel = this.hlsInstance.levels[level];\n const { bitrate, height, width } = currentLevel;\n this.hlsStatsState = {\n ...this.hlsStatsState,\n bitrate,\n videoSize: {\n height,\n width,\n },\n };\n };\n\n fragChangedHandler = (_: any, { frag }: { frag: { stats: { bwEstimate: number }; baseurl: string } }) => {\n const { stats, baseurl } = frag;\n const { bwEstimate } = stats;\n this.hlsStatsState = {\n ...this.hlsStatsState,\n bandwidthEstimate: bwEstimate,\n url: baseurl,\n };\n };\n\n startGatheringStats(): void {\n this.hlsInstance.on(Hls.Events.FRAG_CHANGED, this.fragChangedHandler);\n this.hlsInstance.on(Hls.Events.LEVEL_LOADED, this.levelLoadedHandler);\n this.videoEl.addEventListener('timeupdate', this.timeUpdateHandler);\n }\n\n finishGatheringStats(): void {\n this.videoEl.removeEventListener('timeupdate', this.timeUpdateHandler);\n this.hlsInstance.off(Hls.Events.FRAG_CHANGED, this.fragChangedHandler);\n this.hlsInstance.off(Hls.Events.LEVEL_LOADED, this.levelLoadedHandler);\n }\n}\n", "import Hls from 'hls.js';\nimport { HlsPlayerStats } from '../interfaces';\nexport abstract class BaseAdapter {\n hlsInstance: Hls;\n videoEl: HTMLVideoElement;\n hlsStatsState: HlsPlayerStats;\n constructor(hlsInstance: Hls, videoEl: HTMLVideoElement) {\n this.hlsInstance = hlsInstance;\n this.videoEl = videoEl;\n this.hlsStatsState = {};\n }\n abstract startGatheringStats(): void;\n abstract finishGatheringStats(): void;\n getState() {\n return this.hlsStatsState;\n }\n}\n", "import Hls from 'hls.js';\nimport { BaseAdapter } from '../adapters/BaseAdapter';\nimport { HlsJsAdapter } from '../adapters/HlsJsAdapter';\nimport { HlsPlayerStats } from '../interfaces';\nimport { IHlsStats } from '../interfaces/IHlsStats';\n\nexport class HlsStats implements IHlsStats {\n adapter: BaseAdapter;\n intervalFunctionId = -1;\n constructor(hlsLibraryInstance: Hls, videoEl: HTMLVideoElement) {\n const hlsJsAdapter = new HlsJsAdapter(hlsLibraryInstance, videoEl);\n this.adapter = hlsJsAdapter;\n }\n\n subscribe = (callback: (state: HlsPlayerStats) => void, interval = 2000) => {\n this.adapter.startGatheringStats();\n //@ts-ignore\n this.intervalFunctionId = setInterval(() => {\n callback(this.getState());\n }, interval);\n return this.unsubscribe;\n };\n unsubscribe = () => {\n clearInterval(this.intervalFunctionId);\n this.adapter.finishGatheringStats();\n };\n\n getState = () => {\n return this.adapter.getState();\n };\n}\n"],
5
5
  "mappings": "i5BAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAgB,qBCET,IAAeC,EAAf,KAA2B,CAIhC,YAAYC,EAAkBC,EAA2B,CACvD,KAAK,YAAcD,EACnB,KAAK,QAAUC,EACf,KAAK,cAAgB,CAAC,CACxB,CAGA,UAAW,CACT,OAAO,KAAK,aACd,CACF,EDbO,IAAMC,EAAN,cAA2BC,CAAY,CAAvC,kCACL,uBAAoB,IAAM,CACxB,IAAMC,EACJ,KAAK,QAAQ,SAAS,OAAS,EAAI,KAAK,QAAQ,SAAS,IAAI,CAAC,EAAI,KAAK,QAAQ,SAAS,MAAM,CAAC,EAAI,EAC/FC,GACH,KAAK,YAAY,iBAAmB,KAAK,YAAY,iBAAmB,KAAK,QAAQ,YAAc,GAAK,IAErGC,EADU,KAAK,QAAQ,wBAAwB,EACvB,mBAC9B,KAAK,cAAgBC,EAAAC,EAAA,GAChB,KAAK,eADW,CAEnB,iBAAkBH,EAAmB,EAAIA,EAAmB,EAC5D,iBAAAD,EACA,cAAAE,CACF,EACF,EAEA,wBAAqB,CAACG,EAAQ,CAAE,MAAAC,CAAM,IAAyB,CAC7D,IAAMC,EAAe,KAAK,YAAY,OAAOD,CAAK,EAC5C,CAAE,QAAAE,EAAS,OAAAC,EAAQ,MAAAC,CAAM,EAAIH,EACnC,KAAK,cAAgBJ,EAAAC,EAAA,GAChB,KAAK,eADW,CAEnB,QAAAI,EACA,UAAW,CACT,OAAAC,EACA,MAAAC,CACF,CACF,EACF,EAEA,wBAAqB,CAACL,EAAQ,CAAE,KAAAM,CAAK,IAAoE,CACvG,GAAM,CAAE,MAAAC,EAAO,QAAAC,CAAQ,EAAIF,EACrB,CAAE,WAAAG,CAAW,EAAIF,EACvB,KAAK,cAAgBT,EAAAC,EAAA,GAChB,KAAK,eADW,CAEnB,kBAAmBU,EACnB,IAAKD,CACP,EACF,EAEA,qBAA4B,CAC1B,KAAK,YAAY,GAAG,EAAAE,QAAI,OAAO,aAAc,KAAK,kBAAkB,EACpE,KAAK,YAAY,GAAG,EAAAA,QAAI,OAAO,aAAc,KAAK,kBAAkB,EACpE,KAAK,QAAQ,iBAAiB,aAAc,KAAK,iBAAiB,CACpE,CAEA,sBAA6B,CAC3B,KAAK,QAAQ,oBAAoB,aAAc,KAAK,iBAAiB,EACrE,KAAK,YAAY,IAAI,EAAAA,QAAI,OAAO,aAAc,KAAK,kBAAkB,EACrE,KAAK,YAAY,IAAI,EAAAA,QAAI,OAAO,aAAc,KAAK,kBAAkB,CACvE,CACF,EE/CO,IAAMC,EAAN,KAAoC,CAGzC,YAAYC,EAAyBC,EAA2B,CADhE,wBAAqB,GAMrB,eAAY,CAACC,EAA2CC,EAAW,OACjE,KAAK,QAAQ,oBAAoB,EAEjC,KAAK,mBAAqB,YAAY,IAAM,CAC1CD,EAAS,KAAK,SAAS,CAAC,CAC1B,EAAGC,CAAQ,EACJ,KAAK,aAEd,iBAAc,IAAM,CAClB,cAAc,KAAK,kBAAkB,EACrC,KAAK,QAAQ,qBAAqB,CACpC,EAEA,cAAW,IACF,KAAK,QAAQ,SAAS,EAlB7B,IAAMC,EAAe,IAAIC,EAAaL,EAAoBC,CAAO,EACjE,KAAK,QAAUG,CACjB,CAkBF",
6
- "names": ["src_exports", "__export", "HlsStats", "__toCommonJS", "import_hls", "BaseAdapter", "hlsInstance", "videoEl", "HlsJsAdapter", "BaseAdapter", "bufferedDuration", "distanceFromLive", "droppedFrames", "__spreadProps", "__spreadValues", "_", "level", "currentLevel", "bitrate", "height", "width", "frag", "stats", "baseurl", "bwEstimate", "Hls", "HlsStats", "hlsLibraryInstance", "videoEl", "callback", "interval", "hlsJsAdapter", "HlsJsAdapter"]
6
+ "names": ["index_exports", "__export", "HlsStats", "__toCommonJS", "import_hls", "BaseAdapter", "hlsInstance", "videoEl", "HlsJsAdapter", "BaseAdapter", "bufferedDuration", "distanceFromLive", "droppedFrames", "__spreadProps", "__spreadValues", "_", "level", "currentLevel", "bitrate", "height", "width", "frag", "stats", "baseurl", "bwEstimate", "Hls", "HlsStats", "hlsLibraryInstance", "videoEl", "callback", "interval", "hlsJsAdapter", "HlsJsAdapter"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@100mslive/hls-stats",
3
- "version": "0.5.3-alpha.4",
3
+ "version": "0.5.3-alpha.6",
4
4
  "description": "A simple library that provides stats for your hls stream",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -40,5 +40,5 @@
40
40
  "peerDependencies": {
41
41
  "hls.js": "1.4.12"
42
42
  },
43
- "gitHead": "f4feef2572dd196edc136c16a0b0debbfb00f39a"
43
+ "gitHead": "57bd13f805356a53228e413cbb350c7e9875d0d8"
44
44
  }