Add fix to ensure VideoFrames are output in timestamp order, fix atTimestamps iterator logic & leaks

This commit is contained in:
Vanilagy
2025-02-16 18:30:14 +01:00
parent 444770d4f8
commit a4c5ab4a8c
10 changed files with 154 additions and 104 deletions
+4 -1
View File
@@ -1008,6 +1008,7 @@ abstract class MatroskaTrackBacking<
type: SampleType,
timestamp: number,
duration: number,
sequenceNumber: number,
): Sample;
async getFirstSample(options: SampleRetrievalOptions) {
@@ -1223,6 +1224,7 @@ abstract class MatroskaTrackBacking<
block.isKeyFrame ? 'key' : 'delta',
timestamp,
duration,
cluster.dataStartPos + blockIndex,
);
this.sampleToClusterLocation.set(sample, { cluster, blockIndex });
@@ -1506,8 +1508,9 @@ class MatroskaVideoTrackBacking extends MatroskaTrackBacking<EncodedVideoSample>
type: SampleType,
timestamp: number,
duration: number,
sequenceNumber: number,
) {
return new EncodedVideoSample(data, type, timestamp, duration, byteLength);
return new EncodedVideoSample(data, type, timestamp, duration, sequenceNumber, byteLength);
}
}