Remove input track descriptors, add async getters on tracks for everything, deprecate old sync getters

This commit is contained in:
Vanilagy
2026-04-10 16:23:17 +02:00
parent aa810fc433
commit 051578c2ca
42 changed files with 1386 additions and 1504 deletions
+28 -24
View File
@@ -26,7 +26,7 @@ test('reads AC-3 from MP4', async () => {
const audioTrack = (await input.getPrimaryAudioTrack())!;
const decoderConfig = (await audioTrack.getDecoderConfig())!;
expect(audioTrack.codec).toBe('ac3');
expect(await audioTrack.getCodec()).toBe('ac3');
expect(decoderConfig.description).toBeUndefined();
});
@@ -39,7 +39,7 @@ test('reads E-AC-3 from MP4', async () => {
const audioTrack = (await input.getPrimaryAudioTrack())!;
const decoderConfig = (await audioTrack.getDecoderConfig())!;
expect(audioTrack.codec).toBe('eac3');
expect(await audioTrack.getCodec()).toBe('eac3');
expect(decoderConfig.description).toBeUndefined();
});
@@ -51,8 +51,8 @@ test('reads and writes AC-3 in MPEG-TS', async () => {
const originalAudioTrack = (await originalInput.getPrimaryAudioTrack())!;
expect(originalAudioTrack.codec).toBe('ac3');
expect(originalAudioTrack.internalCodecId).toBe(0x81);
expect(await originalAudioTrack.getCodec()).toBe('ac3');
expect(await originalAudioTrack.getInternalCodecId()).toBe(0x81);
const output = new Output({
format: new MpegTsOutputFormat(),
@@ -69,10 +69,10 @@ test('reads and writes AC-3 in MPEG-TS', async () => {
const newAudioTrack = (await newInput.getPrimaryAudioTrack())!;
expect(newAudioTrack.codec).toBe('ac3');
expect(newAudioTrack.internalCodecId).toBe(0x81);
expect(newAudioTrack.numberOfChannels).toBe(originalAudioTrack.numberOfChannels);
expect(newAudioTrack.sampleRate).toBe(originalAudioTrack.sampleRate);
expect(await newAudioTrack.getCodec()).toBe('ac3');
expect(await newAudioTrack.getInternalCodecId()).toBe(0x81);
expect(await newAudioTrack.getNumberOfChannels()).toBe(await originalAudioTrack.getNumberOfChannels());
expect(await newAudioTrack.getSampleRate()).toBe(await originalAudioTrack.getSampleRate());
// Verify registration_descriptor is present
const buffer = new Uint8Array(output.target.buffer!);
@@ -94,8 +94,8 @@ test('reads and writes E-AC-3 in MPEG-TS', async () => {
const originalAudioTrack = (await originalInput.getPrimaryAudioTrack())!;
expect(originalAudioTrack.codec).toBe('eac3');
expect(originalAudioTrack.internalCodecId).toBe(0x87);
expect(await originalAudioTrack.getCodec()).toBe('eac3');
expect(await originalAudioTrack.getInternalCodecId()).toBe(0x87);
const output = new Output({
format: new MpegTsOutputFormat(),
@@ -112,10 +112,10 @@ test('reads and writes E-AC-3 in MPEG-TS', async () => {
const newAudioTrack = (await newInput.getPrimaryAudioTrack())!;
expect(newAudioTrack.codec).toBe('eac3');
expect(newAudioTrack.internalCodecId).toBe(0x87);
expect(newAudioTrack.numberOfChannels).toBe(originalAudioTrack.numberOfChannels);
expect(newAudioTrack.sampleRate).toBe(originalAudioTrack.sampleRate);
expect(await newAudioTrack.getCodec()).toBe('eac3');
expect(await newAudioTrack.getInternalCodecId()).toBe(0x87);
expect(await newAudioTrack.getNumberOfChannels()).toBe(await originalAudioTrack.getNumberOfChannels());
expect(await newAudioTrack.getSampleRate()).toBe(await originalAudioTrack.getSampleRate());
// Verify registration_descriptor is present
const buffer = new Uint8Array(output.target.buffer!);
@@ -168,6 +168,8 @@ test('AC-3 decoding', async () => {
const track = (await input.getPrimaryAudioTrack())!;
const { packetCount } = await track.computePacketStats();
const trackNumberOfChannels = await track.getNumberOfChannels();
const trackSampleRate = await track.getSampleRate();
const sink = new AudioSampleSink(track);
let sampleCount = 0;
@@ -177,8 +179,8 @@ test('AC-3 decoding', async () => {
expect(sample.timestamp).toBeCloseTo(nextTimestamp);
expect(sample.duration).toBe(0.032);
expect(sample.format).toBe('f32-planar');
expect(sample.numberOfChannels).toBe(track.numberOfChannels);
expect(sample.sampleRate).toBe(track.sampleRate);
expect(sample.numberOfChannels).toBe(trackNumberOfChannels);
expect(sample.sampleRate).toBe(trackSampleRate);
nextTimestamp += sample.duration;
sampleCount++;
@@ -197,6 +199,8 @@ test('E-AC-3 decoding', async () => {
const track = (await input.getPrimaryAudioTrack())!;
const { packetCount } = await track.computePacketStats();
const trackNumberOfChannels = await track.getNumberOfChannels();
const trackSampleRate = await track.getSampleRate();
const sink = new AudioSampleSink(track);
let sampleCount = 0;
@@ -206,8 +210,8 @@ test('E-AC-3 decoding', async () => {
expect(sample.timestamp).toBeCloseTo(nextTimestamp);
expect(sample.duration).toBe(0.032);
expect(sample.format).toBe('f32-planar');
expect(sample.numberOfChannels).toBe(track.numberOfChannels);
expect(sample.sampleRate).toBe(track.sampleRate);
expect(sample.numberOfChannels).toBe(trackNumberOfChannels);
expect(sample.sampleRate).toBe(trackSampleRate);
nextTimestamp += sample.duration;
sampleCount++;
@@ -263,9 +267,9 @@ test('AC-3 encoding', async () => {
});
const track = (await input.getPrimaryAudioTrack())!;
expect(track.codec).toBe('ac3');
expect(track.sampleRate).toBe(sampleRate);
expect(track.numberOfChannels).toBe(channels);
expect(await track.getCodec()).toBe('ac3');
expect(await track.getSampleRate()).toBe(sampleRate);
expect(await track.getNumberOfChannels()).toBe(channels);
const sink = new EncodedPacketSink(track);
let packetCount = 0;
@@ -311,9 +315,9 @@ test('E-AC-3 encoding', async () => {
});
const track = (await input.getPrimaryAudioTrack())!;
expect(track.codec).toBe('eac3');
expect(track.sampleRate).toBe(sampleRate);
expect(track.numberOfChannels).toBe(channels);
expect(await track.getCodec()).toBe('eac3');
expect(await track.getSampleRate()).toBe(sampleRate);
expect(await track.getNumberOfChannels()).toBe(channels);
const sink = new EncodedPacketSink(track);
let packetCount = 0;