mirror of
https://github.com/arcodange-org/mediabunny.git
synced 2026-09-27 02:43:48 +02:00
Floor Matroska default packet duration (fixes #170)
This commit is contained in:
@@ -15,6 +15,31 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
const videoTrack = await input.getPrimaryVideoTrack();
|
const videoTrack = await input.getPrimaryVideoTrack();
|
||||||
|
const sink = new Mediabunny.EncodedPacketSink(videoTrack);
|
||||||
|
|
||||||
|
for await (const packet of sink.packets()) {
|
||||||
|
console.log(packet.timestamp, packet.duration, packet.timestamp + packet.duration);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
const sink = new Mediabunny.VideoSampleSink(videoTrack);
|
||||||
|
|
||||||
|
for await (const sample of sink.samples()) {
|
||||||
|
console.log(sample.timestamp, sample.duration);
|
||||||
|
sample.close();
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
const sink = new Mediabunny.EncodedPacketSink(videoTrack);
|
||||||
|
|
||||||
|
for await (const packet of sink.packets()) {
|
||||||
|
console.log(packet.timestamp, packet.timestamp + packet.duration);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
const sink = new Mediabunny.VideoSampleSink(videoTrack);
|
const sink = new Mediabunny.VideoSampleSink(videoTrack);
|
||||||
|
|
||||||
console.log(await videoTrack.getDecoderConfig())
|
console.log(await videoTrack.getDecoderConfig())
|
||||||
@@ -30,6 +55,7 @@
|
|||||||
for await (const sample of sink.samples()) {
|
for await (const sample of sink.samples()) {
|
||||||
console.log(sample);
|
console.log(sample);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
let total = 0;
|
let total = 0;
|
||||||
|
|||||||
@@ -1181,8 +1181,9 @@ export class MatroskaDemuxer extends Demuxer {
|
|||||||
case EBMLId.DefaultDuration: {
|
case EBMLId.DefaultDuration: {
|
||||||
if (!this.currentTrack) break;
|
if (!this.currentTrack) break;
|
||||||
|
|
||||||
|
// Floored to reduce chance of overlapping packets (https://github.com/Vanilagy/mediabunny/issues/170)
|
||||||
this.currentTrack.defaultDuration
|
this.currentTrack.defaultDuration
|
||||||
= this.currentTrack.segment.timestampFactor * readUnsignedInt(slice, size) / 1e9;
|
= Math.floor(this.currentTrack.segment.timestampFactor * readUnsignedInt(slice, size) / 1e9);
|
||||||
}; break;
|
}; break;
|
||||||
|
|
||||||
case EBMLId.Name: {
|
case EBMLId.Name: {
|
||||||
|
|||||||
Reference in New Issue
Block a user