Commit aaa58d9d authored by emerit's avatar emerit
Browse files

initial version

parent c4f46c08
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -108,6 +108,7 @@
#define FIX_2003_CON_TCX_OVERFLOW                            /* FhG: Use a dynamic scaling factor for the synth buffer at the output of con_tcx_ivas_fx() */
#define OPT_TCXLTP_FILTER_LOOP                               /* FhG: optimize loop in tcx_ltp_synth_filter */
#define FIX_2602_NONBE_SAT_IN_SWB_TBE_SCALE                  /* Dolby/FhG: fix for issue 2026: Saturation in SWB TBE re-scaling function preventing StereoDownmix complexity job to complete */
#define FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX      /* Orange: 10ms Rendering: Assert in ivas_jbm_dec_render_fx() -> scale_sig32 */

/* #################### Start BASOP porting switches ############################ */

+27 −0
Original line number Diff line number Diff line
@@ -2308,26 +2308,41 @@ ivas_error ivas_jbm_dec_render_fx(

                FOR( i = 0; i < nchan_in; i++ )
                {
#ifdef FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
#else
                    scale_sig32( p_output_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    IF( st_ivas->hDecoderConfig->Opt_tsm )
                    {
                        scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    }
#endif
                }

                IF( EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) )
                {
#ifdef FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    IF( ( error = ivas_rend_crendProcessSubframesSplitBin( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, ( st_ivas->hSplitBinRend == NULL ) ? NULL : &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                           &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, p_tc_fx, p_tc_fx, *nSamplesRendered, output_Fs ) ) != IVAS_ERR_OK )
#else
                    IF( ( error = ivas_rend_crendProcessSubframesSplitBin( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, ( st_ivas->hSplitBinRend == NULL ) ? NULL : &st_ivas->hSplitBinRend->splitrend.multiBinPoseData, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                           &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, crendInPlaceRotation ? p_output_fx : p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs ) ) != IVAS_ERR_OK )
#endif
                    {
                        return error;
                    }
                }
                ELSE
                {
#ifdef FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    IF( NE_32( ( error = ivas_rend_crendProcessSubframe_fx( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                            &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, p_tc_fx, p_tc_fx, *nSamplesRendered, output_Fs, 0 ) ),
                               IVAS_ERR_OK ) )
#else
                    IF( NE_32( ( error = ivas_rend_crendProcessSubframe_fx( st_ivas->hCrendWrapper, st_ivas->intern_config, st_ivas->hOutSetup.output_config, st_ivas->hDecoderConfig, st_ivas->hCombinedOrientationData,
                                                                            &st_ivas->hIntSetup, st_ivas->hEFAPdata, st_ivas->hTcBuffer, crendInPlaceRotation ? p_output_fx : p_tc_fx, p_output_fx, *nSamplesRendered, output_Fs, 0 ) ),
                               IVAS_ERR_OK ) )
#endif
                    {
                        return error;
                    }
@@ -2344,16 +2359,24 @@ ivas_error ivas_jbm_dec_render_fx(
                        }
                    }

#ifdef FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    ivas_binaural_add_LFE_fx( st_ivas, *nSamplesRendered, p_tc_fx, p_tc_fx );
#else
                    ivas_binaural_add_LFE_fx( st_ivas, *nSamplesRendered, p_tc_fx, p_output_fx );
#endif
                }

                FOR( i = 0; i < nchan_in; i++ )
                {
#ifdef FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                    scale_sig32( p_tc_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
#else
                    scale_sig32( p_output_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                    IF( st_ivas->hDecoderConfig->Opt_tsm )
                    {
                        scale_sig32( p_tc_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                    }
#endif
                }
            }
            ELSE IF( EQ_32( st_ivas->renderer_type, RENDERER_MC ) )
@@ -2627,7 +2650,11 @@ ivas_error ivas_jbm_dec_render_fx(
        }
    }

#ifdef FIX_1785_NONBE_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
    ivas_syn_output_fx( p_tc_fx, output_q_factor, *nSamplesRendered, nchan_out_syn_output, data );
#else
    ivas_syn_output_fx( p_output_fx, output_q_factor, *nSamplesRendered, nchan_out_syn_output, data );
#endif

    *nSamplesAvailableNext = st_ivas->hTcBuffer->n_samples_available;
    move16();
+0 −7457

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −350

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −59840

File deleted.

Preview size limit exceeded, changes collapsed.

Loading