rx-player 4.2.0 → 4.2.1-dev.2024102300
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/CHANGELOG.md +11 -0
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
- package/dist/commonjs/core/main/worker/worker_main.js +2 -1
- package/dist/commonjs/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.d.ts → audio_video_segment_sink.d.ts} +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_sink.d.ts.map +1 -0
- package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.d.ts +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.d.ts.map +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.js +2 -2
- package/dist/commonjs/core/segment_sinks/implementations/text/index.d.ts +2 -2
- package/dist/commonjs/core/segment_sinks/implementations/text/index.d.ts.map +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/text/index.js +2 -2
- package/dist/commonjs/core/segment_sinks/implementations/text/{text_segment_buffer.d.ts → text_segment_sink.d.ts} +1 -1
- package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -0
- package/dist/commonjs/core/segment_sinks/index.d.ts +1 -1
- package/dist/commonjs/core/segment_sinks/index.d.ts.map +1 -1
- package/dist/commonjs/core/segment_sinks/index.js +2 -2
- package/dist/{es2017/core/segment_sinks/segment_buffers_store.d.ts → commonjs/core/segment_sinks/segment_sinks_store.d.ts} +4 -3
- package/dist/commonjs/core/segment_sinks/segment_sinks_store.d.ts.map +1 -0
- package/dist/commonjs/core/segment_sinks/{segment_buffers_store.js → segment_sinks_store.js} +38 -3
- package/dist/commonjs/main_thread/api/debug/buffer_graph.d.ts +1 -1
- package/dist/commonjs/main_thread/api/debug/buffer_graph.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +28 -2
- package/dist/commonjs/main_thread/api/public_api.d.ts +1 -1
- package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +21 -2
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +62 -55
- package/dist/commonjs/main_thread/init/types.d.ts +1 -1
- package/dist/commonjs/main_thread/init/types.d.ts.map +1 -1
- package/dist/commonjs/mse/main_media_source_interface.d.ts +2 -0
- package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
- package/dist/commonjs/mse/main_media_source_interface.js +80 -79
- package/dist/commonjs/multithread_types.d.ts +1 -1
- package/dist/commonjs/multithread_types.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
- package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
- package/dist/es2017/core/main/worker/worker_main.js +2 -1
- package/dist/es2017/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.d.ts → audio_video_segment_sink.d.ts} +1 -1
- package/dist/es2017/core/segment_sinks/implementations/audio_video/audio_video_segment_sink.d.ts.map +1 -0
- package/dist/es2017/core/segment_sinks/implementations/audio_video/index.d.ts +1 -1
- package/dist/es2017/core/segment_sinks/implementations/audio_video/index.d.ts.map +1 -1
- package/dist/es2017/core/segment_sinks/implementations/audio_video/index.js +1 -1
- package/dist/es2017/core/segment_sinks/implementations/text/index.d.ts +2 -2
- package/dist/es2017/core/segment_sinks/implementations/text/index.d.ts.map +1 -1
- package/dist/es2017/core/segment_sinks/implementations/text/index.js +1 -1
- package/dist/es2017/core/segment_sinks/implementations/text/{text_segment_buffer.d.ts → text_segment_sink.d.ts} +1 -1
- package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -0
- package/dist/es2017/core/segment_sinks/index.d.ts +1 -1
- package/dist/es2017/core/segment_sinks/index.d.ts.map +1 -1
- package/dist/es2017/core/segment_sinks/index.js +1 -1
- package/dist/{commonjs/core/segment_sinks/segment_buffers_store.d.ts → es2017/core/segment_sinks/segment_sinks_store.d.ts} +4 -3
- package/dist/es2017/core/segment_sinks/segment_sinks_store.d.ts.map +1 -0
- package/dist/es2017/core/segment_sinks/{segment_buffers_store.js → segment_sinks_store.js} +15 -2
- package/dist/es2017/main_thread/api/debug/buffer_graph.d.ts +1 -1
- package/dist/es2017/main_thread/api/debug/buffer_graph.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.js +28 -2
- package/dist/es2017/main_thread/api/public_api.d.ts +1 -1
- package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +21 -2
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +58 -52
- package/dist/es2017/main_thread/init/types.d.ts +1 -1
- package/dist/es2017/main_thread/init/types.d.ts.map +1 -1
- package/dist/es2017/mse/main_media_source_interface.d.ts +2 -0
- package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
- package/dist/es2017/mse/main_media_source_interface.js +48 -46
- package/dist/es2017/multithread_types.d.ts +1 -1
- package/dist/es2017/multithread_types.d.ts.map +1 -1
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +127 -92
- package/dist/rx-player.min.js +8 -8
- package/dist/worker.js +4 -4
- package/package.json +1 -1
- package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
- package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
- package/src/core/main/worker/worker_main.ts +2 -1
- package/src/core/segment_sinks/implementations/audio_video/index.ts +1 -1
- package/src/core/segment_sinks/implementations/text/index.ts +2 -2
- package/src/core/segment_sinks/index.ts +1 -1
- package/src/core/segment_sinks/{segment_buffers_store.ts → segment_sinks_store.ts} +20 -8
- package/src/main_thread/api/debug/buffer_graph.ts +1 -1
- package/src/main_thread/api/debug/modules/segment_buffer_content.ts +26 -3
- package/src/main_thread/api/public_api.ts +3 -3
- package/src/main_thread/init/media_source_content_initializer.ts +75 -67
- package/src/main_thread/init/multi_thread_content_initializer.ts +1 -1
- package/src/main_thread/init/types.ts +1 -1
- package/src/mse/main_media_source_interface.ts +49 -46
- package/src/multithread_types.ts +1 -1
- package/.vscode/settings.json +0 -9
- package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.d.ts.map +0 -1
- package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_buffer.d.ts.map +0 -1
- package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts.map +0 -1
- package/dist/es2017/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.d.ts.map +0 -1
- package/dist/es2017/core/segment_sinks/implementations/text/text_segment_buffer.d.ts.map +0 -1
- package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +0 -1
- /package/dist/commonjs/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.js → audio_video_segment_sink.js} +0 -0
- /package/dist/commonjs/core/segment_sinks/implementations/text/{text_segment_buffer.js → text_segment_sink.js} +0 -0
- /package/dist/es2017/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.js → audio_video_segment_sink.js} +0 -0
- /package/dist/es2017/core/segment_sinks/implementations/text/{text_segment_buffer.js → text_segment_sink.js} +0 -0
- /package/src/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.ts → audio_video_segment_sink.ts} +0 -0
- /package/src/core/segment_sinks/implementations/text/{text_segment_buffer.ts → text_segment_sink.ts} +0 -0
|
@@ -19,6 +19,7 @@ import type { IPlayerError, ITrackType } from "../../../public_types";
|
|
|
19
19
|
import createDashPipelines from "../../../transports/dash";
|
|
20
20
|
import arrayFind from "../../../utils/array_find";
|
|
21
21
|
import assert, { assertUnreachable } from "../../../utils/assert";
|
|
22
|
+
import globalScope from "../../../utils/global_scope";
|
|
22
23
|
import type { ILogFormat, ILoggerLevel } from "../../../utils/logger";
|
|
23
24
|
import { scaleTimestamp } from "../../../utils/monotonic_timestamp";
|
|
24
25
|
import objectAssign from "../../../utils/object_assign";
|
|
@@ -80,7 +81,7 @@ export default function initializeWorkerMain() {
|
|
|
80
81
|
*/
|
|
81
82
|
let playbackObservationRef: SharedReference<IWorkerPlaybackObservation> | null = null;
|
|
82
83
|
|
|
83
|
-
onmessageerror = (_msg: MessageEvent) => {
|
|
84
|
+
globalScope.onmessageerror = (_msg: MessageEvent) => {
|
|
84
85
|
log.error("MTCI: Error when receiving message from main thread.");
|
|
85
86
|
};
|
|
86
87
|
onmessage = function (e: MessageEvent<IMainThreadMessage>) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ITextDisplayerInterface } from "./
|
|
2
|
-
import TextSegmentSink from "./
|
|
1
|
+
import type { ITextDisplayerInterface } from "./text_segment_sink";
|
|
2
|
+
import TextSegmentSink from "./text_segment_sink";
|
|
3
3
|
|
|
4
4
|
export default TextSegmentSink;
|
|
5
5
|
export type { ITextDisplayerInterface };
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
getFirstSegmentAfterPeriod,
|
|
39
39
|
getLastSegmentBeforePeriod,
|
|
40
40
|
} from "./inventory";
|
|
41
|
-
import SegmentSinksStore from "./
|
|
41
|
+
import SegmentSinksStore from "./segment_sinks_store";
|
|
42
42
|
|
|
43
43
|
export default SegmentSinksStore;
|
|
44
44
|
export type {
|
|
@@ -55,8 +55,9 @@ export interface ISegmentSinkMetrics {
|
|
|
55
55
|
|
|
56
56
|
interface ISegmentSinkMetricForType {
|
|
57
57
|
bufferType: IBufferType;
|
|
58
|
-
codec
|
|
59
|
-
|
|
58
|
+
codec?: string | undefined;
|
|
59
|
+
sizeEstimate?: number | undefined;
|
|
60
|
+
segmentInventory?: IBufferedChunkSnapshot[] | undefined;
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
/**
|
|
@@ -385,15 +386,26 @@ export default class SegmentSinksStore {
|
|
|
385
386
|
private createSegmentSinkMetricsForType(
|
|
386
387
|
bufferType: IBufferType,
|
|
387
388
|
): ISegmentSinkMetricForType {
|
|
389
|
+
const inventory = this._initializedSegmentSinks[bufferType]?.getLastKnownInventory();
|
|
390
|
+
let sizeEstimate: number | undefined;
|
|
391
|
+
if (inventory !== undefined) {
|
|
392
|
+
sizeEstimate = 0;
|
|
393
|
+
for (const item of inventory) {
|
|
394
|
+
if (item.chunkSize === undefined || sizeEstimate === undefined) {
|
|
395
|
+
sizeEstimate = undefined;
|
|
396
|
+
break;
|
|
397
|
+
}
|
|
398
|
+
sizeEstimate += item.chunkSize;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
388
401
|
return {
|
|
389
402
|
bufferType,
|
|
403
|
+
sizeEstimate,
|
|
390
404
|
codec: this._initializedSegmentSinks[bufferType]?.codec,
|
|
391
|
-
segmentInventory:
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
infos: getChunkContextSnapshot(chunk.infos),
|
|
396
|
-
})),
|
|
405
|
+
segmentInventory: inventory?.map((chunk) => ({
|
|
406
|
+
...chunk,
|
|
407
|
+
infos: getChunkContextSnapshot(chunk.infos),
|
|
408
|
+
})),
|
|
397
409
|
};
|
|
398
410
|
}
|
|
399
411
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IBufferedChunkSnapshot } from "../../../core/segment_sinks/
|
|
1
|
+
import type { IBufferedChunkSnapshot } from "../../../core/segment_sinks/segment_sinks_store";
|
|
2
2
|
import type { IRepresentationMetadata } from "../../../manifest";
|
|
3
3
|
|
|
4
4
|
const BUFFER_WIDTH_IN_SECONDS = 30 * 60;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ISegmentSinkMetrics } from "../../../../core/segment_sinks/
|
|
1
|
+
import type { ISegmentSinkMetrics } from "../../../../core/segment_sinks/segment_sinks_store";
|
|
2
2
|
import type { IBufferType } from "../../../../core/types";
|
|
3
3
|
import type {
|
|
4
4
|
IAdaptationMetadata,
|
|
@@ -28,6 +28,7 @@ export default function createSegmentSinkGraph(
|
|
|
28
28
|
const bufferGraphWrapper = createElement("div");
|
|
29
29
|
const bufferTitle = createMetricTitle(title);
|
|
30
30
|
const canvasElt = createGraphCanvas();
|
|
31
|
+
const bufferSizeElt = document.createElement("span");
|
|
31
32
|
const currentRangeRepInfoElt = createElement("div");
|
|
32
33
|
const loadingRangeRepInfoElt = createElement("div");
|
|
33
34
|
const bufferGraph = new SegmentSinkGraph(canvasElt);
|
|
@@ -48,8 +49,11 @@ export default function createSegmentSinkGraph(
|
|
|
48
49
|
|
|
49
50
|
bufferGraphWrapper.appendChild(bufferTitle);
|
|
50
51
|
bufferGraphWrapper.appendChild(canvasElt);
|
|
52
|
+
bufferGraphWrapper.appendChild(bufferSizeElt);
|
|
51
53
|
bufferGraphWrapper.appendChild(currentRangeRepInfoElt);
|
|
52
54
|
bufferGraphWrapper.appendChild(loadingRangeRepInfoElt);
|
|
55
|
+
bufferSizeElt.style.marginLeft = "5px";
|
|
56
|
+
bufferSizeElt.style.fontSize = "0.9em";
|
|
53
57
|
bufferGraphWrapper.style.padding = "5px 0px";
|
|
54
58
|
update();
|
|
55
59
|
return bufferGraphWrapper;
|
|
@@ -75,13 +79,29 @@ export default function createSegmentSinkGraph(
|
|
|
75
79
|
|
|
76
80
|
function updateBufferMetrics() {
|
|
77
81
|
const showAllInfo = isExtendedMode(parentElt);
|
|
78
|
-
const
|
|
82
|
+
const metricsForType = bufferMetrics?.segmentSinks[bufferType];
|
|
83
|
+
const inventory = metricsForType?.segmentInventory;
|
|
79
84
|
if (bufferMetrics === null || inventory === undefined) {
|
|
80
85
|
bufferGraphWrapper.style.display = "none";
|
|
86
|
+
bufferSizeElt.innerHTML = "";
|
|
81
87
|
currentRangeRepInfoElt.innerHTML = "";
|
|
82
88
|
loadingRangeRepInfoElt.innerHTML = "";
|
|
83
89
|
} else {
|
|
84
90
|
bufferGraphWrapper.style.display = "block";
|
|
91
|
+
if (metricsForType?.sizeEstimate !== undefined) {
|
|
92
|
+
const sizeEstimate = metricsForType.sizeEstimate;
|
|
93
|
+
let sizeStr: string;
|
|
94
|
+
if (sizeEstimate > 2e6) {
|
|
95
|
+
sizeStr = (sizeEstimate / 1e6).toFixed(2) + "MB";
|
|
96
|
+
} else if (sizeEstimate > 2e3) {
|
|
97
|
+
sizeStr = (sizeEstimate / 1e3).toFixed(2) + "kB";
|
|
98
|
+
} else {
|
|
99
|
+
sizeStr = sizeEstimate + "B";
|
|
100
|
+
}
|
|
101
|
+
bufferSizeElt.innerHTML = sizeStr;
|
|
102
|
+
} else {
|
|
103
|
+
bufferSizeElt.innerHTML = "";
|
|
104
|
+
}
|
|
85
105
|
const currentTime = instance.getPosition();
|
|
86
106
|
const width = Math.min(parentElt.clientWidth - 150, 600);
|
|
87
107
|
bufferGraph.update({
|
|
@@ -155,7 +175,7 @@ function constructRepresentationInfo(content: {
|
|
|
155
175
|
isSignInterpreted,
|
|
156
176
|
type: bufferType,
|
|
157
177
|
} = content.adaptation;
|
|
158
|
-
const { id, height, width, bitrate, codecs } = content.representation;
|
|
178
|
+
const { id, height, width, bitrate, codecs, hdrInfo } = content.representation;
|
|
159
179
|
let representationInfo = `"${id}" `;
|
|
160
180
|
if (height !== undefined && width !== undefined) {
|
|
161
181
|
representationInfo += `${width}x${height} `;
|
|
@@ -169,6 +189,9 @@ function constructRepresentationInfo(content: {
|
|
|
169
189
|
if (language !== undefined) {
|
|
170
190
|
representationInfo += `l:"${language}" `;
|
|
171
191
|
}
|
|
192
|
+
if (bufferType === "video" && hdrInfo !== undefined) {
|
|
193
|
+
representationInfo += "hdr:1 ";
|
|
194
|
+
}
|
|
172
195
|
if (bufferType === "video" && typeof isSignInterpreted === "boolean") {
|
|
173
196
|
representationInfo += `si:${isSignInterpreted ? 1 : 0} `;
|
|
174
197
|
}
|
|
@@ -33,7 +33,7 @@ import hasMseInWorker from "../../compat/has_mse_in_worker";
|
|
|
33
33
|
import hasWorkerApi from "../../compat/has_worker_api";
|
|
34
34
|
import isDebugModeEnabled from "../../compat/is_debug_mode_enabled";
|
|
35
35
|
import config from "../../config";
|
|
36
|
-
import type { ISegmentSinkMetrics } from "../../core/segment_sinks/
|
|
36
|
+
import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_sinks_store";
|
|
37
37
|
import type {
|
|
38
38
|
IAdaptationChoice,
|
|
39
39
|
IInbandEvent,
|
|
@@ -411,7 +411,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
411
411
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
412
412
|
videoElement.preload = "auto";
|
|
413
413
|
|
|
414
|
-
this.version = /* PLAYER_VERSION */ "4.2.
|
|
414
|
+
this.version = /* PLAYER_VERSION */ "4.2.1-dev.2024102300";
|
|
415
415
|
this.log = log;
|
|
416
416
|
this.state = "STOPPED";
|
|
417
417
|
this.videoElement = videoElement;
|
|
@@ -3330,7 +3330,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
|
|
|
3330
3330
|
}
|
|
3331
3331
|
}
|
|
3332
3332
|
}
|
|
3333
|
-
Player.version = /* PLAYER_VERSION */ "4.2.
|
|
3333
|
+
Player.version = /* PLAYER_VERSION */ "4.2.1-dev.2024102300";
|
|
3334
3334
|
|
|
3335
3335
|
/** Every events sent by the RxPlayer's public API. */
|
|
3336
3336
|
interface IPublicAPIEvent {
|
|
@@ -204,7 +204,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
204
204
|
this._initCanceller.signal,
|
|
205
205
|
);
|
|
206
206
|
|
|
207
|
-
this.
|
|
207
|
+
this._setupInitialMediaSourceAndDecryption(mediaElement)
|
|
208
208
|
.then((initResult) =>
|
|
209
209
|
this._onInitialMediaSourceReady(
|
|
210
210
|
mediaElement,
|
|
@@ -230,6 +230,10 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
230
230
|
this._manifestFetcher.updateContentUrls(urls, refreshNow);
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Stop content and free all resources linked to this
|
|
235
|
+
* `MediaSourceContentInitializer`.
|
|
236
|
+
*/
|
|
233
237
|
public dispose(): void {
|
|
234
238
|
this._initCanceller.cancel();
|
|
235
239
|
}
|
|
@@ -252,7 +256,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
252
256
|
* @param {HTMLMediaElement|null} mediaElement
|
|
253
257
|
* @returns {Promise.<Object>}
|
|
254
258
|
*/
|
|
255
|
-
private
|
|
259
|
+
private _setupInitialMediaSourceAndDecryption(mediaElement: IMediaElement): Promise<{
|
|
256
260
|
mediaSource: MainMediaSourceInterface;
|
|
257
261
|
drmSystemId: string | undefined;
|
|
258
262
|
unlinkMediaSource: TaskCanceller;
|
|
@@ -452,80 +456,84 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
452
456
|
return;
|
|
453
457
|
}
|
|
454
458
|
|
|
455
|
-
const bufferOnMediaSource = this._startBufferingOnMediaSource.bind(this);
|
|
456
|
-
const triggerEvent = this.trigger.bind(this);
|
|
457
|
-
const onFatalError = this._onFatalError.bind(this);
|
|
458
|
-
|
|
459
459
|
// handle initial load and reloads
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
initialTime,
|
|
463
|
-
autoPlay,
|
|
464
|
-
initialMediaSourceCanceller,
|
|
465
|
-
);
|
|
466
|
-
|
|
467
|
-
/**
|
|
468
|
-
* Load the content defined by the Manifest in the mediaSource given at the
|
|
469
|
-
* given position and playing status.
|
|
470
|
-
* This function recursively re-call itself when a MediaSource reload is
|
|
471
|
-
* wanted.
|
|
472
|
-
* @param {MediaSource} mediaSource
|
|
473
|
-
* @param {number} startingPos
|
|
474
|
-
* @param {Object} currentCanceller
|
|
475
|
-
* @param {boolean} shouldPlay
|
|
476
|
-
*/
|
|
477
|
-
function recursivelyLoadOnMediaSource(
|
|
478
|
-
mediaSource: MainMediaSourceInterface,
|
|
479
|
-
startingPos: number,
|
|
480
|
-
shouldPlay: boolean,
|
|
481
|
-
currentCanceller: TaskCanceller,
|
|
482
|
-
): void {
|
|
483
|
-
const opts = {
|
|
460
|
+
this._setupContentWithNewMediaSource(
|
|
461
|
+
{
|
|
484
462
|
mediaElement,
|
|
485
463
|
playbackObserver,
|
|
486
|
-
mediaSource,
|
|
487
|
-
initialTime
|
|
488
|
-
autoPlay
|
|
464
|
+
mediaSource: initialMediaSource,
|
|
465
|
+
initialTime,
|
|
466
|
+
autoPlay,
|
|
489
467
|
manifest,
|
|
490
468
|
representationEstimator,
|
|
491
469
|
segmentQueueCreator,
|
|
492
470
|
speed,
|
|
493
471
|
bufferOptions: subBufferOptions,
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
position: number;
|
|
499
|
-
autoPlay: boolean;
|
|
500
|
-
}): void {
|
|
501
|
-
currentCanceller.cancel();
|
|
502
|
-
if (initCanceller.isUsed()) {
|
|
503
|
-
return;
|
|
504
|
-
}
|
|
505
|
-
triggerEvent("reloadingMediaSource", reloadOrder);
|
|
506
|
-
if (initCanceller.isUsed()) {
|
|
507
|
-
return;
|
|
508
|
-
}
|
|
472
|
+
},
|
|
473
|
+
initialMediaSourceCanceller,
|
|
474
|
+
);
|
|
475
|
+
}
|
|
509
476
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
477
|
+
/**
|
|
478
|
+
* Load the content defined by the Manifest in the mediaSource given at the
|
|
479
|
+
* given position and playing status.
|
|
480
|
+
* This function recursively re-call itself when a MediaSource reload is
|
|
481
|
+
* wanted.
|
|
482
|
+
* @param {Object} args
|
|
483
|
+
* @param {Object} currentCanceller
|
|
484
|
+
*/
|
|
485
|
+
private _setupContentWithNewMediaSource(
|
|
486
|
+
args: IBufferingMediaSettings,
|
|
487
|
+
currentCanceller: TaskCanceller,
|
|
488
|
+
): void {
|
|
489
|
+
this._startLoadingContentOnMediaSource(
|
|
490
|
+
args,
|
|
491
|
+
this._createReloadMediaSourceCallback(args, currentCanceller),
|
|
492
|
+
currentCanceller.signal,
|
|
493
|
+
);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/**
|
|
497
|
+
* Create `IReloadMediaSourceCallback` allowing to handle reload orders.
|
|
498
|
+
* @param {Object} args
|
|
499
|
+
* @param {Object} currentCanceller
|
|
500
|
+
*/
|
|
501
|
+
private _createReloadMediaSourceCallback(
|
|
502
|
+
args: IBufferingMediaSettings,
|
|
503
|
+
currentCanceller: TaskCanceller,
|
|
504
|
+
): IReloadMediaSourceCallback {
|
|
505
|
+
const initCanceller = this._initCanceller;
|
|
506
|
+
return (reloadOrder: { position: number; autoPlay: boolean }): void => {
|
|
507
|
+
currentCanceller.cancel();
|
|
508
|
+
if (initCanceller.isUsed()) {
|
|
509
|
+
return;
|
|
527
510
|
}
|
|
528
|
-
|
|
511
|
+
this.trigger("reloadingMediaSource", reloadOrder);
|
|
512
|
+
if (initCanceller.isUsed()) {
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
const newCanceller = new TaskCanceller();
|
|
517
|
+
newCanceller.linkToSignal(initCanceller.signal);
|
|
518
|
+
createMediaSource(args.mediaElement, newCanceller.signal)
|
|
519
|
+
.then((newMediaSource) => {
|
|
520
|
+
this._setupContentWithNewMediaSource(
|
|
521
|
+
{
|
|
522
|
+
...args,
|
|
523
|
+
mediaSource: newMediaSource,
|
|
524
|
+
initialTime: reloadOrder.position,
|
|
525
|
+
autoPlay: reloadOrder.autoPlay,
|
|
526
|
+
},
|
|
527
|
+
newCanceller,
|
|
528
|
+
);
|
|
529
|
+
})
|
|
530
|
+
.catch((err) => {
|
|
531
|
+
if (newCanceller.isUsed()) {
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
this._onFatalError(err);
|
|
535
|
+
});
|
|
536
|
+
};
|
|
529
537
|
}
|
|
530
538
|
|
|
531
539
|
/**
|
|
@@ -534,7 +542,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
534
542
|
* @param {function} onReloadOrder
|
|
535
543
|
* @param {Object} cancelSignal
|
|
536
544
|
*/
|
|
537
|
-
private
|
|
545
|
+
private _startLoadingContentOnMediaSource(
|
|
538
546
|
args: IBufferingMediaSettings,
|
|
539
547
|
onReloadOrder: IReloadMediaSourceCallback,
|
|
540
548
|
cancelSignal: CancellationSignal,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IMediaElement } from "../../compat/browser_compatibility_types";
|
|
2
2
|
import mayMediaElementFailOnUndecipherableData from "../../compat/may_media_element_fail_on_undecipherable_data";
|
|
3
3
|
import shouldReloadMediaSourceOnDecipherabilityUpdate from "../../compat/should_reload_media_source_on_decipherability_update";
|
|
4
|
-
import type { ISegmentSinkMetrics } from "../../core/segment_sinks/
|
|
4
|
+
import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_sinks_store";
|
|
5
5
|
import type {
|
|
6
6
|
IAdaptiveRepresentationSelectorArguments,
|
|
7
7
|
IAdaptationChoice,
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type { IMediaElement } from "../../compat/browser_compatibility_types";
|
|
18
|
-
import type { ISegmentSinkMetrics } from "../../core/segment_sinks/
|
|
18
|
+
import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_sinks_store";
|
|
19
19
|
import type { IBufferType, IAdaptationChoice, IInbandEvent } from "../../core/types";
|
|
20
20
|
import type {
|
|
21
21
|
IPeriodsUpdateResult,
|
|
@@ -212,52 +212,8 @@ export class MainSourceBufferInterface implements ISourceBufferInterface {
|
|
|
212
212
|
this._operationQueue = [];
|
|
213
213
|
this._currentOperations = [];
|
|
214
214
|
|
|
215
|
-
const onError = (
|
|
216
|
-
|
|
217
|
-
if ((evt as unknown as Error) instanceof Error) {
|
|
218
|
-
error = evt as unknown as Error;
|
|
219
|
-
} else if ((evt as unknown as { error: Error }).error instanceof Error) {
|
|
220
|
-
error = (evt as unknown as { error: Error }).error;
|
|
221
|
-
} else {
|
|
222
|
-
error = new Error("Unknown SourceBuffer Error");
|
|
223
|
-
}
|
|
224
|
-
const currentOps = this._currentOperations;
|
|
225
|
-
this._currentOperations = [];
|
|
226
|
-
if (currentOps.length === 0) {
|
|
227
|
-
log.error("SBI: error for an unknown operation", error);
|
|
228
|
-
} else {
|
|
229
|
-
const rejected = new SourceBufferError(
|
|
230
|
-
error.name,
|
|
231
|
-
error.message,
|
|
232
|
-
error.name === "QuotaExceededError",
|
|
233
|
-
);
|
|
234
|
-
for (const op of currentOps) {
|
|
235
|
-
op.reject(rejected);
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
const onUpdateEnd = () => {
|
|
240
|
-
const currentOps = this._currentOperations;
|
|
241
|
-
this._currentOperations = [];
|
|
242
|
-
try {
|
|
243
|
-
for (const op of currentOps) {
|
|
244
|
-
op.resolve(convertToRanges(this._sourceBuffer.buffered));
|
|
245
|
-
}
|
|
246
|
-
} catch (err) {
|
|
247
|
-
for (const op of currentOps) {
|
|
248
|
-
if (err instanceof Error && err.name === "InvalidStateError") {
|
|
249
|
-
// Most likely the SourceBuffer just has been removed from the
|
|
250
|
-
// `MediaSource`.
|
|
251
|
-
// Just return an empty buffered range.
|
|
252
|
-
op.resolve([]);
|
|
253
|
-
} else {
|
|
254
|
-
op.reject(err);
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
this._performNextOperation();
|
|
259
|
-
};
|
|
260
|
-
|
|
215
|
+
const onError = this._onError.bind(this);
|
|
216
|
+
const onUpdateEnd = this._onUpdateEnd.bind(this);
|
|
261
217
|
sourceBuffer.addEventListener("updateend", onUpdateEnd);
|
|
262
218
|
sourceBuffer.addEventListener("error", onError);
|
|
263
219
|
this._canceller.signal.register(() => {
|
|
@@ -325,6 +281,53 @@ export class MainSourceBufferInterface implements ISourceBufferInterface {
|
|
|
325
281
|
this._emptyCurrentQueue();
|
|
326
282
|
}
|
|
327
283
|
|
|
284
|
+
private _onError(evt: Event) {
|
|
285
|
+
let error: Error;
|
|
286
|
+
if ((evt as unknown as Error) instanceof Error) {
|
|
287
|
+
error = evt as unknown as Error;
|
|
288
|
+
} else if ((evt as unknown as { error: Error }).error instanceof Error) {
|
|
289
|
+
error = (evt as unknown as { error: Error }).error;
|
|
290
|
+
} else {
|
|
291
|
+
error = new Error("Unknown SourceBuffer Error");
|
|
292
|
+
}
|
|
293
|
+
const currentOps = this._currentOperations;
|
|
294
|
+
this._currentOperations = [];
|
|
295
|
+
if (currentOps.length === 0) {
|
|
296
|
+
log.error("SBI: error for an unknown operation", error);
|
|
297
|
+
} else {
|
|
298
|
+
const rejected = new SourceBufferError(
|
|
299
|
+
error.name,
|
|
300
|
+
error.message,
|
|
301
|
+
error.name === "QuotaExceededError",
|
|
302
|
+
);
|
|
303
|
+
for (const op of currentOps) {
|
|
304
|
+
op.reject(rejected);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
private _onUpdateEnd() {
|
|
310
|
+
const currentOps = this._currentOperations;
|
|
311
|
+
this._currentOperations = [];
|
|
312
|
+
try {
|
|
313
|
+
for (const op of currentOps) {
|
|
314
|
+
op.resolve(convertToRanges(this._sourceBuffer.buffered));
|
|
315
|
+
}
|
|
316
|
+
} catch (err) {
|
|
317
|
+
for (const op of currentOps) {
|
|
318
|
+
if (err instanceof Error && err.name === "InvalidStateError") {
|
|
319
|
+
// Most likely the SourceBuffer just has been removed from the
|
|
320
|
+
// `MediaSource`.
|
|
321
|
+
// Just return an empty buffered range.
|
|
322
|
+
op.resolve([]);
|
|
323
|
+
} else {
|
|
324
|
+
op.reject(err);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
this._performNextOperation();
|
|
329
|
+
}
|
|
330
|
+
|
|
328
331
|
private _emptyCurrentQueue(): void {
|
|
329
332
|
const error = new CancellationError();
|
|
330
333
|
if (this._currentOperations.length > 0) {
|
package/src/multithread_types.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* multithread situation.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ISegmentSinkMetrics } from "./core/segment_sinks/
|
|
7
|
+
import type { ISegmentSinkMetrics } from "./core/segment_sinks/segment_sinks_store";
|
|
8
8
|
import type {
|
|
9
9
|
IResolutionInfo,
|
|
10
10
|
IManifestFetcherSettings,
|
package/.vscode/settings.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audio_video_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEf,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,WAAW;IAC5D,sCAAsC;IACtC,SAAgB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAE9C,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,wBAAwB,CAAgB;IAEhD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAA4B;IAEpD;;;;;OAKG;gBAED,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,qBAAqB;IAcpC,uBAAuB;IAChB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;IAK3E,uBAAuB;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwE1E,uBAAuB;IACV,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBxE;;;;;;;;OAQG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;;;OAIG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAI3D,uBAAuB;IAChB,OAAO,IAAI,IAAI;IAYtB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAc7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/text/text_segment_buffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;OAEG;gBACS,mBAAmB,EAAE,uBAAuB;IASxD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB1E;;;;;OAKG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;OAGG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIpD,OAAO,IAAI,IAAI;IAKtB,OAAO,CAAC,oBAAoB;CAc7B;AAED,uEAAuE;AACvE,MAAM,WAAW,4BAA4B;IAC3C,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAgCD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,YAAY,CACV,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,MAAM,CACJ,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAI9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,8BAA8B,CAAoB;IAE1D,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,SAAS,CAAU;IAE3B;;;OAGG;gBAED,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,uBAAuB,GAAG,IAAI;IASxD;;;;OAIG;IACI,cAAc,IAAI,WAAW,EAAE;IAQtC;;;;OAIG;IACI,oBAAoB,IAAI,WAAW,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,SAAS,CACd,UAAU,EAAE,WAAW,GAErB;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GACzB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAWxB;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF;;;;;;OAMG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAgBxD;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAwD7E;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAYxD;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,+BAA+B;IAehC,sBAAsB,IAAI,mBAAmB;CASrD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"audio_video_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEf,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,WAAW;IAC5D,sCAAsC;IACtC,SAAgB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAE9C,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,wBAAwB,CAAgB;IAEhD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAA4B;IAEpD;;;;;OAKG;gBAED,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,qBAAqB;IAcpC,uBAAuB;IAChB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;IAK3E,uBAAuB;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwE1E,uBAAuB;IACV,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBxE;;;;;;;;OAQG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;;;OAIG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAI3D,uBAAuB;IAChB,OAAO,IAAI,IAAI;IAYtB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAc7B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"text_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/text/text_segment_buffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;OAEG;gBACS,mBAAmB,EAAE,uBAAuB;IASxD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB1E;;;;;OAKG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;OAGG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIpD,OAAO,IAAI,IAAI;IAKtB,OAAO,CAAC,oBAAoB;CAc7B;AAED,uEAAuE;AACvE,MAAM,WAAW,4BAA4B;IAC3C,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAgCD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,YAAY,CACV,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,MAAM,CACJ,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAI9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,8BAA8B,CAAoB;IAE1D,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,SAAS,CAAU;IAE3B;;;OAGG;gBAED,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,uBAAuB,GAAG,IAAI;IASxD;;;;OAIG;IACI,cAAc,IAAI,WAAW,EAAE;IAQtC;;;;OAIG;IACI,oBAAoB,IAAI,WAAW,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,SAAS,CACd,UAAU,EAAE,WAAW,GAErB;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GACzB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAWxB;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF;;;;;;OAMG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAgBxD;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAwD7E;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAYxD;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,+BAA+B;IAehC,sBAAsB,IAAI,mBAAmB;CASrD"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/src/core/segment_sinks/implementations/text/{text_segment_buffer.ts → text_segment_sink.ts}
RENAMED
|
File without changes
|