mediabunny 1.7.0 → 1.7.2
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 +28 -11
- package/dist/bundles/mediabunny.min.cjs +3 -3
- package/dist/bundles/mediabunny.min.mjs +3 -3
- package/dist/bundles/mediabunny.mjs +28 -11
- package/dist/mediabunny.d.ts +3 -2
- package/dist/modules/src/input-format.js +1 -1
- package/dist/modules/src/isobmff/isobmff-demuxer.d.ts.map +1 -1
- package/dist/modules/src/isobmff/isobmff-demuxer.js +5 -0
- package/dist/modules/src/matroska/ebml.d.ts +2 -2
- package/dist/modules/src/matroska/ebml.d.ts.map +1 -1
- package/dist/modules/src/matroska/ebml.js +3 -4
- package/dist/modules/src/matroska/matroska-demuxer.js +3 -3
- package/dist/modules/src/media-sink.d.ts.map +1 -1
- package/dist/modules/src/media-sink.js +7 -1
- package/dist/modules/src/media-source.d.ts +3 -2
- package/dist/modules/src/media-source.d.ts.map +1 -1
- package/dist/modules/src/media-source.js +3 -2
- package/dist/modules/src/source.d.ts.map +1 -1
- package/dist/modules/src/source.js +17 -1
- package/dist/modules/src/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/input-format.ts +1 -1
- package/src/isobmff/isobmff-demuxer.ts +6 -0
- package/src/matroska/ebml.ts +3 -4
- package/src/matroska/matroska-demuxer.ts +3 -3
- package/src/media-sink.ts +7 -1
- package/src/media-source.ts +3 -2
- package/src/source.ts +22 -2
|
@@ -5434,8 +5434,7 @@ var EBMLWriter = class {
|
|
|
5434
5434
|
}
|
|
5435
5435
|
this.writer.write(this.helper.subarray(0, pos));
|
|
5436
5436
|
}
|
|
5437
|
-
|
|
5438
|
-
writeString(str) {
|
|
5437
|
+
writeAsciiString(str) {
|
|
5439
5438
|
this.writer.write(new Uint8Array(str.split("").map((x) => x.charCodeAt(0))));
|
|
5440
5439
|
}
|
|
5441
5440
|
writeEBML(data) {
|
|
@@ -5473,7 +5472,7 @@ var EBMLWriter = class {
|
|
|
5473
5472
|
this.writeUnsignedInt(data.data, size);
|
|
5474
5473
|
} else if (typeof data.data === "string") {
|
|
5475
5474
|
this.writeVarInt(data.data.length);
|
|
5476
|
-
this.
|
|
5475
|
+
this.writeAsciiString(data.data);
|
|
5477
5476
|
} else if (data.data instanceof Uint8Array) {
|
|
5478
5477
|
this.writeVarInt(data.data.byteLength, data.size);
|
|
5479
5478
|
this.writer.write(data.data);
|
|
@@ -5575,7 +5574,7 @@ var EBMLReader = class {
|
|
|
5575
5574
|
this.pos += width;
|
|
5576
5575
|
return value;
|
|
5577
5576
|
}
|
|
5578
|
-
|
|
5577
|
+
readAsciiString(length) {
|
|
5579
5578
|
const { view: view2, offset } = this.reader.getViewAndOffset(this.pos, this.pos + length);
|
|
5580
5579
|
this.pos += length;
|
|
5581
5580
|
let strLength = 0;
|
|
@@ -8960,6 +8959,10 @@ var AudioDecoderWrapper = class extends DecoderWrapper {
|
|
|
8960
8959
|
this.customDecoderCallSerializer = new CallSerializer();
|
|
8961
8960
|
this.customDecoderQueueSize = 0;
|
|
8962
8961
|
const sampleHandler = (sample) => {
|
|
8962
|
+
if (sample.numberOfFrames === 0) {
|
|
8963
|
+
sample.close();
|
|
8964
|
+
return;
|
|
8965
|
+
}
|
|
8963
8966
|
const sampleRate = decoderConfig.sampleRate;
|
|
8964
8967
|
sample.setTimestamp(Math.round(sample.timestamp * sampleRate) / sampleRate);
|
|
8965
8968
|
onSample(sample);
|
|
@@ -10549,7 +10552,8 @@ var EncodedVideoPacketSource = class extends VideoSource {
|
|
|
10549
10552
|
super(codec);
|
|
10550
10553
|
}
|
|
10551
10554
|
/**
|
|
10552
|
-
* Adds an encoded packet to the output video track.
|
|
10555
|
+
* Adds an encoded packet to the output video track. Packets must be added in *decode order*, while a packet's
|
|
10556
|
+
* timestamp must be its *presentation timestamp*. B-frames are handled automatically.
|
|
10553
10557
|
*
|
|
10554
10558
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
10555
10559
|
* decoder config.
|
|
@@ -10986,7 +10990,7 @@ var EncodedAudioPacketSource = class extends AudioSource {
|
|
|
10986
10990
|
super(codec);
|
|
10987
10991
|
}
|
|
10988
10992
|
/**
|
|
10989
|
-
* Adds an encoded packet to the output audio track.
|
|
10993
|
+
* Adds an encoded packet to the output audio track. Packets must be added in *decode order*.
|
|
10990
10994
|
*
|
|
10991
10995
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
10992
10996
|
* decoder config.
|
|
@@ -12015,7 +12019,9 @@ var UrlSource = class extends Source {
|
|
|
12015
12019
|
super();
|
|
12016
12020
|
/** @internal */
|
|
12017
12021
|
this._fullData = null;
|
|
12018
|
-
|
|
12022
|
+
/** @internal */
|
|
12023
|
+
this._nextUrlVersion = null;
|
|
12024
|
+
this._url = url2 instanceof URL ? url2 : new URL(url2);
|
|
12019
12025
|
this._options = options;
|
|
12020
12026
|
}
|
|
12021
12027
|
/** @internal */
|
|
@@ -12024,6 +12030,10 @@ var UrlSource = class extends Source {
|
|
|
12024
12030
|
if (range) {
|
|
12025
12031
|
headers["Range"] = `bytes=${range.start}-${range.end - 1}`;
|
|
12026
12032
|
}
|
|
12033
|
+
if (this._nextUrlVersion !== null) {
|
|
12034
|
+
this._url.searchParams.set("mediabunny_version", this._nextUrlVersion.toString());
|
|
12035
|
+
this._nextUrlVersion++;
|
|
12036
|
+
}
|
|
12027
12037
|
const response = await retriedFetch(
|
|
12028
12038
|
this._url,
|
|
12029
12039
|
mergeObjectsDeeply(this._options.requestInit ?? {}, {
|
|
@@ -12036,6 +12046,10 @@ var UrlSource = class extends Source {
|
|
|
12036
12046
|
throw new Error(`Error fetching ${this._url}: ${response.status} ${response.statusText}`);
|
|
12037
12047
|
}
|
|
12038
12048
|
const buffer = await response.arrayBuffer();
|
|
12049
|
+
if (response.status === 206 && range && buffer.byteLength !== range.end - range.start && this._nextUrlVersion === null) {
|
|
12050
|
+
this._nextUrlVersion = 1;
|
|
12051
|
+
return this._makeRequest(range);
|
|
12052
|
+
}
|
|
12039
12053
|
if (response.status === 200) {
|
|
12040
12054
|
this._fullData = buffer;
|
|
12041
12055
|
}
|
|
@@ -13132,6 +13146,9 @@ var IsobmffDemuxer = class extends Demuxer {
|
|
|
13132
13146
|
const sampleIndex = this.metadataReader.readU32() - 1;
|
|
13133
13147
|
track.sampleTable.keySampleIndices.push(sampleIndex);
|
|
13134
13148
|
}
|
|
13149
|
+
if (track.sampleTable.keySampleIndices[0] !== 0) {
|
|
13150
|
+
track.sampleTable.keySampleIndices.unshift(0);
|
|
13151
|
+
}
|
|
13135
13152
|
}
|
|
13136
13153
|
;
|
|
13137
13154
|
break;
|
|
@@ -14527,7 +14544,7 @@ var MatroskaDemuxer = class extends Demuxer {
|
|
|
14527
14544
|
switch (id) {
|
|
14528
14545
|
case 17026 /* DocType */:
|
|
14529
14546
|
{
|
|
14530
|
-
this.isWebM = reader.
|
|
14547
|
+
this.isWebM = reader.readAsciiString(size) === "webm";
|
|
14531
14548
|
}
|
|
14532
14549
|
;
|
|
14533
14550
|
break;
|
|
@@ -14725,7 +14742,7 @@ var MatroskaDemuxer = class extends Demuxer {
|
|
|
14725
14742
|
case 134 /* CodecID */:
|
|
14726
14743
|
{
|
|
14727
14744
|
if (!this.currentTrack) break;
|
|
14728
|
-
this.currentTrack.codecId = reader.
|
|
14745
|
+
this.currentTrack.codecId = reader.readAsciiString(size);
|
|
14729
14746
|
}
|
|
14730
14747
|
;
|
|
14731
14748
|
break;
|
|
@@ -14746,7 +14763,7 @@ var MatroskaDemuxer = class extends Demuxer {
|
|
|
14746
14763
|
case 2274716 /* Language */:
|
|
14747
14764
|
{
|
|
14748
14765
|
if (!this.currentTrack) break;
|
|
14749
|
-
this.currentTrack.languageCode = reader.
|
|
14766
|
+
this.currentTrack.languageCode = reader.readAsciiString(size);
|
|
14750
14767
|
if (!isIso639Dash2LanguageCode(this.currentTrack.languageCode)) {
|
|
14751
14768
|
this.currentTrack.languageCode = UNDETERMINED_LANGUAGE;
|
|
14752
14769
|
}
|
|
@@ -16554,7 +16571,7 @@ var MatroskaInputFormat = class extends InputFormat {
|
|
|
16554
16571
|
break;
|
|
16555
16572
|
case 17026 /* DocType */:
|
|
16556
16573
|
{
|
|
16557
|
-
const docType = ebmlReader.
|
|
16574
|
+
const docType = ebmlReader.readAsciiString(size);
|
|
16558
16575
|
if (docType !== desiredDocType) {
|
|
16559
16576
|
return false;
|
|
16560
16577
|
}
|
package/dist/mediabunny.d.ts
CHANGED
|
@@ -665,7 +665,7 @@ export declare abstract class CustomVideoEncoder {
|
|
|
665
665
|
export declare class EncodedAudioPacketSource extends AudioSource {
|
|
666
666
|
constructor(codec: AudioCodec);
|
|
667
667
|
/**
|
|
668
|
-
* Adds an encoded packet to the output audio track.
|
|
668
|
+
* Adds an encoded packet to the output audio track. Packets must be added in *decode order*.
|
|
669
669
|
*
|
|
670
670
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
671
671
|
* decoder config.
|
|
@@ -809,7 +809,8 @@ export declare class EncodedPacketSink {
|
|
|
809
809
|
export declare class EncodedVideoPacketSource extends VideoSource {
|
|
810
810
|
constructor(codec: VideoCodec);
|
|
811
811
|
/**
|
|
812
|
-
* Adds an encoded packet to the output video track.
|
|
812
|
+
* Adds an encoded packet to the output video track. Packets must be added in *decode order*, while a packet's
|
|
813
|
+
* timestamp must be its *presentation timestamp*. B-frames are handled automatically.
|
|
813
814
|
*
|
|
814
815
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
815
816
|
* decoder config.
|
|
@@ -131,7 +131,7 @@ export class MatroskaInputFormat extends InputFormat {
|
|
|
131
131
|
break;
|
|
132
132
|
case EBMLId.DocType:
|
|
133
133
|
{
|
|
134
|
-
const docType = ebmlReader.
|
|
134
|
+
const docType = ebmlReader.readAsciiString(size);
|
|
135
135
|
if (docType !== desiredDocType) {
|
|
136
136
|
return false;
|
|
137
137
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isobmff-demuxer.d.ts","sourceRoot":"","sources":["../../../../src/isobmff/isobmff-demuxer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"isobmff-demuxer.d.ts","sourceRoot":"","sources":["../../../../src/isobmff/isobmff-demuxer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,YAAY,EACZ,UAAU,EAQV,UAAU,EACV,MAAM,UAAU,CAAC;AAClB,OAAO,EACN,6BAA6B,EAC7B,8BAA8B,EAC9B,YAAY,EACZ,YAAY,EAGZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAGN,UAAU,EAIV,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAON,QAAQ,EAER,UAAU,EAUV,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,aAAa,EAA4C,MAAM,kBAAkB,CAAC;AAE3F,KAAK,aAAa,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC;IACvD,oBAAoB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,qBAAqB,EAAE,QAAQ,EAAE,CAAC;IAClC,kHAAkH;IAClH,gCAAgC,EAAE,MAAM,CAAC;IACzC,iFAAiF;IACjF,cAAc,EAAE,MAAM,CAAC;CACvB,GAAG,CAAC;IACJ,IAAI,EAAE,IAAI,CAAC;CACX,GAAG;IACH,IAAI,EAAE;QACL,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;QACzB,gBAAgB,EAAE,UAAU,GAAG,IAAI,CAAC;QACpC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACvC,YAAY,EAAE,6BAA6B,GAAG,IAAI,CAAC;QACnD,aAAa,EAAE,8BAA8B,GAAG,IAAI,CAAC;QACrD,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;QAClC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;KAClC,CAAC;CACF,GAAG;IACH,IAAI,EAAE;QACL,IAAI,EAAE,OAAO,CAAC;QACd,gBAAgB,EAAE,MAAM,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;QACzB,gBAAgB,EAAE,UAAU,GAAG,IAAI,CAAC;QACpC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;KAClC,CAAC;CACF,CAAC,CAAC;AAKH,KAAK,WAAW,GAAG;IAClB,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;IACzC,4BAA4B,EAAE,gCAAgC,EAAE,CAAC;IACjE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,sBAAsB,EAAE;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC;KACpB,EAAE,GAAG,IAAI,CAAC;IACX;;;OAGG;IACH,6BAA6B,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC/C,CAAC;AACF,KAAK,iBAAiB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AACF,KAAK,gCAAgC,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AACF,KAAK,kBAAkB,GAAG;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B,EAAE,MAAM,CAAC;IACtC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,sBAAsB,EAAE;QACvB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,WAAW,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ,qBAAqB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,KAAK,mBAAmB,GAAG;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,SAAS,EAAE,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,wBAAwB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,qBAAa,cAAe,SAAQ,OAAO;IAC1C,cAAc,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC1C,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAQ;IAC7C,cAAc,SAAM;IACpB,wBAAwB,SAAM;IAC9B,WAAW,UAAS;IAEpB,YAAY,UAAS;IACrB,qBAAqB,EAAE,qBAAqB,EAAE,CAAM;IACpD,SAAS,EAAE,QAAQ,EAAE,CAAM;IAC3B,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAQ;IACxC,mBAAmB,aAAoB;IAEvC,WAAW,EAAE,aAAa,CAAC;gBAEf,KAAK,EAAE,KAAK;IAOT,eAAe;IAMf,SAAS;IAKT,WAAW;IAa1B,YAAY;IA4DZ,sBAAsB,CAAC,aAAa,EAAE,aAAa;IA6I7C,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC;IA+GvC,mBAAmB,CAAC,SAAS,EAAE,MAAM;IAQrC,WAAW;CAqzCX"}
|
|
@@ -1151,6 +1151,11 @@ export class IsobmffDemuxer extends Demuxer {
|
|
|
1151
1151
|
const sampleIndex = this.metadataReader.readU32() - 1; // Convert to 0-indexed
|
|
1152
1152
|
track.sampleTable.keySampleIndices.push(sampleIndex);
|
|
1153
1153
|
}
|
|
1154
|
+
if (track.sampleTable.keySampleIndices[0] !== 0) {
|
|
1155
|
+
// Some files don't mark the first sample a key sample, which is basically almost always incorrect.
|
|
1156
|
+
// Here, we correct for that mistake:
|
|
1157
|
+
track.sampleTable.keySampleIndices.unshift(0);
|
|
1158
|
+
}
|
|
1154
1159
|
}
|
|
1155
1160
|
;
|
|
1156
1161
|
break;
|
|
@@ -124,7 +124,7 @@ export declare class EBMLWriter {
|
|
|
124
124
|
writeUnsignedInt(value: number, width?: number): void;
|
|
125
125
|
writeSignedInt(value: number, width?: number): void;
|
|
126
126
|
writeVarInt(value: number, width?: number): void;
|
|
127
|
-
|
|
127
|
+
writeAsciiString(str: string): void;
|
|
128
128
|
writeEBML(data: EBML | null): void;
|
|
129
129
|
}
|
|
130
130
|
export declare const MIN_HEADER_SIZE = 2;
|
|
@@ -141,7 +141,7 @@ export declare class EBMLReader {
|
|
|
141
141
|
readUnsignedInt(width: number): number;
|
|
142
142
|
readSignedInt(width: number): number;
|
|
143
143
|
readFloat(width: number): number;
|
|
144
|
-
|
|
144
|
+
readAsciiString(length: number): string;
|
|
145
145
|
readElementId(): number;
|
|
146
146
|
readElementSize(): number | null;
|
|
147
147
|
readElementHeader(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ebml.d.ts","sourceRoot":"","sources":["../../../../src/matroska/ebml.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ebml.d.ts","sourceRoot":"","sources":["../../../../src/matroska/ebml.ts"],"names":[],"mappings":"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"}
|
|
@@ -288,8 +288,7 @@ export class EBMLWriter {
|
|
|
288
288
|
}
|
|
289
289
|
this.writer.write(this.helper.subarray(0, pos));
|
|
290
290
|
}
|
|
291
|
-
|
|
292
|
-
writeString(str) {
|
|
291
|
+
writeAsciiString(str) {
|
|
293
292
|
this.writer.write(new Uint8Array(str.split('').map(x => x.charCodeAt(0))));
|
|
294
293
|
}
|
|
295
294
|
writeEBML(data) {
|
|
@@ -334,7 +333,7 @@ export class EBMLWriter {
|
|
|
334
333
|
}
|
|
335
334
|
else if (typeof data.data === 'string') {
|
|
336
335
|
this.writeVarInt(data.data.length);
|
|
337
|
-
this.
|
|
336
|
+
this.writeAsciiString(data.data);
|
|
338
337
|
}
|
|
339
338
|
else if (data.data instanceof Uint8Array) {
|
|
340
339
|
this.writeVarInt(data.data.byteLength, data.size);
|
|
@@ -446,7 +445,7 @@ export class EBMLReader {
|
|
|
446
445
|
this.pos += width;
|
|
447
446
|
return value;
|
|
448
447
|
}
|
|
449
|
-
|
|
448
|
+
readAsciiString(length) {
|
|
450
449
|
const { view, offset } = this.reader.getViewAndOffset(this.pos, this.pos + length);
|
|
451
450
|
this.pos += length;
|
|
452
451
|
// Actual string length might be shorter due to null terminators
|
|
@@ -468,7 +468,7 @@ export class MatroskaDemuxer extends Demuxer {
|
|
|
468
468
|
switch (id) {
|
|
469
469
|
case EBMLId.DocType:
|
|
470
470
|
{
|
|
471
|
-
this.isWebM = reader.
|
|
471
|
+
this.isWebM = reader.readAsciiString(size) === 'webm';
|
|
472
472
|
}
|
|
473
473
|
;
|
|
474
474
|
break;
|
|
@@ -706,7 +706,7 @@ export class MatroskaDemuxer extends Demuxer {
|
|
|
706
706
|
{
|
|
707
707
|
if (!this.currentTrack)
|
|
708
708
|
break;
|
|
709
|
-
this.currentTrack.codecId = reader.
|
|
709
|
+
this.currentTrack.codecId = reader.readAsciiString(size);
|
|
710
710
|
}
|
|
711
711
|
;
|
|
712
712
|
break;
|
|
@@ -731,7 +731,7 @@ export class MatroskaDemuxer extends Demuxer {
|
|
|
731
731
|
{
|
|
732
732
|
if (!this.currentTrack)
|
|
733
733
|
break;
|
|
734
|
-
this.currentTrack.languageCode = reader.
|
|
734
|
+
this.currentTrack.languageCode = reader.readAsciiString(size);
|
|
735
735
|
if (!isIso639Dash2LanguageCode(this.currentTrack.languageCode)) {
|
|
736
736
|
this.currentTrack.languageCode = UNDETERMINED_LANGUAGE;
|
|
737
737
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-sink.d.ts","sourceRoot":"","sources":["../../../src/media-sink.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EACN,WAAW,EAWX,QAAQ,EAIR,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACpC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AA+CF;;;GAGG;AACH,qBAAa,iBAAiB;gBAIjB,KAAK,EAAE,UAAU;IAQ7B;;;OAGG;IACH,cAAc,CAAC,OAAO,GAAE,sBAA2B;IAMnD;;;;;;;OAOG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;IAOjE;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,sBAA2B;IASzE;;;;;;;;;;OAUG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAsB1G;;;;;OAKG;IACG,gBAAgB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAwBlH;;;;;;OAMG;IACH,OAAO,CACN,WAAW,CAAC,EAAE,aAAa,EAC3B,SAAS,CAAC,EAAE,aAAa,EACzB,OAAO,GAAE,sBAA2B,GAClC,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,OAAO,CAAC;CAqG/C;AAgBD;;;GAGG;AACH,8BAAsB,mBAAmB,CACxC,WAAW,SAAS,WAAW,GAAG,WAAW;CAsY7C;AA6JD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,mBAAmB,CAAC,WAAW,CAAC;gBAIxD,UAAU,EAAE,eAAe;IAoCvC;;;;;;OAMG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM;IASjC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,SAAI,EAAE,YAAY,SAAW;IAInD;;;;;;;OAOG;IACH,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC;CAGnD;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B,4CAA4C;IAC5C,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC5C,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACnC;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,UAAU;gBAkBV,UAAU,EAAE,eAAe,EAAE,OAAO,GAAE,iBAAsB;IAuIxE;;;;;;OAMG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM;IAOjC;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,SAAI,EAAE,YAAY,SAAW;IAOpD;;;;;;;OAOG;IACH,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC;CAMpD;
|
|
1
|
+
{"version":3,"file":"media-sink.d.ts","sourceRoot":"","sources":["../../../src/media-sink.ts"],"names":[],"mappings":"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"}
|
|
@@ -943,8 +943,14 @@ class AudioDecoderWrapper extends DecoderWrapper {
|
|
|
943
943
|
this.customDecoderCallSerializer = new CallSerializer();
|
|
944
944
|
this.customDecoderQueueSize = 0;
|
|
945
945
|
const sampleHandler = (sample) => {
|
|
946
|
-
|
|
946
|
+
if (sample.numberOfFrames === 0) {
|
|
947
|
+
// We skip zero-data (empty) AudioSamples. These are sometimes emitted, for example, by Firefox when it
|
|
948
|
+
// decodes Vorbis (at the start).
|
|
949
|
+
sample.close();
|
|
950
|
+
return;
|
|
951
|
+
}
|
|
947
952
|
// Round the timestamp to the sample rate
|
|
953
|
+
const sampleRate = decoderConfig.sampleRate;
|
|
948
954
|
sample.setTimestamp(Math.round(sample.timestamp * sampleRate) / sampleRate);
|
|
949
955
|
onSample(sample);
|
|
950
956
|
};
|
|
@@ -34,7 +34,8 @@ export declare abstract class VideoSource extends MediaSource {
|
|
|
34
34
|
export declare class EncodedVideoPacketSource extends VideoSource {
|
|
35
35
|
constructor(codec: VideoCodec);
|
|
36
36
|
/**
|
|
37
|
-
* Adds an encoded packet to the output video track.
|
|
37
|
+
* Adds an encoded packet to the output video track. Packets must be added in *decode order*, while a packet's
|
|
38
|
+
* timestamp must be its *presentation timestamp*. B-frames are handled automatically.
|
|
38
39
|
*
|
|
39
40
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
40
41
|
* decoder config.
|
|
@@ -133,7 +134,7 @@ export declare abstract class AudioSource extends MediaSource {
|
|
|
133
134
|
export declare class EncodedAudioPacketSource extends AudioSource {
|
|
134
135
|
constructor(codec: AudioCodec);
|
|
135
136
|
/**
|
|
136
|
-
* Adds an encoded packet to the output audio track.
|
|
137
|
+
* Adds an encoded packet to the output audio track. Packets must be added in *decode order*.
|
|
137
138
|
*
|
|
138
139
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
139
140
|
* decoder config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-source.d.ts","sourceRoot":"","sources":["../../../src/media-source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEN,UAAU,EASV,OAAO,EAEP,aAAa,EAEb,UAAU,EACV,MAAM,SAAS,CAAC;AAYjB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEpD;;;GAGG;AACH,8BAAsB,WAAW;IA0ChC;;;;OAIG;IACH,KAAK;CAqCL;AAED;;;GAGG;AACH,8BAAsB,WAAY,SAAQ,WAAW;gBAMxC,KAAK,EAAE,UAAU;CAS7B;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,WAAW;gBAC5C,KAAK,EAAE,UAAU;IAI7B
|
|
1
|
+
{"version":3,"file":"media-source.d.ts","sourceRoot":"","sources":["../../../src/media-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,8 @@ export class EncodedVideoPacketSource extends VideoSource {
|
|
|
113
113
|
super(codec);
|
|
114
114
|
}
|
|
115
115
|
/**
|
|
116
|
-
* Adds an encoded packet to the output video track.
|
|
116
|
+
* Adds an encoded packet to the output video track. Packets must be added in *decode order*, while a packet's
|
|
117
|
+
* timestamp must be its *presentation timestamp*. B-frames are handled automatically.
|
|
117
118
|
*
|
|
118
119
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
119
120
|
* decoder config.
|
|
@@ -607,7 +608,7 @@ export class EncodedAudioPacketSource extends AudioSource {
|
|
|
607
608
|
super(codec);
|
|
608
609
|
}
|
|
609
610
|
/**
|
|
610
|
-
* Adds an encoded packet to the output audio track.
|
|
611
|
+
* Adds an encoded packet to the output audio track. Packets must be added in *decode order*.
|
|
611
612
|
*
|
|
612
613
|
* @param meta - Additional metadata from the encoder. You should pass this for the first call, including a valid
|
|
613
614
|
* decoder config.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,8BAAsB,MAAM;IAS3B;;;OAGG;IACH,OAAO;IAIP,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;CAChE;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,MAAM;gBAI3B,MAAM,EAAE,WAAW,GAAG,UAAU;CAmB5C;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,0GAA0G;IAC1G,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvE,2GAA2G;IAC3G,OAAO,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,MAAM;gBAI3B,OAAO,EAAE,mBAAmB;CAyBxC;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,MAAM;gBAIzB,IAAI,EAAE,IAAI;CAqBtB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC5D,CAAC;AAEF;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;GAGG;AACH,8BAAsB,MAAM;IAS3B;;;OAGG;IACH,OAAO;IAIP,0DAA0D;IAC1D,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,IAAI,CAAQ;CAChE;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,MAAM;gBAI3B,MAAM,EAAE,WAAW,GAAG,UAAU;CAmB5C;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,0GAA0G;IAC1G,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACvE,2GAA2G;IAC3G,OAAO,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,MAAM;gBAI3B,OAAO,EAAE,mBAAmB;CAyBxC;AAED;;;GAGG;AACH,qBAAa,UAAW,SAAQ,MAAM;gBAIzB,IAAI,EAAE,IAAI;CAqBtB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC5D,CAAC;AAEF;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,MAAM;gBAWnC,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,OAAO,GAAE,gBAAqB;CAmJ/B"}
|
|
@@ -118,7 +118,9 @@ export class UrlSource extends Source {
|
|
|
118
118
|
super();
|
|
119
119
|
/** @internal */
|
|
120
120
|
this._fullData = null;
|
|
121
|
-
|
|
121
|
+
/** @internal */
|
|
122
|
+
this._nextUrlVersion = null;
|
|
123
|
+
this._url = url instanceof URL ? url : new URL(url);
|
|
122
124
|
this._options = options;
|
|
123
125
|
}
|
|
124
126
|
/** @internal */
|
|
@@ -127,6 +129,10 @@ export class UrlSource extends Source {
|
|
|
127
129
|
if (range) {
|
|
128
130
|
headers['Range'] = `bytes=${range.start}-${range.end - 1}`;
|
|
129
131
|
}
|
|
132
|
+
if (this._nextUrlVersion !== null) {
|
|
133
|
+
this._url.searchParams.set('mediabunny_version', this._nextUrlVersion.toString());
|
|
134
|
+
this._nextUrlVersion++;
|
|
135
|
+
}
|
|
130
136
|
const response = await retriedFetch(this._url, mergeObjectsDeeply(this._options.requestInit ?? {}, {
|
|
131
137
|
method: 'GET',
|
|
132
138
|
headers,
|
|
@@ -135,6 +141,16 @@ export class UrlSource extends Source {
|
|
|
135
141
|
throw new Error(`Error fetching ${this._url}: ${response.status} ${response.statusText}`);
|
|
136
142
|
}
|
|
137
143
|
const buffer = await response.arrayBuffer();
|
|
144
|
+
if (response.status === 206
|
|
145
|
+
&& range
|
|
146
|
+
&& buffer.byteLength !== range.end - range.start
|
|
147
|
+
&& this._nextUrlVersion === null) {
|
|
148
|
+
// We did a range request but it resolved with the wrong range; in Chromium, this can be due to a caching
|
|
149
|
+
// bug (https://issues.chromium.org/issues/436025873). Let's circumvent the cache for the rest of the
|
|
150
|
+
// session by appending a version to the URL.
|
|
151
|
+
this._nextUrlVersion = 1;
|
|
152
|
+
return this._makeRequest(range);
|
|
153
|
+
}
|
|
138
154
|
if (response.status === 200) {
|
|
139
155
|
// The server didn't return 206 Partial Content, so it's not a range response
|
|
140
156
|
this._fullData = buffer;
|