mirror of
https://github.com/arcodange-org/mediabunny.git
synced 2026-10-02 13:23:51 +02:00
Move PacketReader elsewhere
This commit is contained in:
@@ -3,7 +3,6 @@ import { Input } from '../../src/input.js';
|
||||
import { BufferSource, UrlSource } from '../../src/source.js';
|
||||
import { ALL_FORMATS } from '../../src/input-format.js';
|
||||
import {
|
||||
audioBufferTransformer,
|
||||
AudioSampleCursor,
|
||||
canvasTransformer,
|
||||
VideoSampleCursor,
|
||||
@@ -1115,33 +1114,6 @@ test('Canvas transformer', async () => {
|
||||
await cursor2.close();
|
||||
});
|
||||
|
||||
test('AudioBuffer transformer', async () => {
|
||||
using input = new Input({
|
||||
source: new UrlSource('/trim-buck-bunny.mov'),
|
||||
formats: ALL_FORMATS,
|
||||
});
|
||||
|
||||
const audioTrack = (await input.getPrimaryAudioTrack())!;
|
||||
|
||||
const cursor = new AudioSampleCursor(audioTrack, {
|
||||
transform: audioBufferTransformer(),
|
||||
});
|
||||
|
||||
const firstSample = (await cursor.seekToFirst())!;
|
||||
expect(firstSample.buffer).toBeInstanceOf(AudioBuffer);
|
||||
expect(firstSample.timestamp).toBe(0);
|
||||
expect(firstSample.duration).toBeGreaterThan(0);
|
||||
expect(firstSample.buffer.duration).toBe(firstSample.duration);
|
||||
|
||||
const nextSample = (await cursor.next())!;
|
||||
expect(nextSample.buffer).toBeInstanceOf(AudioBuffer);
|
||||
expect(nextSample.timestamp).toBeGreaterThan(firstSample.timestamp);
|
||||
expect(nextSample.buffer).not.toBe(firstSample.buffer);
|
||||
expect(nextSample.buffer.duration).toBe(nextSample.duration);
|
||||
|
||||
await cursor.close();
|
||||
});
|
||||
|
||||
test('Unthrottled decoder', async () => {
|
||||
// While the decoder is throttled in practice, these tests simulate what happens when the decoder naturally reaches
|
||||
// the end of the encodable packets without having been stopped; in this case, we still expect the cursor to keep
|
||||
|
||||
@@ -9,7 +9,8 @@ import { CanvasSource, VideoSampleSource } from '../../src/media-source.js';
|
||||
import { canEncodeVideo, QUALITY_HIGH } from '../../src/encode.js';
|
||||
import { VideoSample } from '../../src/sample.js';
|
||||
import { Conversion } from '../../src/conversion.js';
|
||||
import { canvasTransformer, PacketCursor, PacketReader, VideoSampleCursor } from '../../src/cursors.js';
|
||||
import { canvasTransformer, PacketCursor, VideoSampleCursor } from '../../src/cursors.js';
|
||||
import { PacketReader } from '../../src/packet.js';
|
||||
|
||||
test('Can decode transparent video', async () => {
|
||||
using input = new Input({
|
||||
|
||||
@@ -8,7 +8,7 @@ import { Mp4OutputFormat } from '../../src/output-format.js';
|
||||
import { BufferTarget } from '../../src/target.js';
|
||||
import { Conversion } from '../../src/conversion.js';
|
||||
import { extractAvcNalUnits } from '../../src/codec-data.js';
|
||||
import { PacketReader } from '../../src/cursors.js';
|
||||
import { PacketReader } from '../../src/packet.js';
|
||||
|
||||
const __dirname = new URL('.', import.meta.url).pathname;
|
||||
|
||||
|
||||
@@ -4,10 +4,9 @@ import { BufferSource, FilePathSource } from '../../src/source.js';
|
||||
import path from 'node:path';
|
||||
import fs from 'node:fs';
|
||||
import { ADTS, ALL_FORMATS, FLAC, MP3, MP4, OGG, QTFF, WAVE, WEBM } from '../../src/input-format.js';
|
||||
import { PacketReader } from '../../src/cursors.js';
|
||||
import { InputAudioTrack, InputTrack } from '../../src/input-track.js';
|
||||
import { assert } from '../../src/misc.js';
|
||||
import { EncodedPacket } from '../../src/packet.js';
|
||||
import { EncodedPacket, PacketReader } from '../../src/packet.js';
|
||||
|
||||
const __dirname = new URL('.', import.meta.url).pathname;
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@ import { Output } from '../../src/output.js';
|
||||
import { BufferTarget } from '../../src/target.js';
|
||||
import { FlacOutputFormat } from '../../src/output-format.js';
|
||||
import { Conversion } from '../../src/conversion.js';
|
||||
import { PacketCursor, PacketReader } from '../../src/cursors.js';
|
||||
import { PacketCursor } from '../../src/cursors.js';
|
||||
import { PacketReader } from '../../src/packet.js';
|
||||
|
||||
const __dirname = new URL('.', import.meta.url).pathname;
|
||||
|
||||
|
||||
@@ -4,8 +4,9 @@ import { BufferSource, FilePathSource } from '../../src/source.js';
|
||||
import path from 'node:path';
|
||||
import fs from 'node:fs';
|
||||
import { ALL_FORMATS } from '../../src/input-format.js';
|
||||
import { PacketCursor, PacketReader } from '../../src/cursors.js';
|
||||
import { PacketCursor } from '../../src/cursors.js';
|
||||
import { promiseAllEnsureOrder } from '../../src/misc.js';
|
||||
import { PacketReader } from '../../src/packet.js';
|
||||
|
||||
const __dirname = new URL('.', import.meta.url).pathname;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user