mediabunny 1.25.2 → 1.25.3
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/bundles/mediabunny.cjs +29 -40
- package/dist/bundles/mediabunny.min.cjs +6 -6
- package/dist/bundles/mediabunny.min.mjs +7 -7
- package/dist/bundles/mediabunny.mjs +29 -40
- package/dist/mediabunny.d.ts +6 -3
- package/dist/modules/src/misc.d.ts +1 -1
- package/dist/modules/src/misc.d.ts.map +1 -1
- package/dist/modules/src/misc.js +6 -6
- package/dist/modules/src/sample.d.ts.map +1 -1
- package/dist/modules/src/sample.js +3 -1
- package/dist/modules/src/source.d.ts +5 -2
- package/dist/modules/src/source.d.ts.map +1 -1
- package/dist/modules/src/source.js +26 -30
- package/dist/modules/src/target.d.ts +1 -1
- package/dist/modules/src/target.d.ts.map +1 -1
- package/dist/modules/src/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/isobmff/isobmff-boxes.ts +1 -1
- package/src/misc.ts +7 -7
- package/src/sample.ts +3 -1
- package/src/source.ts +32 -39
- package/src/target.ts +1 -1
- package/src/writer.ts +2 -2
|
@@ -262,19 +262,19 @@ var Mediabunny = (() => {
|
|
|
262
262
|
var toUint8Array = (source) => {
|
|
263
263
|
if (source.constructor === Uint8Array) {
|
|
264
264
|
return source;
|
|
265
|
-
} else if (source
|
|
266
|
-
return new Uint8Array(source);
|
|
267
|
-
} else {
|
|
265
|
+
} else if (ArrayBuffer.isView(source)) {
|
|
268
266
|
return new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
|
|
267
|
+
} else {
|
|
268
|
+
return new Uint8Array(source);
|
|
269
269
|
}
|
|
270
270
|
};
|
|
271
271
|
var toDataView = (source) => {
|
|
272
272
|
if (source.constructor === DataView) {
|
|
273
273
|
return source;
|
|
274
|
-
} else if (source
|
|
275
|
-
return new DataView(source);
|
|
276
|
-
} else {
|
|
274
|
+
} else if (ArrayBuffer.isView(source)) {
|
|
277
275
|
return new DataView(source.buffer, source.byteOffset, source.byteLength);
|
|
276
|
+
} else {
|
|
277
|
+
return new DataView(source);
|
|
278
278
|
}
|
|
279
279
|
};
|
|
280
280
|
var textDecoder = /* @__PURE__ */ new TextDecoder();
|
|
@@ -4516,7 +4516,8 @@ var Mediabunny = (() => {
|
|
|
4516
4516
|
numberOfFrames: this.numberOfFrames,
|
|
4517
4517
|
numberOfChannels: this.numberOfChannels,
|
|
4518
4518
|
timestamp: this.microsecondTimestamp,
|
|
4519
|
-
data: this._data
|
|
4519
|
+
data: this._data.buffer instanceof ArrayBuffer ? this._data.buffer : this._data.slice()
|
|
4520
|
+
// In the case of SharedArrayBuffer, convert to ArrayBuffer
|
|
4520
4521
|
});
|
|
4521
4522
|
}
|
|
4522
4523
|
}
|
|
@@ -15241,10 +15242,13 @@ var Mediabunny = (() => {
|
|
|
15241
15242
|
}
|
|
15242
15243
|
};
|
|
15243
15244
|
var BufferSource = class extends Source {
|
|
15244
|
-
/**
|
|
15245
|
+
/**
|
|
15246
|
+
* Creates a new {@link BufferSource} backed by the specified `ArrayBuffer`, `SharedArrayBuffer`,
|
|
15247
|
+
* or `ArrayBufferView`.
|
|
15248
|
+
*/
|
|
15245
15249
|
constructor(buffer) {
|
|
15246
|
-
if (!(buffer instanceof ArrayBuffer) && !ArrayBuffer.isView(buffer)) {
|
|
15247
|
-
throw new TypeError("buffer must be an ArrayBuffer or ArrayBufferView.");
|
|
15250
|
+
if (!(buffer instanceof ArrayBuffer) && !(typeof SharedArrayBuffer !== "undefined" && buffer instanceof SharedArrayBuffer) && !ArrayBuffer.isView(buffer)) {
|
|
15251
|
+
throw new TypeError("buffer must be an ArrayBuffer, SharedArrayBuffer, or ArrayBufferView.");
|
|
15248
15252
|
}
|
|
15249
15253
|
super();
|
|
15250
15254
|
/** @internal */
|
|
@@ -15325,10 +15329,7 @@ var Mediabunny = (() => {
|
|
|
15325
15329
|
const { done, value } = await reader.read();
|
|
15326
15330
|
if (done) {
|
|
15327
15331
|
this._orchestrator.forgetWorker(worker);
|
|
15328
|
-
|
|
15329
|
-
throw new Error("Blob reader stopped unexpectedly before all requested data was read.");
|
|
15330
|
-
}
|
|
15331
|
-
break;
|
|
15332
|
+
throw new Error("Blob reader stopped unexpectedly before all requested data was read.");
|
|
15332
15333
|
}
|
|
15333
15334
|
if (worker.aborted) {
|
|
15334
15335
|
break;
|
|
@@ -15431,7 +15432,7 @@ var Mediabunny = (() => {
|
|
|
15431
15432
|
let worker;
|
|
15432
15433
|
let fileSize;
|
|
15433
15434
|
if (response.status === 206) {
|
|
15434
|
-
fileSize = this.
|
|
15435
|
+
fileSize = this._getTotalLengthFromRangeResponse(response);
|
|
15435
15436
|
worker = this._orchestrator.createWorker(0, Math.min(fileSize, URL_SOURCE_MIN_LOAD_AMOUNT));
|
|
15436
15437
|
} else {
|
|
15437
15438
|
const contentLength = response.headers.get("Content-Length");
|
|
@@ -15486,13 +15487,6 @@ var Mediabunny = (() => {
|
|
|
15486
15487
|
"HTTP server did not respond with 206 Partial Content to a range request. To enable efficient media file streaming across a network, please make sure your server supports range requests."
|
|
15487
15488
|
);
|
|
15488
15489
|
}
|
|
15489
|
-
const length = this._getPartialLengthFromRangeResponse(response);
|
|
15490
|
-
const required = worker.targetPos - worker.currentPos;
|
|
15491
|
-
if (length < required) {
|
|
15492
|
-
throw new Error(
|
|
15493
|
-
`HTTP response unexpectedly too short: Needed at least ${required} bytes, got only ${length}.`
|
|
15494
|
-
);
|
|
15495
|
-
}
|
|
15496
15490
|
if (!response.body) {
|
|
15497
15491
|
throw new Error(
|
|
15498
15492
|
"Missing HTTP response body stream. The used fetch function must provide the response body as a ReadableStream."
|
|
@@ -15526,14 +15520,12 @@ var Mediabunny = (() => {
|
|
|
15526
15520
|
}
|
|
15527
15521
|
const { done, value } = readResult;
|
|
15528
15522
|
if (done) {
|
|
15529
|
-
|
|
15530
|
-
|
|
15531
|
-
|
|
15532
|
-
|
|
15533
|
-
);
|
|
15523
|
+
if (worker.currentPos >= worker.targetPos) {
|
|
15524
|
+
this._orchestrator.forgetWorker(worker);
|
|
15525
|
+
worker.running = false;
|
|
15526
|
+
return;
|
|
15534
15527
|
}
|
|
15535
|
-
|
|
15536
|
-
return;
|
|
15528
|
+
break;
|
|
15537
15529
|
}
|
|
15538
15530
|
this.onread?.(worker.currentPos, worker.currentPos + value.length);
|
|
15539
15531
|
this._orchestrator.supplyWorkerData(worker, value);
|
|
@@ -15545,24 +15537,21 @@ var Mediabunny = (() => {
|
|
|
15545
15537
|
worker.running = false;
|
|
15546
15538
|
}
|
|
15547
15539
|
/** @internal */
|
|
15548
|
-
|
|
15540
|
+
_getTotalLengthFromRangeResponse(response) {
|
|
15549
15541
|
const contentRange = response.headers.get("Content-Range");
|
|
15550
15542
|
if (contentRange) {
|
|
15551
15543
|
const match = /\/(\d+)/.exec(contentRange);
|
|
15552
15544
|
if (match) {
|
|
15553
15545
|
return Number(match[1]);
|
|
15554
|
-
} else {
|
|
15555
|
-
throw new Error(`Invalid Content-Range header: ${contentRange}`);
|
|
15556
15546
|
}
|
|
15547
|
+
}
|
|
15548
|
+
const contentLength = response.headers.get("Content-Length");
|
|
15549
|
+
if (contentLength) {
|
|
15550
|
+
return Number(contentLength);
|
|
15557
15551
|
} else {
|
|
15558
|
-
|
|
15559
|
-
|
|
15560
|
-
|
|
15561
|
-
} else {
|
|
15562
|
-
throw new Error(
|
|
15563
|
-
"Partial HTTP response (status 206) must surface either Content-Range or Content-Length header."
|
|
15564
|
-
);
|
|
15565
|
-
}
|
|
15552
|
+
throw new Error(
|
|
15553
|
+
"Partial HTTP response (status 206) must surface either Content-Range or Content-Length header."
|
|
15554
|
+
);
|
|
15566
15555
|
}
|
|
15567
15556
|
}
|
|
15568
15557
|
/** @internal */
|