Commit 7e629650 authored by lintervo's avatar lintervo
Browse files

Merge branch 'main' into 1680_basop_port_object_editing_implementation

parents 8c68d554 20a0d424
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -249,6 +249,9 @@ typedef enum
/* format signaling in SID frames */
#define SID_FORMAT_NBITS                        3                           /* Bit 0 | Bit 1 | Bit 2 */
                                                                            /*-------|-------|------ */
#ifdef FIX_1384_MSAN_ivas_spar_dec_open
#define SID_FORMAT_NONE                         (-0x1)                      /*    n/a|    n/a|    n/a*/
#endif
#define SID_DFT_STEREO                          0x0                         /*      0|      0|     0 */
#define SID_MDCT_STEREO                         0x1                         /*      1|      0|     0 */
#define SID_ISM                                 0x2                         /*      0|      1|     0 */
+3 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@
#define FIX_1990_SANITIZER_IN_REVERB_LOAD                    /* Nokia: Fix issue part of issue 1990 by introducing missing free of structure - keep until #2059 is addressed */
#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_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 */

@@ -112,6 +113,8 @@
#define NONBE_1293_CRASH_FIRST_FRAME_LOST               /* VA: issue 1293: fix G.192 decoder crash when first frame is lost */
#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_INTERFACE                           /* Interface for object editing */
+4 −0
Original line number Diff line number Diff line
@@ -1385,6 +1385,10 @@ ivas_error ivas_init_decoder_front(
    move32();
    st_ivas->mc_mode = MC_MODE_NONE;
    move32();
#ifdef FIX_1384_MSAN_ivas_spar_dec_open
    st_ivas->sid_format = SID_FORMAT_NONE;
    move16();
#endif
    st_ivas->sba_dirac_stereo_flag = 0;
    move16();

+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
@@ -1006,12 +1006,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;
@@ -1037,11 +1050,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();
        }
Loading