32 lines
1.3 KiB
JavaScript
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;
|