diff --git a/src/decode.ts b/src/decode.ts index c1caaf7..76ed14d 100644 --- a/src/decode.ts +++ b/src/decode.ts @@ -212,6 +212,8 @@ export class VideoDecoderWrapper extends DecoderWrapper { } decode(packet: EncodedPacket) { + assert(!packet.isMetadataOnly); + if (this.codec === 'hevc' && this.currentPacketIndex > 0 && !this.raslSkipped) { if (this.hasHevcRaslPicture(packet.data)) { return; // Drop @@ -989,6 +991,8 @@ export class AudioDecoderWrapper extends DecoderWrapper { } decode(packet: EncodedPacket) { + assert(!packet.isMetadataOnly); + if (this.customDecoder) { this.customDecoderQueueSize++; void this.customDecoderCallSerializer diff --git a/src/index.ts b/src/index.ts index 8fc3cd6..ccf79ae 100644 --- a/src/index.ts +++ b/src/index.ts @@ -96,6 +96,7 @@ export { SUBTITLE_CODECS, } from './codec'; export { + VideoDecoderWrapper, canDecode, canDecodeVideo, canDecodeAudio, diff --git a/src/packet.ts b/src/packet.ts index d4902b7..9a74538 100644 --- a/src/packet.ts +++ b/src/packet.ts @@ -477,9 +477,9 @@ export class PacketReader { return packet; } - getNext(from: EncodedPacket, options: PacketRetrievalOptions = {}): MaybePromise { - if (!(from instanceof EncodedPacket)) { - throw new TypeError('from must be an EncodedPacket.'); + getNext(packet: EncodedPacket, options: PacketRetrievalOptions = {}): MaybePromise { + if (!(packet instanceof EncodedPacket)) { + throw new TypeError('packet must be an EncodedPacket.'); } validatePacketRetrievalOptions(options); @@ -488,7 +488,7 @@ export class PacketReader { } const result = new ResultValue(); - const promise = this.track._backing.getNextPacket(result, from, options); + const promise = this.track._backing.getNextPacket(result, packet, options); if (result.pending) { return promise.then(() => this._maybeVerifyPacketType(result.value, options)); @@ -497,9 +497,9 @@ export class PacketReader { } } - getNextKey(from: EncodedPacket, options: PacketRetrievalOptions = {}): MaybePromise { - if (!(from instanceof EncodedPacket)) { - throw new TypeError('from must be an EncodedPacket.'); + getNextKey(packet: EncodedPacket, options: PacketRetrievalOptions = {}): MaybePromise { + if (!(packet instanceof EncodedPacket)) { + throw new TypeError('packet must be an EncodedPacket.'); } validatePacketRetrievalOptions(options); @@ -508,11 +508,11 @@ export class PacketReader { } if (options.verifyKeyPackets) { - return this._getNextKeyVerified(from, options); + return this._getNextKeyVerified(packet, options); } const result = new ResultValue(); - const promise = this.track._backing.getNextKeyPacket(result, from, options); + const promise = this.track._backing.getNextKeyPacket(result, packet, options); if (result.pending) { return promise.then(() => result.value); @@ -522,11 +522,11 @@ export class PacketReader { } private async _getNextKeyVerified( - from: EncodedPacket, + packet: EncodedPacket, options: PacketRetrievalOptions, ): Promise { const result = new ResultValue(); - const promise = this.track._backing.getNextKeyPacket(result, from, options); + const promise = this.track._backing.getNextKeyPacket(result, packet, options); if (result.pending) await promise; const nextPacket = result.value;