mediabunny 1.5.0 → 1.6.1
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/README.md +7 -0
- package/dist/bundles/mediabunny.cjs +60 -31
- package/dist/bundles/mediabunny.min.cjs +3 -3
- package/dist/bundles/mediabunny.min.mjs +3 -3
- package/dist/bundles/mediabunny.mjs +60 -31
- package/dist/modules/shared/mp3-misc.d.ts.map +1 -0
- package/dist/modules/src/codec-data.d.ts.map +1 -0
- package/dist/modules/src/codec.d.ts.map +1 -0
- package/dist/modules/src/conversion.d.ts.map +1 -0
- package/dist/modules/{conversion.js → src/conversion.js} +1 -1
- package/dist/modules/src/custom-coder.d.ts.map +1 -0
- package/dist/modules/{custom-coder.js → src/custom-coder.js} +24 -4
- package/dist/modules/src/demuxer.d.ts.map +1 -0
- package/dist/modules/src/index.d.ts.map +1 -0
- package/dist/modules/src/input-format.d.ts.map +1 -0
- package/dist/modules/{input-format.js → src/input-format.js} +1 -1
- package/dist/modules/src/input-track.d.ts.map +1 -0
- package/dist/modules/src/input.d.ts.map +1 -0
- package/dist/modules/src/isobmff/isobmff-boxes.d.ts.map +1 -0
- package/dist/modules/src/isobmff/isobmff-demuxer.d.ts.map +1 -0
- package/dist/modules/src/isobmff/isobmff-misc.d.ts.map +1 -0
- package/dist/modules/src/isobmff/isobmff-muxer.d.ts.map +1 -0
- package/dist/modules/src/isobmff/isobmff-reader.d.ts.map +1 -0
- package/dist/modules/src/matroska/ebml.d.ts.map +1 -0
- package/dist/modules/src/matroska/matroska-demuxer.d.ts.map +1 -0
- package/dist/modules/src/matroska/matroska-misc.d.ts.map +1 -0
- package/dist/modules/src/matroska/matroska-muxer.d.ts.map +1 -0
- package/dist/modules/src/media-sink.d.ts.map +1 -0
- package/dist/modules/src/media-source.d.ts.map +1 -0
- package/dist/modules/{media-source.js → src/media-source.js} +32 -25
- package/dist/modules/src/misc.d.ts.map +1 -0
- package/dist/modules/{mp3 → src/mp3}/mp3-demuxer.d.ts +1 -1
- package/dist/modules/src/mp3/mp3-demuxer.d.ts.map +1 -0
- package/dist/modules/{mp3 → src/mp3}/mp3-demuxer.js +1 -1
- package/dist/modules/src/mp3/mp3-muxer.d.ts.map +1 -0
- package/dist/modules/{mp3 → src/mp3}/mp3-muxer.js +1 -1
- package/dist/modules/{mp3 → src/mp3}/mp3-reader.d.ts +1 -1
- package/dist/modules/src/mp3/mp3-reader.d.ts.map +1 -0
- package/dist/modules/{mp3 → src/mp3}/mp3-reader.js +1 -1
- package/dist/modules/src/mp3/mp3-writer.d.ts.map +1 -0
- package/dist/modules/{mp3 → src/mp3}/mp3-writer.js +1 -1
- package/dist/modules/src/muxer.d.ts.map +1 -0
- package/dist/modules/src/ogg/ogg-demuxer.d.ts.map +1 -0
- package/dist/modules/src/ogg/ogg-misc.d.ts.map +1 -0
- package/dist/modules/src/ogg/ogg-muxer.d.ts.map +1 -0
- package/dist/modules/src/ogg/ogg-reader.d.ts.map +1 -0
- package/dist/modules/src/output-format.d.ts.map +1 -0
- package/dist/modules/src/output.d.ts.map +1 -0
- package/dist/modules/{output.js → src/output.js} +2 -2
- package/dist/modules/src/packet.d.ts.map +1 -0
- package/dist/modules/src/pcm.d.ts.map +1 -0
- package/dist/modules/src/reader.d.ts.map +1 -0
- package/dist/modules/src/sample.d.ts.map +1 -0
- package/dist/modules/src/source.d.ts.map +1 -0
- package/dist/modules/src/subtitles.d.ts.map +1 -0
- package/dist/modules/src/target.d.ts.map +1 -0
- package/dist/modules/src/tsconfig.tsbuildinfo +1 -0
- package/dist/modules/src/wave/riff-reader.d.ts.map +1 -0
- package/dist/modules/src/wave/riff-writer.d.ts.map +1 -0
- package/dist/modules/src/wave/wave-demuxer.d.ts.map +1 -0
- package/dist/modules/src/wave/wave-muxer.d.ts.map +1 -0
- package/dist/modules/src/writer.d.ts.map +1 -0
- package/package.json +17 -9
- package/src/conversion.ts +1 -1
- package/src/custom-coder.ts +32 -4
- package/src/input-format.ts +1 -1
- package/src/media-source.ts +36 -25
- package/src/mp3/mp3-demuxer.ts +1 -1
- package/src/mp3/mp3-muxer.ts +1 -1
- package/src/mp3/mp3-reader.ts +1 -1
- package/src/mp3/mp3-writer.ts +1 -1
- package/src/output.ts +2 -2
- package/src/tsconfig.json +5 -2
- package/dist/modules/codec-data.d.ts.map +0 -1
- package/dist/modules/codec.d.ts.map +0 -1
- package/dist/modules/conversion.d.ts.map +0 -1
- package/dist/modules/custom-coder.d.ts.map +0 -1
- package/dist/modules/demuxer.d.ts.map +0 -1
- package/dist/modules/index.d.ts.map +0 -1
- package/dist/modules/input-format.d.ts.map +0 -1
- package/dist/modules/input-track.d.ts.map +0 -1
- package/dist/modules/input.d.ts.map +0 -1
- package/dist/modules/isobmff/isobmff-boxes.d.ts.map +0 -1
- package/dist/modules/isobmff/isobmff-demuxer.d.ts.map +0 -1
- package/dist/modules/isobmff/isobmff-misc.d.ts.map +0 -1
- package/dist/modules/isobmff/isobmff-muxer.d.ts.map +0 -1
- package/dist/modules/isobmff/isobmff-reader.d.ts.map +0 -1
- package/dist/modules/matroska/ebml.d.ts.map +0 -1
- package/dist/modules/matroska/matroska-demuxer.d.ts.map +0 -1
- package/dist/modules/matroska/matroska-misc.d.ts.map +0 -1
- package/dist/modules/matroska/matroska-muxer.d.ts.map +0 -1
- package/dist/modules/media-sink.d.ts.map +0 -1
- package/dist/modules/media-source.d.ts.map +0 -1
- package/dist/modules/misc.d.ts.map +0 -1
- package/dist/modules/mp3/mp3-demuxer.d.ts.map +0 -1
- package/dist/modules/mp3/mp3-misc.d.ts.map +0 -1
- package/dist/modules/mp3/mp3-muxer.d.ts.map +0 -1
- package/dist/modules/mp3/mp3-reader.d.ts.map +0 -1
- package/dist/modules/mp3/mp3-writer.d.ts.map +0 -1
- package/dist/modules/muxer.d.ts.map +0 -1
- package/dist/modules/ogg/ogg-demuxer.d.ts.map +0 -1
- package/dist/modules/ogg/ogg-misc.d.ts.map +0 -1
- package/dist/modules/ogg/ogg-muxer.d.ts.map +0 -1
- package/dist/modules/ogg/ogg-reader.d.ts.map +0 -1
- package/dist/modules/output-format.d.ts.map +0 -1
- package/dist/modules/output.d.ts.map +0 -1
- package/dist/modules/packet.d.ts.map +0 -1
- package/dist/modules/pcm.d.ts.map +0 -1
- package/dist/modules/reader.d.ts.map +0 -1
- package/dist/modules/sample.d.ts.map +0 -1
- package/dist/modules/source.d.ts.map +0 -1
- package/dist/modules/subtitles.d.ts.map +0 -1
- package/dist/modules/target.d.ts.map +0 -1
- package/dist/modules/wave/riff-reader.d.ts.map +0 -1
- package/dist/modules/wave/riff-writer.d.ts.map +0 -1
- package/dist/modules/wave/wave-demuxer.d.ts.map +0 -1
- package/dist/modules/wave/wave-muxer.d.ts.map +0 -1
- package/dist/modules/writer.d.ts.map +0 -1
- package/src/mp3/mp3-misc.ts +0 -158
- /package/dist/modules/{mp3 → shared}/mp3-misc.d.ts +0 -0
- /package/dist/modules/{mp3 → shared}/mp3-misc.js +0 -0
- /package/dist/modules/{codec-data.d.ts → src/codec-data.d.ts} +0 -0
- /package/dist/modules/{codec-data.js → src/codec-data.js} +0 -0
- /package/dist/modules/{codec.d.ts → src/codec.d.ts} +0 -0
- /package/dist/modules/{codec.js → src/codec.js} +0 -0
- /package/dist/modules/{conversion.d.ts → src/conversion.d.ts} +0 -0
- /package/dist/modules/{custom-coder.d.ts → src/custom-coder.d.ts} +0 -0
- /package/dist/modules/{demuxer.d.ts → src/demuxer.d.ts} +0 -0
- /package/dist/modules/{demuxer.js → src/demuxer.js} +0 -0
- /package/dist/modules/{index.d.ts → src/index.d.ts} +0 -0
- /package/dist/modules/{index.js → src/index.js} +0 -0
- /package/dist/modules/{input-format.d.ts → src/input-format.d.ts} +0 -0
- /package/dist/modules/{input-track.d.ts → src/input-track.d.ts} +0 -0
- /package/dist/modules/{input-track.js → src/input-track.js} +0 -0
- /package/dist/modules/{input.d.ts → src/input.d.ts} +0 -0
- /package/dist/modules/{input.js → src/input.js} +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-boxes.d.ts +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-boxes.js +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-demuxer.d.ts +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-demuxer.js +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-misc.d.ts +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-misc.js +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-muxer.d.ts +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-muxer.js +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-reader.d.ts +0 -0
- /package/dist/modules/{isobmff → src/isobmff}/isobmff-reader.js +0 -0
- /package/dist/modules/{matroska → src/matroska}/ebml.d.ts +0 -0
- /package/dist/modules/{matroska → src/matroska}/ebml.js +0 -0
- /package/dist/modules/{matroska → src/matroska}/matroska-demuxer.d.ts +0 -0
- /package/dist/modules/{matroska → src/matroska}/matroska-demuxer.js +0 -0
- /package/dist/modules/{matroska → src/matroska}/matroska-misc.d.ts +0 -0
- /package/dist/modules/{matroska → src/matroska}/matroska-misc.js +0 -0
- /package/dist/modules/{matroska → src/matroska}/matroska-muxer.d.ts +0 -0
- /package/dist/modules/{matroska → src/matroska}/matroska-muxer.js +0 -0
- /package/dist/modules/{media-sink.d.ts → src/media-sink.d.ts} +0 -0
- /package/dist/modules/{media-sink.js → src/media-sink.js} +0 -0
- /package/dist/modules/{media-source.d.ts → src/media-source.d.ts} +0 -0
- /package/dist/modules/{misc.d.ts → src/misc.d.ts} +0 -0
- /package/dist/modules/{misc.js → src/misc.js} +0 -0
- /package/dist/modules/{mp3 → src/mp3}/mp3-muxer.d.ts +0 -0
- /package/dist/modules/{mp3 → src/mp3}/mp3-writer.d.ts +0 -0
- /package/dist/modules/{muxer.d.ts → src/muxer.d.ts} +0 -0
- /package/dist/modules/{muxer.js → src/muxer.js} +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-demuxer.d.ts +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-demuxer.js +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-misc.d.ts +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-misc.js +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-muxer.d.ts +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-muxer.js +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-reader.d.ts +0 -0
- /package/dist/modules/{ogg → src/ogg}/ogg-reader.js +0 -0
- /package/dist/modules/{output-format.d.ts → src/output-format.d.ts} +0 -0
- /package/dist/modules/{output-format.js → src/output-format.js} +0 -0
- /package/dist/modules/{output.d.ts → src/output.d.ts} +0 -0
- /package/dist/modules/{packet.d.ts → src/packet.d.ts} +0 -0
- /package/dist/modules/{packet.js → src/packet.js} +0 -0
- /package/dist/modules/{pcm.d.ts → src/pcm.d.ts} +0 -0
- /package/dist/modules/{pcm.js → src/pcm.js} +0 -0
- /package/dist/modules/{reader.d.ts → src/reader.d.ts} +0 -0
- /package/dist/modules/{reader.js → src/reader.js} +0 -0
- /package/dist/modules/{sample.d.ts → src/sample.d.ts} +0 -0
- /package/dist/modules/{sample.js → src/sample.js} +0 -0
- /package/dist/modules/{source.d.ts → src/source.d.ts} +0 -0
- /package/dist/modules/{source.js → src/source.js} +0 -0
- /package/dist/modules/{subtitles.d.ts → src/subtitles.d.ts} +0 -0
- /package/dist/modules/{subtitles.js → src/subtitles.js} +0 -0
- /package/dist/modules/{target.d.ts → src/target.d.ts} +0 -0
- /package/dist/modules/{target.js → src/target.js} +0 -0
- /package/dist/modules/{wave → src/wave}/riff-reader.d.ts +0 -0
- /package/dist/modules/{wave → src/wave}/riff-reader.js +0 -0
- /package/dist/modules/{wave → src/wave}/riff-writer.d.ts +0 -0
- /package/dist/modules/{wave → src/wave}/riff-writer.js +0 -0
- /package/dist/modules/{wave → src/wave}/wave-demuxer.d.ts +0 -0
- /package/dist/modules/{wave → src/wave}/wave-demuxer.js +0 -0
- /package/dist/modules/{wave → src/wave}/wave-muxer.d.ts +0 -0
- /package/dist/modules/{wave → src/wave}/wave-muxer.js +0 -0
- /package/dist/modules/{writer.d.ts → src/writer.d.ts} +0 -0
- /package/dist/modules/{writer.js → src/writer.js} +0 -0
package/README.md
CHANGED
|
@@ -49,10 +49,17 @@ Core features include:
|
|
|
49
49
|
|
|
50
50
|
### Installation
|
|
51
51
|
|
|
52
|
+
Install it via npm:
|
|
53
|
+
|
|
52
54
|
```bash
|
|
53
55
|
npm install mediabunny
|
|
54
56
|
```
|
|
55
57
|
|
|
58
|
+
Alternatively, include it directly with a script tag using one of the [builds](https://github.com/Vanilagy/mediabunny/releases). Doing so exposes a global `Mediabunny` object.
|
|
59
|
+
```html
|
|
60
|
+
<script src="mediabunny.cjs"></script>
|
|
61
|
+
```
|
|
62
|
+
|
|
56
63
|
Requires any JavaScript environment that can run ECMAScript 2021 or later. Mediabunny is expected to be run in modern browsers. For types, TypeScript 5.7 or later is required.
|
|
57
64
|
|
|
58
65
|
### Read file metadata
|
|
@@ -586,18 +586,38 @@ var Mediabunny = (() => {
|
|
|
586
586
|
var customAudioEncoders = [];
|
|
587
587
|
var registerDecoder = (decoder) => {
|
|
588
588
|
if (decoder.prototype instanceof CustomVideoDecoder) {
|
|
589
|
-
|
|
589
|
+
const casted = decoder;
|
|
590
|
+
if (customVideoDecoders.includes(casted)) {
|
|
591
|
+
console.warn("Video decoder already registered.");
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
customVideoDecoders.push(casted);
|
|
590
595
|
} else if (decoder.prototype instanceof CustomAudioDecoder) {
|
|
591
|
-
|
|
596
|
+
const casted = decoder;
|
|
597
|
+
if (customAudioDecoders.includes(casted)) {
|
|
598
|
+
console.warn("Audio decoder already registered.");
|
|
599
|
+
return;
|
|
600
|
+
}
|
|
601
|
+
customAudioDecoders.push(casted);
|
|
592
602
|
} else {
|
|
593
603
|
throw new TypeError("Decoder must be a CustomVideoDecoder or CustomAudioDecoder.");
|
|
594
604
|
}
|
|
595
605
|
};
|
|
596
606
|
var registerEncoder = (encoder) => {
|
|
597
607
|
if (encoder.prototype instanceof CustomVideoEncoder) {
|
|
598
|
-
|
|
608
|
+
const casted = encoder;
|
|
609
|
+
if (customVideoEncoders.includes(casted)) {
|
|
610
|
+
console.warn("Video encoder already registered.");
|
|
611
|
+
return;
|
|
612
|
+
}
|
|
613
|
+
customVideoEncoders.push(casted);
|
|
599
614
|
} else if (encoder.prototype instanceof CustomAudioEncoder) {
|
|
600
|
-
|
|
615
|
+
const casted = encoder;
|
|
616
|
+
if (customAudioEncoders.includes(casted)) {
|
|
617
|
+
console.warn("Audio encoder already registered.");
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
customAudioEncoders.push(casted);
|
|
601
621
|
} else {
|
|
602
622
|
throw new TypeError("Encoder must be a CustomVideoEncoder or CustomAudioEncoder.");
|
|
603
623
|
}
|
|
@@ -6427,7 +6447,7 @@ ${cue.notes ?? ""}`;
|
|
|
6427
6447
|
}
|
|
6428
6448
|
};
|
|
6429
6449
|
|
|
6430
|
-
//
|
|
6450
|
+
// shared/mp3-misc.ts
|
|
6431
6451
|
var FRAME_HEADER_SIZE = 4;
|
|
6432
6452
|
var MPEG_V1_BITRATES = {
|
|
6433
6453
|
// Layer 3
|
|
@@ -10562,7 +10582,8 @@ ${cue.notes ?? ""}`;
|
|
|
10562
10582
|
async _start() {
|
|
10563
10583
|
}
|
|
10564
10584
|
/** @internal */
|
|
10565
|
-
|
|
10585
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
10586
|
+
async _flushAndClose(forceClose) {
|
|
10566
10587
|
}
|
|
10567
10588
|
/**
|
|
10568
10589
|
* Closes this source. This prevents future samples from being added and signals to the output file that no further
|
|
@@ -10581,7 +10602,7 @@ ${cue.notes ?? ""}`;
|
|
|
10581
10602
|
throw new Error("Cannot call close before output has been started.");
|
|
10582
10603
|
}
|
|
10583
10604
|
this._closingPromise = (async () => {
|
|
10584
|
-
await this._flushAndClose();
|
|
10605
|
+
await this._flushAndClose(false);
|
|
10585
10606
|
this._closed = true;
|
|
10586
10607
|
if (connectedTrack.output.state === "finalizing" || connectedTrack.output.state === "finalized") {
|
|
10587
10608
|
return;
|
|
@@ -10590,11 +10611,11 @@ ${cue.notes ?? ""}`;
|
|
|
10590
10611
|
})();
|
|
10591
10612
|
}
|
|
10592
10613
|
/** @internal */
|
|
10593
|
-
async
|
|
10614
|
+
async _flushOrWaitForOngoingClose(forceClose) {
|
|
10594
10615
|
if (this._closingPromise) {
|
|
10595
10616
|
return this._closingPromise;
|
|
10596
10617
|
} else {
|
|
10597
|
-
return this._flushAndClose();
|
|
10618
|
+
return this._flushAndClose(forceClose);
|
|
10598
10619
|
}
|
|
10599
10620
|
}
|
|
10600
10621
|
};
|
|
@@ -10819,13 +10840,17 @@ ${cue.notes ?? ""}`;
|
|
|
10819
10840
|
this.encoderInitialized = true;
|
|
10820
10841
|
})();
|
|
10821
10842
|
}
|
|
10822
|
-
async flushAndClose() {
|
|
10843
|
+
async flushAndClose(forceClose) {
|
|
10823
10844
|
this.checkForEncoderError();
|
|
10824
10845
|
if (this.customEncoder) {
|
|
10825
|
-
|
|
10846
|
+
if (!forceClose) {
|
|
10847
|
+
void this.customEncoderCallSerializer.call(() => this.customEncoder.flush());
|
|
10848
|
+
}
|
|
10826
10849
|
await this.customEncoderCallSerializer.call(() => this.customEncoder.close());
|
|
10827
10850
|
} else if (this.encoder) {
|
|
10828
|
-
|
|
10851
|
+
if (!forceClose) {
|
|
10852
|
+
await this.encoder.flush();
|
|
10853
|
+
}
|
|
10829
10854
|
this.encoder.close();
|
|
10830
10855
|
}
|
|
10831
10856
|
this.checkForEncoderError();
|
|
@@ -10863,8 +10888,8 @@ ${cue.notes ?? ""}`;
|
|
|
10863
10888
|
return this._encoder.add(videoSample, false, encodeOptions);
|
|
10864
10889
|
}
|
|
10865
10890
|
/** @internal */
|
|
10866
|
-
_flushAndClose() {
|
|
10867
|
-
return this._encoder.flushAndClose();
|
|
10891
|
+
_flushAndClose(forceClose) {
|
|
10892
|
+
return this._encoder.flushAndClose(forceClose);
|
|
10868
10893
|
}
|
|
10869
10894
|
};
|
|
10870
10895
|
var CanvasSource = class extends VideoSource {
|
|
@@ -10897,8 +10922,8 @@ ${cue.notes ?? ""}`;
|
|
|
10897
10922
|
return this._encoder.add(sample, true, encodeOptions);
|
|
10898
10923
|
}
|
|
10899
10924
|
/** @internal */
|
|
10900
|
-
_flushAndClose() {
|
|
10901
|
-
return this._encoder.flushAndClose();
|
|
10925
|
+
_flushAndClose(forceClose) {
|
|
10926
|
+
return this._encoder.flushAndClose(forceClose);
|
|
10902
10927
|
}
|
|
10903
10928
|
};
|
|
10904
10929
|
var MediaStreamVideoTrackSource = class extends VideoSource {
|
|
@@ -11004,7 +11029,7 @@ ${cue.notes ?? ""}`;
|
|
|
11004
11029
|
}
|
|
11005
11030
|
}
|
|
11006
11031
|
/** @internal */
|
|
11007
|
-
async _flushAndClose() {
|
|
11032
|
+
async _flushAndClose(forceClose) {
|
|
11008
11033
|
if (this._abortController) {
|
|
11009
11034
|
this._abortController.abort();
|
|
11010
11035
|
this._abortController = null;
|
|
@@ -11028,7 +11053,7 @@ ${cue.notes ?? ""}`;
|
|
|
11028
11053
|
mediaStreamTrackProcessorWorker.addEventListener("message", listener);
|
|
11029
11054
|
});
|
|
11030
11055
|
}
|
|
11031
|
-
await this._encoder.flushAndClose();
|
|
11056
|
+
await this._encoder.flushAndClose(forceClose);
|
|
11032
11057
|
}
|
|
11033
11058
|
};
|
|
11034
11059
|
var AudioSource = class extends MediaSource {
|
|
@@ -11392,13 +11417,17 @@ ${cue.notes ?? ""}`;
|
|
|
11392
11417
|
;
|
|
11393
11418
|
}
|
|
11394
11419
|
}
|
|
11395
|
-
async flushAndClose() {
|
|
11420
|
+
async flushAndClose(forceClose) {
|
|
11396
11421
|
this.checkForEncoderError();
|
|
11397
11422
|
if (this.customEncoder) {
|
|
11398
|
-
|
|
11423
|
+
if (!forceClose) {
|
|
11424
|
+
void this.customEncoderCallSerializer.call(() => this.customEncoder.flush());
|
|
11425
|
+
}
|
|
11399
11426
|
await this.customEncoderCallSerializer.call(() => this.customEncoder.close());
|
|
11400
11427
|
} else if (this.encoder) {
|
|
11401
|
-
|
|
11428
|
+
if (!forceClose) {
|
|
11429
|
+
await this.encoder.flush();
|
|
11430
|
+
}
|
|
11402
11431
|
this.encoder.close();
|
|
11403
11432
|
}
|
|
11404
11433
|
this.checkForEncoderError();
|
|
@@ -11438,8 +11467,8 @@ ${cue.notes ?? ""}`;
|
|
|
11438
11467
|
return this._encoder.add(audioSample, false);
|
|
11439
11468
|
}
|
|
11440
11469
|
/** @internal */
|
|
11441
|
-
_flushAndClose() {
|
|
11442
|
-
return this._encoder.flushAndClose();
|
|
11470
|
+
_flushAndClose(forceClose) {
|
|
11471
|
+
return this._encoder.flushAndClose(forceClose);
|
|
11443
11472
|
}
|
|
11444
11473
|
};
|
|
11445
11474
|
var AudioBufferSource = class extends AudioSource {
|
|
@@ -11468,8 +11497,8 @@ ${cue.notes ?? ""}`;
|
|
|
11468
11497
|
return Promise.all(promises);
|
|
11469
11498
|
}
|
|
11470
11499
|
/** @internal */
|
|
11471
|
-
_flushAndClose() {
|
|
11472
|
-
return this._encoder.flushAndClose();
|
|
11500
|
+
_flushAndClose(forceClose) {
|
|
11501
|
+
return this._encoder.flushAndClose(forceClose);
|
|
11473
11502
|
}
|
|
11474
11503
|
};
|
|
11475
11504
|
var MediaStreamAudioTrackSource = class extends AudioSource {
|
|
@@ -11574,7 +11603,7 @@ ${cue.notes ?? ""}`;
|
|
|
11574
11603
|
}
|
|
11575
11604
|
}
|
|
11576
11605
|
/** @internal */
|
|
11577
|
-
async _flushAndClose() {
|
|
11606
|
+
async _flushAndClose(forceClose) {
|
|
11578
11607
|
if (this._abortController) {
|
|
11579
11608
|
this._abortController.abort();
|
|
11580
11609
|
this._abortController = null;
|
|
@@ -11584,13 +11613,13 @@ ${cue.notes ?? ""}`;
|
|
|
11584
11613
|
this._scriptProcessorNode.disconnect();
|
|
11585
11614
|
await this._audioContext.suspend();
|
|
11586
11615
|
}
|
|
11587
|
-
await this._encoder.flushAndClose();
|
|
11616
|
+
await this._encoder.flushAndClose(forceClose);
|
|
11588
11617
|
}
|
|
11589
11618
|
};
|
|
11590
11619
|
var mediaStreamTrackProcessorWorkerCode = () => {
|
|
11591
11620
|
const sendMessage = (message, transfer) => {
|
|
11592
11621
|
if (transfer) {
|
|
11593
|
-
self.postMessage(message, transfer);
|
|
11622
|
+
self.postMessage(message, { transfer });
|
|
11594
11623
|
} else {
|
|
11595
11624
|
self.postMessage(message);
|
|
11596
11625
|
}
|
|
@@ -11944,7 +11973,7 @@ ${cue.notes ?? ""}`;
|
|
|
11944
11973
|
return this._cancelPromise = (async () => {
|
|
11945
11974
|
this.state = "canceled";
|
|
11946
11975
|
const release = await this._mutex.acquire();
|
|
11947
|
-
const promises = this._tracks.map((x) => x.source.
|
|
11976
|
+
const promises = this._tracks.map((x) => x.source._flushOrWaitForOngoingClose(true));
|
|
11948
11977
|
await Promise.all(promises);
|
|
11949
11978
|
await this._writer.close();
|
|
11950
11979
|
release();
|
|
@@ -11968,7 +11997,7 @@ ${cue.notes ?? ""}`;
|
|
|
11968
11997
|
return this._finalizePromise = (async () => {
|
|
11969
11998
|
this.state = "finalizing";
|
|
11970
11999
|
const release = await this._mutex.acquire();
|
|
11971
|
-
const promises = this._tracks.map((x) => x.source.
|
|
12000
|
+
const promises = this._tracks.map((x) => x.source._flushOrWaitForOngoingClose(false));
|
|
11972
12001
|
await Promise.all(promises);
|
|
11973
12002
|
await this._muxer.finalize();
|
|
11974
12003
|
await this._writer.flush();
|
|
@@ -17031,7 +17060,7 @@ ${cue.notes ?? ""}`;
|
|
|
17031
17060
|
await Promise.all(this._trackPromises);
|
|
17032
17061
|
} catch (error) {
|
|
17033
17062
|
if (!this._canceled) {
|
|
17034
|
-
|
|
17063
|
+
void this.cancel();
|
|
17035
17064
|
}
|
|
17036
17065
|
throw error;
|
|
17037
17066
|
}
|