Add .gitignore to exclude all node packages and lock files
This commit is contained in:
Generated
Vendored
+89
@@ -0,0 +1,89 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.createAudioEncoder = void 0;
|
||||
const media_parser_1 = require("@remotion/media-parser");
|
||||
const io_synchronizer_1 = require("./io-manager/io-synchronizer");
|
||||
const wav_audio_encoder_1 = require("./wav-audio-encoder");
|
||||
const createAudioEncoder = ({ onChunk, onError, codec, controller, config: audioEncoderConfig, logLevel, onNewAudioSampleRate, }) => {
|
||||
if (controller._internals._mediaParserController._internals.signal.aborted) {
|
||||
throw new media_parser_1.MediaParserAbortError('Not creating audio encoder, already aborted');
|
||||
}
|
||||
const ioSynchronizer = (0, io_synchronizer_1.makeIoSynchronizer)({
|
||||
logLevel,
|
||||
label: 'Audio encoder',
|
||||
controller,
|
||||
});
|
||||
if (codec === 'wav') {
|
||||
return (0, wav_audio_encoder_1.getWaveAudioEncoder)({
|
||||
onChunk,
|
||||
controller,
|
||||
config: audioEncoderConfig,
|
||||
ioSynchronizer,
|
||||
});
|
||||
}
|
||||
const encoder = new AudioEncoder({
|
||||
output: async (chunk) => {
|
||||
try {
|
||||
await onChunk(chunk);
|
||||
}
|
||||
catch (err) {
|
||||
onError(err);
|
||||
}
|
||||
ioSynchronizer.onOutput(chunk.timestamp);
|
||||
},
|
||||
error(error) {
|
||||
onError(error);
|
||||
},
|
||||
});
|
||||
const close = () => {
|
||||
controller._internals._mediaParserController._internals.signal.removeEventListener('abort',
|
||||
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
||||
onAbort);
|
||||
if (encoder.state === 'closed') {
|
||||
return;
|
||||
}
|
||||
encoder.close();
|
||||
};
|
||||
const onAbort = () => {
|
||||
close();
|
||||
};
|
||||
controller._internals._mediaParserController._internals.signal.addEventListener('abort', onAbort);
|
||||
if (codec !== 'opus' && codec !== 'aac') {
|
||||
throw new Error('Only `codec: "opus"` and `codec: "aac"` is supported currently');
|
||||
}
|
||||
const wantedSampleRate = audioEncoderConfig.sampleRate;
|
||||
const encodeFrame = (audioData) => {
|
||||
if (encoder.state === 'closed') {
|
||||
return;
|
||||
}
|
||||
if (encoder.state === 'unconfigured') {
|
||||
if (audioData.sampleRate === wantedSampleRate) {
|
||||
encoder.configure(audioEncoderConfig);
|
||||
}
|
||||
else {
|
||||
encoder.configure({
|
||||
...audioEncoderConfig,
|
||||
sampleRate: audioData.sampleRate,
|
||||
});
|
||||
onNewAudioSampleRate(audioData.sampleRate);
|
||||
}
|
||||
}
|
||||
encoder.encode(audioData);
|
||||
ioSynchronizer.inputItem(audioData.timestamp);
|
||||
};
|
||||
return {
|
||||
encode: (audioData) => {
|
||||
encodeFrame(audioData);
|
||||
},
|
||||
waitForFinish: async () => {
|
||||
await encoder.flush();
|
||||
await ioSynchronizer.waitForQueueSize(0);
|
||||
},
|
||||
close,
|
||||
flush: async () => {
|
||||
await encoder.flush();
|
||||
},
|
||||
ioSynchronizer,
|
||||
};
|
||||
};
|
||||
exports.createAudioEncoder = createAudioEncoder;
|
||||
Reference in New Issue
Block a user