Drain -> Sink

This commit is contained in:
David Payr
2025-01-08 14:26:49 +01:00
parent dc81afa1d9
commit b6b82084d4
7 changed files with 56 additions and 56 deletions
+4 -4
View File
@@ -55,7 +55,7 @@
const audioTrack = await input.getPrimaryAudioTrack();
const videoTrack = await input.getPrimaryVideoTrack();
const drain = new Metamuxer.EncodedAudioSampleDrain(audioTrack);
const sink = new Metamuxer.EncodedAudioSampleSink(audioTrack);
const decoderConfig = await audioTrack.getDecoderConfig();
const sampleSource = new Metamuxer.EncodedAudioSampleSource(await audioTrack.getCodec());
@@ -72,7 +72,7 @@
/*
for await (const sample of drain.samples()) {
for await (const sample of sink.samples()) {
//console.log(sample.timestamp);
//sample.timestamp *= 2;
//console.log(sample);
@@ -80,13 +80,13 @@
await sampleSource.digest(sample, { decoderConfig });
}
*/
for await (const { data, timestamp } of new Metamuxer.AudioDataDrain(audioTrack).data()) {
for await (const { data, timestamp } of new Metamuxer.AudioDataSink(audioTrack).data()) {
//console.log("wow", data.timestamp);
//console.log(sample)
await audioDataSource.digest(data);
}
/*
for await (const sample of new Metamuxer.EncodedVideoSampleDrain(videoTrack).samples()) {
for await (const sample of new Metamuxer.EncodedVideoSampleSink(videoTrack).samples()) {
//console.log(sample)
await videoSampleSource.digest(sample, { decoderConfig: videoDecoderConfig });
}
+4 -4
View File
@@ -68,8 +68,8 @@ durationElement.textContent = formatSeconds(totalDuration);
playerDiv.style.display = 'flex';
const videoDrain = videoTrack && new Metamuxer.CanvasDrain(videoTrack);
const audioDrain = audioTrack && new Metamuxer.AudioBufferDrain(audioTrack);
const videoSink = videoTrack && new Metamuxer.CanvasSink(videoTrack);
const audioSink = audioTrack && new Metamuxer.AudioBufferSink(audioTrack);
let startTime = null;
let playing = false;
@@ -92,7 +92,7 @@ function getPlaybackTime() {
function play() {
audioBufferIterator?.return();
audioBufferIterator = audioDrain?.buffers(getPlaybackTime());
audioBufferIterator = audioSink?.buffers(getPlaybackTime());
startTime = audioContext.currentTime;
playing = true;
runAudioIterator();
@@ -135,7 +135,7 @@ async function seek() {
await videoFrameIterator?.return();
videoFrameIterator = videoDrain.canvases(getPlaybackTime());
videoFrameIterator = videoSink.canvases(getPlaybackTime());
const newCurrentFrame = (await videoFrameIterator.next()).value;
const newNextFrame = (await videoFrameIterator.next()).value;