From 11970675c612f46be424dfe9006db75be94c0c3a Mon Sep 17 00:00:00 2001 From: Vanilagy <1696106+Vanilagy@users.noreply.github.com> Date: Fri, 5 Dec 2025 23:00:40 +0100 Subject: [PATCH] Slightly adjust validated key packet retrieval logic --- src/media-sink.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/media-sink.ts b/src/media-sink.ts index 179b024..b94a38f 100644 --- a/src/media-sink.ts +++ b/src/media-sink.ts @@ -201,9 +201,10 @@ export class EncodedPacketSink { } const packet = await this._track._backing.getKeyPacket(timestamp, options); - if (!packet || packet.type === 'delta') { + if (!packet) { return packet; } + assert(packet.type === 'key'); const determinedType = await this._track.determinePacketType(packet); if (determinedType === 'delta') { @@ -235,9 +236,10 @@ export class EncodedPacketSink { } const nextPacket = await this._track._backing.getNextKeyPacket(packet, options); - if (!nextPacket || nextPacket.type === 'delta') { + if (!nextPacket) { return nextPacket; } + assert(nextPacket.type === 'key'); const determinedType = await this._track.determinePacketType(nextPacket); if (determinedType === 'delta') { @@ -474,9 +476,6 @@ export abstract class BaseMediaSampleSink< const packetSink = this._createPacketSink(); const keyPacket = await packetSink.getKeyPacket(startTimestamp, { verifyKeyPackets: true }) ?? await packetSink.getFirstPacket(); - if (!keyPacket) { - return; - } let currentPacket: EncodedPacket | null = keyPacket; @@ -498,7 +497,7 @@ export abstract class BaseMediaSampleSink< } } - const packets = packetSink.packets(keyPacket, endPacket); + const packets = packetSink.packets(keyPacket ?? undefined, endPacket); await packets.next(); // Skip the start packet as we already have it while (currentPacket && !ended && !this._track.input._disposed) {