diff --git a/apps/decoder.c b/apps/decoder.c index f6b55ba00f5851cf9aa35d911047ba98f45b2059..36c454de43ae7701031c408244e53a696a223e2d 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -487,6 +487,13 @@ int main( fprintf( stderr, "\nConfigure failed: %s\n\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } + +#ifdef FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR + if ( !arg.renderConfigEnabled && ( arg.renderFramesize != asked_frame_size ) ) + { + fprintf( stderr, "\nChanged render framesize, only 20ms are allowed for non-0dof split rendering!\n" ); + } +#endif } /*------------------------------------------------------------------------------------------* diff --git a/lib_com/options.h b/lib_com/options.h index de58cbabd78771d230e958b9b2ed6e026086fb9d..fdc8f3ad6a65ed8a11f60196cfe272eb5b4f8dc3 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -173,6 +173,7 @@ #define FIX_2287_MCT_MDCT_STEREO_DATA_MALLOC_SIZE /* FhG: correct allocation size for STEREO_MDCT_DEC_DATA struct */ #define FIX_2271_OOB_INDEXING_IN_PIT_OL2 /* VA: Fix for issue 2271, to silence clang18 */ #define FIX_2273_OOB_INDEXING_IN_PIT_FR4 /* VA: Fix to silence clang on ptr init */ +#define FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR /* Dolby: Fix for issue 1449: renderer frame size unclear in ISAR */ /* #################### End BE switches ################################## */ diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 17342a454a8dbd8c28acdf6ade2e3088f8eb1236..64e025d47f0408c8ce6cab2b37801ede3b830643 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -2183,6 +2183,11 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( /* convert to int16 with limiting for BINAURAL_SPLIT_PCM */ if ( pcm_out_flag ) { +#ifdef FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR +#ifndef DISABLE_LIMITER + ivas_limiter_dec( st_ivas->hLimiter, p_head_pose_buf, st_ivas->hDecoderConfig->nchan_out, numSamplesPerChannelToOutput, st_ivas->BER_detect ); +#endif +#else if ( st_ivas->hDecoderConfig->render_framesize == IVAS_RENDER_FRAMESIZE_5MS ) { #ifndef DISABLE_LIMITER @@ -2193,6 +2198,7 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( { ivas_limiter_dec( st_ivas->hLimiter, p_head_pose_buf, st_ivas->hDecoderConfig->nchan_out, numSamplesPerChannelToOutput, st_ivas->BER_detect ); } +#endif #ifdef DEBUGGING st_ivas->noClipping += @@ -4118,6 +4124,11 @@ static ivas_error ivas_dec_voip_get_samples_common( /* Synthesise PCM output if split PCM */ if ( st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) { +#ifdef FIX_1449_RENDERER_FRAME_SIZE_UNCLEAR_IN_ISAR +#ifndef DISABLE_LIMITER + ivas_limiter_dec( st_ivas->hLimiter, p_head_pose_buf, st_ivas->hDecoderConfig->nchan_out, *nSamplesRendered, st_ivas->BER_detect ); +#endif +#else if ( st_ivas->hDecoderConfig->render_framesize == IVAS_RENDER_FRAMESIZE_5MS ) { #ifndef DISABLE_LIMITER @@ -4128,6 +4139,7 @@ static ivas_error ivas_dec_voip_get_samples_common( { ivas_limiter_dec( st_ivas->hLimiter, p_head_pose_buf, st_ivas->hDecoderConfig->nchan_out, *nSamplesRendered, st_ivas->BER_detect ); } +#endif #ifdef DEBUGGING st_ivas->noClipping +=