52 lines
2.2 KiB
JavaScript
52 lines
2.2 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.makeAudioTrackHandler = void 0;
|
|
const can_copy_audio_track_1 = require("./can-copy-audio-track");
|
|
const copy_audio_track_1 = require("./copy-audio-track");
|
|
const default_on_audio_track_handler_1 = require("./default-on-audio-track-handler");
|
|
const get_default_audio_codec_1 = require("./get-default-audio-codec");
|
|
const reencode_audio_track_1 = require("./reencode-audio-track");
|
|
const makeAudioTrackHandler = ({ state, defaultAudioCodec: audioCodec, controller, abortConversion, onMediaStateUpdate, onAudioTrack, logLevel, outputContainer, onAudioData, progressTracker, }) => async ({ track, container: inputContainer }) => {
|
|
const canCopyTrack = (0, can_copy_audio_track_1.canCopyAudioTrack)({
|
|
inputCodec: track.codecEnum,
|
|
outputContainer,
|
|
inputContainer,
|
|
outputAudioCodec: audioCodec,
|
|
});
|
|
const audioOperation = await (onAudioTrack ?? default_on_audio_track_handler_1.defaultOnAudioTrackHandler)({
|
|
defaultAudioCodec: audioCodec ?? (0, get_default_audio_codec_1.getDefaultAudioCodec)({ container: outputContainer }),
|
|
track,
|
|
logLevel,
|
|
outputContainer,
|
|
inputContainer,
|
|
canCopyTrack,
|
|
});
|
|
if (audioOperation.type === 'drop') {
|
|
return null;
|
|
}
|
|
if (audioOperation.type === 'fail') {
|
|
throw new Error(`Audio track with ID ${track.trackId} resolved with {"type": "fail"}. This could mean that this audio track could neither be copied to the output container or re-encoded. You have the option to drop the track instead of failing it: https://remotion.dev/docs/webcodecs/track-transformation`);
|
|
}
|
|
if (audioOperation.type === 'copy') {
|
|
return (0, copy_audio_track_1.copyAudioTrack)({
|
|
logLevel,
|
|
onMediaStateUpdate,
|
|
state,
|
|
track,
|
|
progressTracker,
|
|
});
|
|
}
|
|
return (0, reencode_audio_track_1.reencodeAudioTrack)({
|
|
abortConversion,
|
|
controller,
|
|
logLevel,
|
|
onMediaStateUpdate,
|
|
audioOperation,
|
|
onAudioData,
|
|
state,
|
|
track,
|
|
progressTracker,
|
|
});
|
|
};
|
|
exports.makeAudioTrackHandler = makeAudioTrackHandler;
|