obs-libfdk: Set bitstream to ADTS for mpegts output

This sets the aac bitstream to ADTS for the mpegts output.
This fixes a bug with mpegts ouput where the avformat muxer issues
an error with fdk-aac encoder.

Signed-off-by: pkv <pkv@obsproject.com>
This commit is contained in:
pkv 2022-03-17 20:31:34 +01:00 committed by Jim
parent dde2fe209a
commit c8b2db9760
2 changed files with 6 additions and 1 deletions

View File

@ -96,6 +96,8 @@ static void *libfdk_create(obs_data_t *settings, obs_encoder_t *encoder)
int bitrate = (int)obs_data_get_int(settings, "bitrate") * 1000;
int afterburner = obs_data_get_bool(settings, "afterburner") ? 1 : 0;
audio_t *audio = obs_encoder_audio(encoder);
bool set_to_ADTS = obs_data_get_bool(settings, "set_to_ADTS");
int transmux = set_to_ADTS ? 2 : 0;
int mode = 0;
AACENC_ERROR err;
@ -159,7 +161,9 @@ static void *libfdk_create(obs_data_t *settings, obs_encoder_t *encoder)
aacEncoder_SetParam(enc->fdkhandle, AACENC_BITRATEMODE, 0));
CHECK_LIBFDK(
aacEncoder_SetParam(enc->fdkhandle, AACENC_BITRATE, bitrate));
CHECK_LIBFDK(aacEncoder_SetParam(enc->fdkhandle, AACENC_TRANSMUX, 0));
CHECK_LIBFDK(
aacEncoder_SetParam(enc->fdkhandle, AACENC_TRANSMUX, transmux));
CHECK_LIBFDK(aacEncoder_SetParam(enc->fdkhandle, AACENC_AFTERBURNER,
afterburner));

View File

@ -122,6 +122,7 @@ static void rtmp_custom_apply_settings(void *data, obs_data_t *video_settings,
strncmp(service->server, RTMP_PROTOCOL, strlen(RTMP_PROTOCOL)) !=
0) {
obs_data_set_bool(video_settings, "repeat_headers", true);
obs_data_set_bool(audio_settings, "set_to_ADTS", true);
}
}