Fix decoded audio always starting at 0, fix startTimestamp=0 for ranged media iterators (fixes #370)

This commit is contained in:
Vanilagy
2026-05-13 18:54:45 +02:00
parent 4c7b6d939b
commit a0574fa09a
4 changed files with 80 additions and 12 deletions
+26
View File
@@ -0,0 +1,26 @@
import { expect, test } from 'vitest';
import { Input } from '../../src/input.js';
import { UrlSource } from '../../src/source.js';
import { ALL_FORMATS } from '../../src/input-format.js';
import { assert } from '../../src/misc.js';
import { AudioSampleSink } from '../../src/media-sink.js';
// https://github.com/Vanilagy/mediabunny/issues/370
test('Negative audio timestamps are preserved', async () => {
using input = new Input({
source: new UrlSource('/edts.mp4'),
formats: ALL_FORMATS,
});
const track = await input.getPrimaryAudioTrack();
assert(track);
expect(await track.getFirstTimestamp()).toBeLessThan(0);
const sink = new AudioSampleSink(track);
for await (using sample of sink.samples()) {
expect(sample.timestamp).toBe(await track.getFirstTimestamp());
break;
}
});