Files

32 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.copyAudioTrack = void 0;
const log_1 = require("./log");
const copyAudioTrack = async ({ state, track, logLevel, onMediaStateUpdate, progressTracker, }) => {
const addedTrack = await state.addTrack({
type: 'audio',
codec: track.codecEnum,
numberOfChannels: track.numberOfChannels,
sampleRate: track.sampleRate,
codecPrivate: track.codecData?.data ?? null,
timescale: track.originalTimescale,
});
log_1.Log.verbose(logLevel, `Copying audio track ${track.trackId} as track ${addedTrack.trackNumber}. Timescale = ${track.originalTimescale}, codec = ${track.codecEnum} (${track.codec}) `);
return async (audioSample) => {
progressTracker.setPossibleLowestTimestamp(Math.min(audioSample.timestamp, audioSample.decodingTimestamp ?? Infinity));
await state.addSample({
chunk: audioSample,
trackNumber: addedTrack.trackNumber,
isVideo: false,
codecPrivate: track.codecData?.data ?? null,
});
onMediaStateUpdate?.((prevState) => {
return {
...prevState,
encodedAudioFrames: prevState.encodedAudioFrames + 1,
};
});
};
};
exports.copyAudioTrack = copyAudioTrack;