Commit 73092f5b authored by emerit's avatar emerit
Browse files

Merge branch 'main' into 2089-Limiter_attack_and_release_constants_differ_from_float_version

parents ac872be2 20a0d424
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@
#define FIX_1999_TEMPORARY_DISABLE_DIST_ATT_CHECK            /* Eri: Issue 1999: Range check on float values of distance attenuation, while the float values are not propagated to this function. The test is not correct, but configurable distance attenuation is not used in Characterization.*/
#define OPT_IGF_GET_WHITE_SPEC_DATA                          /* FhG: optimized version of IGF_getWhiteSpectralData_ivas() */
#define FIX_2089_NONBE_LIMITER_CONSTS                        /* Orange : fix issuer 2089 : Limiter attack and release constants differ from float version */
#define FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX            /* Orange: 10ms Rendering: Assert in ivas_jbm_dec_render_fx() -> scale_sig32 */
#define FIX_2081_REVISE_H1_SCALING                           /* VA: accommodate for H1 overshoot that was causing assert in set_impule. Not BE with MASA on LTV with bitrate switching for only 2 instances */
#define TEMP_FIX_2088_MSAN_INIT_ERROR                        /* Eri: Temporary fix for Issue 2088 - MSAN error. Will come with later port of JBM+Split rendering update */

@@ -114,6 +115,7 @@
#define FIX_1384_MSAN_stereo_tcx_core_enc               /* VA: issue 1384: fix use-of-uninitialized value in stereo_tcx_core_enc() */
#define NONBE_1303_REND_GRANULARITY                     /* VA: issue 1303: Renderer granularity revision */
#define FIX_1384_MSAN_ivas_spar_dec_open                /* VA: issue 1386: fix use-of-uninitialized value in ivas_spar_dec_open() */
#define FIX_1388_MSAN_ivas_init_decoder                 /* VA: issue 1388: fix use-of-uninitialized value in ivas_init_decoder() */

// object-editing feature porting
#define OBJ_EDITING_API                                 /* object editing changes related to the API */
+49 −0
Original line number Diff line number Diff line
@@ -2370,6 +2370,26 @@ ivas_error ivas_jbm_dec_render_fx(
                *st_ivas->hCrendWrapper->p_io_qfactor = exp;
                move16();

#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                IF( crendInPlaceRotation )
                {
                    FOR( i = 0; i < nchan_in; i++ )
                    {
                        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
                        }
                    }
                }
                ELSE
                {
                    FOR( i = 0; i < nchan_in; i++ )
                    {
                        scale_sig32( p_tc_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
                    }
                }
#else
                FOR( i = 0; i < nchan_in; i++ )
                {
                    scale_sig32( p_output_fx[i], *nSamplesRendered, negate( sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ) ); // Q = *st_ivas->hCrendWrapper->p_io_qfactor
@@ -2378,6 +2398,7 @@ ivas_error 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
                    }
                }
#endif

                IF( EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_CODED ) || EQ_32( output_config, IVAS_AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) )
                {
@@ -2411,6 +2432,33 @@ ivas_error ivas_jbm_dec_render_fx(
                    ivas_binaural_add_LFE_fx( st_ivas, *nSamplesRendered, p_tc_fx, p_output_fx );
                }

#ifdef FIX_1785_ASSERT_IN_IVAS_JBM_DEC_RENDER_FX
                IF( crendInPlaceRotation )
                {
                    n = nchan_in;
                }
                ELSE
                {
                    n = nchan_out;
                }
                move16();

                FOR( i = 0; i < n; i++ )
                {
                    scale_sig32( p_output_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                }

                IF( st_ivas->hDecoderConfig->Opt_tsm && crendInPlaceRotation )
                {
                    n = 0;
                    move16();
                }

                FOR( i = n; i < nchan_in; i++ )
                {
                    scale_sig32( p_tc_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
                }
#else
                FOR( i = 0; i < nchan_in; i++ )
                {
                    scale_sig32( p_output_fx[i], *nSamplesRendered, sub( Q11, *st_ivas->hCrendWrapper->p_io_qfactor ) ); // Q11
@@ -2419,6 +2467,7 @@ ivas_error ivas_jbm_dec_render_fx(
                        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 ) )
            {
+15 −0
Original line number Diff line number Diff line
@@ -1003,12 +1003,25 @@ ivas_error IVAS_DEC_FeedFrame_Serial(
{
    ivas_error error;

#ifdef FIX_1388_MSAN_ivas_init_decoder
    test();
    IF( hIvasDec == NULL || hIvasDec->st_ivas == NULL )
    {
        return IVAS_ERR_UNEXPECTED_NULL_POINTER;
    }
#endif

    IF( !hIvasDec->isInitialized )
    {
        /* Once first frame is fed, finish initialization in EVS Mono.
         * In IVAS mode, initialization is done in ivas_dec(). */
        IF( EQ_16( hIvasDec->mode, IVAS_DEC_MODE_EVS ) )
        {
#ifdef FIX_1388_MSAN_ivas_init_decoder
            hIvasDec->st_ivas->hDecoderConfig->ivas_total_brate = ACELP_8k00;
            move32();

#endif
            IF( NE_32( ( error = ivas_init_decoder_fx( hIvasDec->st_ivas ) ), IVAS_ERR_OK ) )
            {
                return error;
@@ -1034,11 +1047,13 @@ ivas_error IVAS_DEC_FeedFrame_Serial(
                hIvasDec->st_ivas->hDecoderConfig->ivas_total_brate = imult3216( hIvasDec->hVoIP->hCurrentDataUnit->dataSize, FRAMES_PER_SEC );
                move32();
            }
#ifndef FIX_1388_MSAN_ivas_init_decoder
            ELSE
            {
                hIvasDec->st_ivas->hDecoderConfig->ivas_total_brate = ACELP_8k00;
                move32();
            }
#endif
            hIvasDec->isInitialized = true;
            move16();
        }
+0 −7457

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −350

File deleted.

Preview size limit exceeded, changes collapsed.

Loading