@rivmux/runtime-worker 0.1.0 → 0.3.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.
package/dist/index.js CHANGED
@@ -1,17 +1,25 @@
1
1
  //#region src/index.ts
2
2
  const REQUEST_TIMEOUT_MS = 5e3;
3
3
  var WorkerClient = class {
4
+ worker;
5
+ hooks;
6
+ handleMessage = (event) => {
7
+ this.handleWorkerMessage(event.data);
8
+ };
9
+ handleError = (event) => {
10
+ const error = createRuntimeWorkerError("RIVMUX_WORKER_ERROR", event.message || "Worker runtime failed.", true, event.error);
11
+ this.rejectAll(error);
12
+ this.hooks.onError(error);
13
+ };
14
+ pendingAttach;
15
+ pendingStop;
16
+ pendingDestroy;
17
+ workerReady = false;
18
+ queuedCommands = [];
19
+ attachTimer;
20
+ stoppedTimer;
21
+ destroyedTimer;
4
22
  constructor(worker, hooks) {
5
- this.handleMessage = (event) => {
6
- this.handleWorkerMessage(event.data);
7
- };
8
- this.handleError = (event) => {
9
- const error = createRuntimeWorkerError("RIVMUX_WORKER_ERROR", event.message || "Worker runtime failed.", true, event.error);
10
- this.rejectAll(error);
11
- this.hooks.onError(error);
12
- };
13
- this.workerReady = false;
14
- this.queuedCommands = [];
15
23
  this.worker = worker;
16
24
  this.hooks = hooks;
17
25
  this.worker.addEventListener("message", this.handleMessage);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { NormalizedRivmuxPlayerOptions, PlayerError, WorkerCommand, WorkerMessage } from '@rivmux/protocol'\n\nexport type WorkerLike = Pick<Worker, 'addEventListener' | 'postMessage' | 'removeEventListener' | 'terminate'>\n\nexport type RuntimeWorkerFactory = (options: NormalizedRivmuxPlayerOptions) => WorkerLike\n\ntype PendingRequest = {\n resolve: () => void\n reject: (error: PlayerError) => void\n}\n\nexport type WorkerClientHooks = {\n onMessage(message: WorkerMessage): void\n onError(error: PlayerError): void\n}\n\nconst REQUEST_TIMEOUT_MS = 5000\n\nexport class WorkerClient {\n private readonly worker: WorkerLike\n private readonly hooks: WorkerClientHooks\n private readonly handleMessage = (event: MessageEvent<WorkerMessage>): void => {\n this.handleWorkerMessage(event.data)\n }\n private readonly handleError = (event: ErrorEvent): void => {\n const error = createRuntimeWorkerError('RIVMUX_WORKER_ERROR', event.message || 'Worker runtime failed.', true, event.error)\n this.rejectAll(error)\n this.hooks.onError(error)\n }\n private pendingAttach?: PendingRequest\n private pendingStop?: PendingRequest\n private pendingDestroy?: PendingRequest\n private workerReady = false\n private queuedCommands: WorkerCommand[] = []\n private attachTimer?: ReturnType<typeof setTimeout>\n private stoppedTimer?: ReturnType<typeof setTimeout>\n private destroyedTimer?: ReturnType<typeof setTimeout>\n\n constructor(worker: WorkerLike, hooks: WorkerClientHooks) {\n this.worker = worker\n this.hooks = hooks\n this.worker.addEventListener('message', this.handleMessage as EventListener)\n this.worker.addEventListener('error', this.handleError as EventListener)\n }\n\n post(command: WorkerCommand): void {\n if (!this.workerReady) {\n this.queuedCommands.push(command)\n return\n }\n\n this.worker.postMessage(command)\n }\n\n waitForMediaSourceHandle(command: WorkerCommand): Promise<void> {\n if (this.pendingAttach !== undefined) {\n return Promise.reject(createRuntimeWorkerError('RIVMUX_ATTACH_IN_PROGRESS', 'A media source attach request is already pending.', false))\n }\n\n return new Promise((resolve, reject) => {\n this.pendingAttach = { resolve, reject }\n this.attachTimer = this.startTimeout('RIVMUX_ATTACH_TIMEOUT', 'Timed out waiting for worker MediaSourceHandle.', reject)\n this.post(command)\n })\n }\n\n waitForStopped(command: WorkerCommand): Promise<void> {\n if (this.pendingStop !== undefined) {\n return Promise.reject(createRuntimeWorkerError('RIVMUX_STOP_IN_PROGRESS', 'A stop request is already pending.', false))\n }\n\n return new Promise((resolve, reject) => {\n this.pendingStop = { resolve, reject }\n this.stoppedTimer = this.startTimeout('RIVMUX_STOP_TIMEOUT', 'Timed out waiting for worker stop.', reject)\n this.post(command)\n })\n }\n\n waitForDestroyed(command: WorkerCommand): Promise<void> {\n if (this.pendingDestroy !== undefined) {\n return Promise.reject(createRuntimeWorkerError('RIVMUX_DESTROY_IN_PROGRESS', 'A destroy request is already pending.', false))\n }\n\n return new Promise((resolve, reject) => {\n this.pendingDestroy = { resolve, reject }\n this.destroyedTimer = this.startTimeout('RIVMUX_DESTROY_TIMEOUT', 'Timed out waiting for worker destroy.', reject)\n this.post(command)\n })\n }\n\n dispose(): void {\n this.rejectAll(createRuntimeWorkerError('RIVMUX_WORKER_DISPOSED', 'Worker client was disposed.', true))\n this.worker.removeEventListener('message', this.handleMessage as EventListener)\n this.worker.removeEventListener('error', this.handleError as EventListener)\n this.worker.terminate()\n }\n\n private handleWorkerMessage(message: WorkerMessage): void {\n if (message.type === 'worker-ready') {\n this.flushQueuedCommands()\n return\n }\n\n this.hooks.onMessage(message)\n\n if (message.type === 'media-source-handle') {\n this.resolveAttach()\n return\n }\n\n if (message.type === 'stopped') {\n this.resolveStop()\n return\n }\n\n if (message.type === 'destroyed') {\n this.resolveDestroy()\n return\n }\n\n if (message.type === 'error') {\n this.rejectPendingForWorkerError(message.error)\n }\n }\n\n private rejectPendingForWorkerError(error: PlayerError): void {\n if (!error.terminal) {\n return\n }\n\n this.rejectAll(error)\n }\n\n private resolveAttach(): void {\n this.clearAttachTimer()\n this.pendingAttach?.resolve()\n this.pendingAttach = undefined\n }\n\n private resolveStop(): void {\n this.clearStoppedTimer()\n this.pendingStop?.resolve()\n this.pendingStop = undefined\n }\n\n private resolveDestroy(): void {\n this.clearDestroyedTimer()\n this.pendingDestroy?.resolve()\n this.pendingDestroy = undefined\n }\n\n private rejectAll(error: PlayerError): void {\n this.queuedCommands = []\n this.clearAttachTimer()\n this.clearStoppedTimer()\n this.clearDestroyedTimer()\n this.pendingAttach?.reject(error)\n this.pendingStop?.reject(error)\n this.pendingDestroy?.reject(error)\n this.pendingAttach = undefined\n this.pendingStop = undefined\n this.pendingDestroy = undefined\n }\n\n private flushQueuedCommands(): void {\n if (this.workerReady) {\n return\n }\n\n this.workerReady = true\n const commands = this.queuedCommands\n this.queuedCommands = []\n for (const command of commands) {\n this.worker.postMessage(command)\n }\n }\n\n private startTimeout(code: string, message: string, reject: (error: PlayerError) => void): ReturnType<typeof setTimeout> {\n return setTimeout(() => {\n const error = createRuntimeWorkerError(code, message, true)\n reject(error)\n this.rejectAll(error)\n }, REQUEST_TIMEOUT_MS)\n }\n\n private clearAttachTimer(): void {\n if (this.attachTimer !== undefined) {\n clearTimeout(this.attachTimer)\n this.attachTimer = undefined\n }\n }\n\n private clearStoppedTimer(): void {\n if (this.stoppedTimer !== undefined) {\n clearTimeout(this.stoppedTimer)\n this.stoppedTimer = undefined\n }\n }\n\n private clearDestroyedTimer(): void {\n if (this.destroyedTimer !== undefined) {\n clearTimeout(this.destroyedTimer)\n this.destroyedTimer = undefined\n }\n }\n}\n\nexport function createRuntimeWorker(options: NormalizedRivmuxPlayerOptions): WorkerLike {\n const url = options.runtime.workerUrl === undefined ? new URL('./rivmux-runtime-worker.js', import.meta.url) : options.runtime.workerUrl\n\n return new Worker(url, {\n name: 'rivmux-runtime-worker',\n type: 'module',\n })\n}\n\nfunction createRuntimeWorkerError(code: string, message: string, terminal: boolean, cause?: unknown): PlayerError {\n return cause === undefined ? { kind: 'runtime', code, message, terminal } : { kind: 'runtime', code, message, terminal, cause }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { NormalizedRivmuxPlayerOptions, PlayerError, WorkerCommand, WorkerMessage } from '@rivmux/protocol'\n\nexport type WorkerLike = Pick<Worker, 'addEventListener' | 'postMessage' | 'removeEventListener' | 'terminate'>\n\nexport type RuntimeWorkerFactory = (options: NormalizedRivmuxPlayerOptions) => WorkerLike\n\ntype PendingRequest = {\n resolve: () => void\n reject: (error: PlayerError) => void\n}\n\nexport type WorkerClientHooks = {\n onMessage(message: WorkerMessage): void\n onError(error: PlayerError): void\n}\n\nconst REQUEST_TIMEOUT_MS = 5000\n\nexport class WorkerClient {\n private readonly worker: WorkerLike\n private readonly hooks: WorkerClientHooks\n private readonly handleMessage = (event: MessageEvent<WorkerMessage>): void => {\n this.handleWorkerMessage(event.data)\n }\n private readonly handleError = (event: ErrorEvent): void => {\n const error = createRuntimeWorkerError('RIVMUX_WORKER_ERROR', event.message || 'Worker runtime failed.', true, event.error)\n this.rejectAll(error)\n this.hooks.onError(error)\n }\n private pendingAttach?: PendingRequest\n private pendingStop?: PendingRequest\n private pendingDestroy?: PendingRequest\n private workerReady = false\n private queuedCommands: WorkerCommand[] = []\n private attachTimer?: ReturnType<typeof setTimeout>\n private stoppedTimer?: ReturnType<typeof setTimeout>\n private destroyedTimer?: ReturnType<typeof setTimeout>\n\n constructor(worker: WorkerLike, hooks: WorkerClientHooks) {\n this.worker = worker\n this.hooks = hooks\n this.worker.addEventListener('message', this.handleMessage as EventListener)\n this.worker.addEventListener('error', this.handleError as EventListener)\n }\n\n post(command: WorkerCommand): void {\n if (!this.workerReady) {\n this.queuedCommands.push(command)\n return\n }\n\n this.worker.postMessage(command)\n }\n\n waitForMediaSourceHandle(command: WorkerCommand): Promise<void> {\n if (this.pendingAttach !== undefined) {\n return Promise.reject(createRuntimeWorkerError('RIVMUX_ATTACH_IN_PROGRESS', 'A media source attach request is already pending.', false))\n }\n\n return new Promise((resolve, reject) => {\n this.pendingAttach = { resolve, reject }\n this.attachTimer = this.startTimeout('RIVMUX_ATTACH_TIMEOUT', 'Timed out waiting for worker MediaSourceHandle.', reject)\n this.post(command)\n })\n }\n\n waitForStopped(command: WorkerCommand): Promise<void> {\n if (this.pendingStop !== undefined) {\n return Promise.reject(createRuntimeWorkerError('RIVMUX_STOP_IN_PROGRESS', 'A stop request is already pending.', false))\n }\n\n return new Promise((resolve, reject) => {\n this.pendingStop = { resolve, reject }\n this.stoppedTimer = this.startTimeout('RIVMUX_STOP_TIMEOUT', 'Timed out waiting for worker stop.', reject)\n this.post(command)\n })\n }\n\n waitForDestroyed(command: WorkerCommand): Promise<void> {\n if (this.pendingDestroy !== undefined) {\n return Promise.reject(createRuntimeWorkerError('RIVMUX_DESTROY_IN_PROGRESS', 'A destroy request is already pending.', false))\n }\n\n return new Promise((resolve, reject) => {\n this.pendingDestroy = { resolve, reject }\n this.destroyedTimer = this.startTimeout('RIVMUX_DESTROY_TIMEOUT', 'Timed out waiting for worker destroy.', reject)\n this.post(command)\n })\n }\n\n dispose(): void {\n this.rejectAll(createRuntimeWorkerError('RIVMUX_WORKER_DISPOSED', 'Worker client was disposed.', true))\n this.worker.removeEventListener('message', this.handleMessage as EventListener)\n this.worker.removeEventListener('error', this.handleError as EventListener)\n this.worker.terminate()\n }\n\n private handleWorkerMessage(message: WorkerMessage): void {\n if (message.type === 'worker-ready') {\n this.flushQueuedCommands()\n return\n }\n\n this.hooks.onMessage(message)\n\n if (message.type === 'media-source-handle') {\n this.resolveAttach()\n return\n }\n\n if (message.type === 'stopped') {\n this.resolveStop()\n return\n }\n\n if (message.type === 'destroyed') {\n this.resolveDestroy()\n return\n }\n\n if (message.type === 'error') {\n this.rejectPendingForWorkerError(message.error)\n }\n }\n\n private rejectPendingForWorkerError(error: PlayerError): void {\n if (!error.terminal) {\n return\n }\n\n this.rejectAll(error)\n }\n\n private resolveAttach(): void {\n this.clearAttachTimer()\n this.pendingAttach?.resolve()\n this.pendingAttach = undefined\n }\n\n private resolveStop(): void {\n this.clearStoppedTimer()\n this.pendingStop?.resolve()\n this.pendingStop = undefined\n }\n\n private resolveDestroy(): void {\n this.clearDestroyedTimer()\n this.pendingDestroy?.resolve()\n this.pendingDestroy = undefined\n }\n\n private rejectAll(error: PlayerError): void {\n this.queuedCommands = []\n this.clearAttachTimer()\n this.clearStoppedTimer()\n this.clearDestroyedTimer()\n this.pendingAttach?.reject(error)\n this.pendingStop?.reject(error)\n this.pendingDestroy?.reject(error)\n this.pendingAttach = undefined\n this.pendingStop = undefined\n this.pendingDestroy = undefined\n }\n\n private flushQueuedCommands(): void {\n if (this.workerReady) {\n return\n }\n\n this.workerReady = true\n const commands = this.queuedCommands\n this.queuedCommands = []\n for (const command of commands) {\n this.worker.postMessage(command)\n }\n }\n\n private startTimeout(code: string, message: string, reject: (error: PlayerError) => void): ReturnType<typeof setTimeout> {\n return setTimeout(() => {\n const error = createRuntimeWorkerError(code, message, true)\n reject(error)\n this.rejectAll(error)\n }, REQUEST_TIMEOUT_MS)\n }\n\n private clearAttachTimer(): void {\n if (this.attachTimer !== undefined) {\n clearTimeout(this.attachTimer)\n this.attachTimer = undefined\n }\n }\n\n private clearStoppedTimer(): void {\n if (this.stoppedTimer !== undefined) {\n clearTimeout(this.stoppedTimer)\n this.stoppedTimer = undefined\n }\n }\n\n private clearDestroyedTimer(): void {\n if (this.destroyedTimer !== undefined) {\n clearTimeout(this.destroyedTimer)\n this.destroyedTimer = undefined\n }\n }\n}\n\nexport function createRuntimeWorker(options: NormalizedRivmuxPlayerOptions): WorkerLike {\n const url = options.runtime.workerUrl === undefined ? new URL('./rivmux-runtime-worker.js', import.meta.url) : options.runtime.workerUrl\n\n return new Worker(url, {\n name: 'rivmux-runtime-worker',\n type: 'module',\n })\n}\n\nfunction createRuntimeWorkerError(code: string, message: string, terminal: boolean, cause?: unknown): PlayerError {\n return cause === undefined ? { kind: 'runtime', code, message, terminal } : { kind: 'runtime', code, message, terminal, cause }\n}\n"],"mappings":";AAgBA,MAAM,qBAAqB;AAE3B,IAAa,eAAb,MAA0B;CACxB;CACA;CACA,iBAAkC,UAA6C;EAC7E,KAAK,oBAAoB,MAAM,IAAI;CACrC;CACA,eAAgC,UAA4B;EAC1D,MAAM,QAAQ,yBAAyB,uBAAuB,MAAM,WAAW,0BAA0B,MAAM,MAAM,KAAK;EAC1H,KAAK,UAAU,KAAK;EACpB,KAAK,MAAM,QAAQ,KAAK;CAC1B;CACA;CACA;CACA;CACA,cAAsB;CACtB,iBAA0C,CAAC;CAC3C;CACA;CACA;CAEA,YAAY,QAAoB,OAA0B;EACxD,KAAK,SAAS;EACd,KAAK,QAAQ;EACb,KAAK,OAAO,iBAAiB,WAAW,KAAK,aAA8B;EAC3E,KAAK,OAAO,iBAAiB,SAAS,KAAK,WAA4B;CACzE;CAEA,KAAK,SAA8B;EACjC,IAAI,CAAC,KAAK,aAAa;GACrB,KAAK,eAAe,KAAK,OAAO;GAChC;EACF;EAEA,KAAK,OAAO,YAAY,OAAO;CACjC;CAEA,yBAAyB,SAAuC;EAC9D,IAAI,KAAK,kBAAkB,KAAA,GACzB,OAAO,QAAQ,OAAO,yBAAyB,6BAA6B,qDAAqD,KAAK,CAAC;EAGzI,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,KAAK,gBAAgB;IAAE;IAAS;GAAO;GACvC,KAAK,cAAc,KAAK,aAAa,yBAAyB,mDAAmD,MAAM;GACvH,KAAK,KAAK,OAAO;EACnB,CAAC;CACH;CAEA,eAAe,SAAuC;EACpD,IAAI,KAAK,gBAAgB,KAAA,GACvB,OAAO,QAAQ,OAAO,yBAAyB,2BAA2B,sCAAsC,KAAK,CAAC;EAGxH,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,KAAK,cAAc;IAAE;IAAS;GAAO;GACrC,KAAK,eAAe,KAAK,aAAa,uBAAuB,sCAAsC,MAAM;GACzG,KAAK,KAAK,OAAO;EACnB,CAAC;CACH;CAEA,iBAAiB,SAAuC;EACtD,IAAI,KAAK,mBAAmB,KAAA,GAC1B,OAAO,QAAQ,OAAO,yBAAyB,8BAA8B,yCAAyC,KAAK,CAAC;EAG9H,OAAO,IAAI,SAAS,SAAS,WAAW;GACtC,KAAK,iBAAiB;IAAE;IAAS;GAAO;GACxC,KAAK,iBAAiB,KAAK,aAAa,0BAA0B,yCAAyC,MAAM;GACjH,KAAK,KAAK,OAAO;EACnB,CAAC;CACH;CAEA,UAAgB;EACd,KAAK,UAAU,yBAAyB,0BAA0B,+BAA+B,IAAI,CAAC;EACtG,KAAK,OAAO,oBAAoB,WAAW,KAAK,aAA8B;EAC9E,KAAK,OAAO,oBAAoB,SAAS,KAAK,WAA4B;EAC1E,KAAK,OAAO,UAAU;CACxB;CAEA,oBAA4B,SAA8B;EACxD,IAAI,QAAQ,SAAS,gBAAgB;GACnC,KAAK,oBAAoB;GACzB;EACF;EAEA,KAAK,MAAM,UAAU,OAAO;EAE5B,IAAI,QAAQ,SAAS,uBAAuB;GAC1C,KAAK,cAAc;GACnB;EACF;EAEA,IAAI,QAAQ,SAAS,WAAW;GAC9B,KAAK,YAAY;GACjB;EACF;EAEA,IAAI,QAAQ,SAAS,aAAa;GAChC,KAAK,eAAe;GACpB;EACF;EAEA,IAAI,QAAQ,SAAS,SACnB,KAAK,4BAA4B,QAAQ,KAAK;CAElD;CAEA,4BAAoC,OAA0B;EAC5D,IAAI,CAAC,MAAM,UACT;EAGF,KAAK,UAAU,KAAK;CACtB;CAEA,gBAA8B;EAC5B,KAAK,iBAAiB;EACtB,KAAK,eAAe,QAAQ;EAC5B,KAAK,gBAAgB,KAAA;CACvB;CAEA,cAA4B;EAC1B,KAAK,kBAAkB;EACvB,KAAK,aAAa,QAAQ;EAC1B,KAAK,cAAc,KAAA;CACrB;CAEA,iBAA+B;EAC7B,KAAK,oBAAoB;EACzB,KAAK,gBAAgB,QAAQ;EAC7B,KAAK,iBAAiB,KAAA;CACxB;CAEA,UAAkB,OAA0B;EAC1C,KAAK,iBAAiB,CAAC;EACvB,KAAK,iBAAiB;EACtB,KAAK,kBAAkB;EACvB,KAAK,oBAAoB;EACzB,KAAK,eAAe,OAAO,KAAK;EAChC,KAAK,aAAa,OAAO,KAAK;EAC9B,KAAK,gBAAgB,OAAO,KAAK;EACjC,KAAK,gBAAgB,KAAA;EACrB,KAAK,cAAc,KAAA;EACnB,KAAK,iBAAiB,KAAA;CACxB;CAEA,sBAAoC;EAClC,IAAI,KAAK,aACP;EAGF,KAAK,cAAc;EACnB,MAAM,WAAW,KAAK;EACtB,KAAK,iBAAiB,CAAC;EACvB,KAAK,MAAM,WAAW,UACpB,KAAK,OAAO,YAAY,OAAO;CAEnC;CAEA,aAAqB,MAAc,SAAiB,QAAqE;EACvH,OAAO,iBAAiB;GACtB,MAAM,QAAQ,yBAAyB,MAAM,SAAS,IAAI;GAC1D,OAAO,KAAK;GACZ,KAAK,UAAU,KAAK;EACtB,GAAG,kBAAkB;CACvB;CAEA,mBAAiC;EAC/B,IAAI,KAAK,gBAAgB,KAAA,GAAW;GAClC,aAAa,KAAK,WAAW;GAC7B,KAAK,cAAc,KAAA;EACrB;CACF;CAEA,oBAAkC;EAChC,IAAI,KAAK,iBAAiB,KAAA,GAAW;GACnC,aAAa,KAAK,YAAY;GAC9B,KAAK,eAAe,KAAA;EACtB;CACF;CAEA,sBAAoC;EAClC,IAAI,KAAK,mBAAmB,KAAA,GAAW;GACrC,aAAa,KAAK,cAAc;GAChC,KAAK,iBAAiB,KAAA;EACxB;CACF;AACF;AAEA,SAAgB,oBAAoB,SAAoD;CACtF,MAAM,MAAM,QAAQ,QAAQ,cAAc,KAAA,IAAY,IAAI,IAAI,8BAA8B,OAAO,KAAK,GAAG,IAAI,QAAQ,QAAQ;CAE/H,OAAO,IAAI,OAAO,KAAK;EACrB,MAAM;EACN,MAAM;CACR,CAAC;AACH;AAEA,SAAS,yBAAyB,MAAc,SAAiB,UAAmB,OAA8B;CAChH,OAAO,UAAU,KAAA,IAAY;EAAE,MAAM;EAAW;EAAM;EAAS;CAAS,IAAI;EAAE,MAAM;EAAW;EAAM;EAAS;EAAU;CAAM;AAChI"}
@@ -1,18 +1,5 @@
1
1
  import { NormalizedNetworkOptions, NormalizedRivmuxPlayerOptions, PlayerError, WorkerCommand, WorkerMessage } from "@rivmux/protocol";
2
2
 
3
- //#region src/fixtures/m1-static-fmp4.d.ts
4
- type M1StaticFmp4Fixture = {
5
- mimeType: string;
6
- codec: string;
7
- width: number;
8
- height: number;
9
- duration: number;
10
- initSegment: ArrayBuffer;
11
- mediaSegment: ArrayBuffer;
12
- };
13
- declare const M1_VIDEO_MIME = "video/mp4; codecs=\"avc1.42C01E\"";
14
- declare function createM1StaticFmp4Fixture(): M1StaticFmp4Fixture;
15
- //#endregion
16
3
  //#region src/latency/buffer-ranges.d.ts
17
4
  type BufferedRange = {
18
5
  start: number;
@@ -56,7 +43,7 @@ type CoreError = {
56
43
  message: string;
57
44
  };
58
45
  type CoreProbeResult = {
59
- container: 'flv' | 'mpegTs';
46
+ container: 'flv' | 'mpegts';
60
47
  video?: 'avc' | 'hevc' | 'av1';
61
48
  audio?: 'aac' | 'mp3' | 'ac3' | 'eac3' | 'opus';
62
49
  };
@@ -149,6 +136,9 @@ declare class WasmTransmuxCoreHost implements TransmuxCoreHost {
149
136
  declare function normalizeCoreEvents(value: unknown): CoreEvent[];
150
137
  //#endregion
151
138
  //#region src/runtime.d.ts
139
+ type RuntimeMseCleanupOptions = {
140
+ force?: boolean;
141
+ };
152
142
  type RuntimeWorkerPort = {
153
143
  postMessage(message: WorkerMessage, transfer?: Transferable[]): void;
154
144
  close(): void;
@@ -164,20 +154,20 @@ type RuntimeMseController = {
164
154
  readonly bufferedRanges: BufferedRange[];
165
155
  readonly bufferedRangeCount: number;
166
156
  createMediaSourceHandle(): Promise<MediaSourceHandle>;
167
- appendFixture(fixture: ReturnType<typeof createM1StaticFmp4Fixture>): Promise<void>;
168
157
  appendInitSegment(segment: Extract<CoreEvent, {
169
158
  type: 'initSegment';
170
159
  }>['data']): Promise<void>;
171
160
  appendMediaSegment(segment: Extract<CoreEvent, {
172
161
  type: 'mediaSegment';
173
162
  }>['data']): Promise<void>;
174
- cleanupBefore(cutoff: number): Promise<void>;
163
+ cleanupBefore(cutoff: number, options?: RuntimeMseCleanupOptions): Promise<void>;
175
164
  destroy(): void;
176
165
  };
177
166
  type RuntimeWorkerDependencies = {
178
167
  createMseController?: () => RuntimeMseController;
179
168
  createLoader?: (config: StreamLoaderConfig) => StreamLoader;
180
169
  createTransmuxCore?: (options: NormalizedRivmuxPlayerOptions) => TransmuxCoreHost | undefined | Promise<TransmuxCoreHost | undefined>;
170
+ detectRuntime?: () => PlayerError | undefined;
181
171
  now?: () => number;
182
172
  };
183
173
  declare class RuntimeWorker {
@@ -185,6 +175,7 @@ declare class RuntimeWorker {
185
175
  private readonly createMseController;
186
176
  private readonly createLoader;
187
177
  private readonly createTransmuxCore;
178
+ private readonly detectRuntime;
188
179
  private readonly now;
189
180
  private state;
190
181
  private url?;
@@ -216,11 +207,15 @@ declare class RuntimeWorker {
216
207
  private processTransmuxEvents;
217
208
  private collectMseStats;
218
209
  private appendToMse;
210
+ private retryAppendAfterQuotaCleanup;
211
+ private quotaCleanupCutoff;
219
212
  private applyLatencyPolicy;
220
213
  private startStatsTimer;
221
214
  private stopStatsTimer;
222
215
  private emitStatsTick;
223
216
  private fail;
217
+ private failWithError;
218
+ private enterFatalErrorState;
224
219
  private post;
225
220
  }
226
221
  //#endregion
@@ -274,16 +269,18 @@ declare class MseController {
274
269
  get bufferedRanges(): BufferedRange[];
275
270
  get bufferedRangeCount(): number;
276
271
  createMediaSourceHandle(): Promise<MediaSourceHandle>;
277
- appendFixture(fixture: M1StaticFmp4Fixture): Promise<void>;
278
272
  appendInitSegment(segment: CoreInitSegment): Promise<void>;
279
273
  appendMediaSegment(segment: CoreMediaSegment): Promise<void>;
280
- cleanupBefore(cutoff: number): Promise<void>;
274
+ cleanupBefore(cutoff: number, options?: MseCleanupOptions): Promise<void>;
281
275
  reset(): void;
282
276
  destroy(): void;
283
277
  private get primaryQueue();
284
278
  private requireMediaSource;
285
279
  private ensureQueue;
286
280
  }
281
+ type MseCleanupOptions = {
282
+ force?: boolean;
283
+ };
287
284
  //#endregion
288
285
  //#region src/mse/source-buffer-queue.d.ts
289
286
  declare class SourceBufferQueue {
@@ -313,7 +310,7 @@ declare class SourceBufferQueue {
313
310
  declare function isMseSupported(mimeType: string): boolean;
314
311
  //#endregion
315
312
  //#region src/wasm/wasm-loader.d.ts
316
- declare function createWasmTransmuxCoreHost(Core: TransmuxCoreWasmConstructor | undefined): TransmuxCoreHost | undefined;
313
+ declare function createWasmTransmuxCoreHost(Core: TransmuxCoreWasmConstructor | undefined): TransmuxCoreHost;
317
314
  //#endregion
318
315
  //#region src/worker-entry.d.ts
319
316
  type DedicatedWorkerScopeLike = {
@@ -323,5 +320,5 @@ type DedicatedWorkerScopeLike = {
323
320
  };
324
321
  declare function startRuntimeWorker(scope: DedicatedWorkerScopeLike): RuntimeWorker;
325
322
  //#endregion
326
- export { type CoreEvent, HttpFlvLoader, HttpFlvLoaderError, M1_VIDEO_MIME, MseController, RuntimeWorker, SourceBufferQueue, type StreamChunk, type StreamLoader, type StreamLoaderConfig, type StreamLoaderStats, type TransmuxCoreHost, type TransmuxCoreWasmConstructor, WasmTransmuxCoreHost, createM1StaticFmp4Fixture, createWasmTransmuxCoreHost, isMseSupported, normalizeCoreEvents, startRuntimeWorker };
323
+ export { type CoreEvent, HttpFlvLoader, HttpFlvLoaderError, MseController, RuntimeWorker, SourceBufferQueue, type StreamChunk, type StreamLoader, type StreamLoaderConfig, type StreamLoaderStats, type TransmuxCoreHost, type TransmuxCoreWasmConstructor, WasmTransmuxCoreHost, createWasmTransmuxCoreHost, isMseSupported, normalizeCoreEvents, startRuntimeWorker };
327
324
  //# sourceMappingURL=rivmux-runtime-worker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rivmux-runtime-worker.d.ts","names":[],"sources":["../src/fixtures/m1-static-fmp4.ts","../src/latency/buffer-ranges.ts","../src/loader/loader.ts","../src/wasm/rivmux-transmux-wasm.ts","../src/runtime.ts","../src/loader/http-flv-loader.ts","../src/mse/mse-controller.ts","../src/mse/source-buffer-queue.ts","../src/mse/mime.ts","../src/wasm/wasm-loader.ts","../src/worker-entry.ts"],"mappings":"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"}
1
+ {"version":3,"file":"rivmux-runtime-worker.d.ts","names":[],"sources":["../src/latency/buffer-ranges.ts","../src/loader/loader.ts","../src/wasm/rivmux-transmux-wasm.ts","../src/runtime.ts","../src/loader/http-flv-loader.ts","../src/mse/mse-controller.ts","../src/mse/source-buffer-queue.ts","../src/mse/mime.ts","../src/wasm/wasm-loader.ts","../src/worker-entry.ts"],"mappings":"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"}