UI: Move AAC encoder creation
This commit is contained in:
parent
897fbcfe1c
commit
faa3f263ae
@ -44,6 +44,29 @@ static void OBSStopRecording(void *data, calldata_t *params)
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
static OBSEncoder CreateAACEncoder(const char *name, size_t idx)
|
||||
{
|
||||
static const char *encoders[] = {
|
||||
"libfdk_aac",
|
||||
"ffmpeg_aac"
|
||||
};
|
||||
|
||||
OBSEncoder result;
|
||||
|
||||
for (const char *encoder : encoders) {
|
||||
result = obs_audio_encoder_create(encoder, name, nullptr, idx,
|
||||
nullptr);
|
||||
if (result) {
|
||||
obs_encoder_release(result);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
struct SimpleOutput : BasicOutputHandler {
|
||||
OBSEncoder aac;
|
||||
OBSEncoder h264;
|
||||
@ -82,14 +105,9 @@ SimpleOutput::SimpleOutput(OBSBasic *main_) : BasicOutputHandler(main_)
|
||||
throw "Failed to create h264 encoder (simple output)";
|
||||
obs_encoder_release(h264);
|
||||
|
||||
aac = obs_audio_encoder_create("libfdk_aac", "simple_aac", nullptr, 0,
|
||||
nullptr);
|
||||
if (!aac)
|
||||
aac = obs_audio_encoder_create("ffmpeg_aac", "simple_aac",
|
||||
nullptr, 0, nullptr);
|
||||
aac = CreateAACEncoder("simple_aac", 0);
|
||||
if (!aac)
|
||||
throw "Failed to create audio encoder (simple output)";
|
||||
obs_encoder_release(aac);
|
||||
|
||||
signal_handler_connect(obs_output_get_signal_handler(streamOutput),
|
||||
"start", OBSStartStreaming, this);
|
||||
@ -366,15 +384,10 @@ AdvancedOutput::AdvancedOutput(OBSBasic *main_) : BasicOutputHandler(main_)
|
||||
char name[9];
|
||||
sprintf(name, "adv_aac%d", i);
|
||||
|
||||
aacTrack[i] = obs_audio_encoder_create("libfdk_aac",
|
||||
name, nullptr, i, nullptr);
|
||||
if (!aacTrack[i])
|
||||
aacTrack[i] = obs_audio_encoder_create("ffmpeg_aac",
|
||||
name, nullptr, i, nullptr);
|
||||
aacTrack[i] = CreateAACEncoder(name, i);
|
||||
if (!aacTrack[i])
|
||||
throw "Failed to create audio encoder "
|
||||
"(advanced output)";
|
||||
obs_encoder_release(aacTrack[i]);
|
||||
}
|
||||
|
||||
signal_handler_connect(obs_output_get_signal_handler(streamOutput),
|
||||
|
Loading…
x
Reference in New Issue
Block a user