Commit 06eef3f0 authored by TYAGIRIS's avatar TYAGIRIS
Browse files

partial porting of MR 2052

parent ffd5f0b3
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -127,7 +127,7 @@
#define NONBE_1325_TD_STEREO_QUANT_LSF_SEC              /* Nokia: issue 1325: fix for usage of active_cnt variable in TD stereo LSFQ */
#define NONBE_1329_FIX_OSBA_CRASH                       /* FhG: issue 1329: prevent assert when bit budget is low*/
#define NONBE_FIX_1128_OSBA_EXT_OUTPUT_ORDER            /* FhG: issue 1128: set output ambisonics order to input order for EXT output  */

#define NONBE_FIX_1297_SPAR_JBM_MEM_SAN                 /*Dolby: issue 1297, SPAR + JBM + BR switch memory sanitizer*/ 

/* #################### End BASOP porting switches ############################ */

+93 −68
Original line number Diff line number Diff line
@@ -2895,13 +2895,28 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
                }
            }
        }
        ELSE IF( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) )
        {
        ELSE IF( EQ_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) ){
#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN
            IF( EQ_32( ism_mode_old, ISM_SBA_MODE_DISC ) ){
#endif
                Word32 * tc_local_fx[MAX_TRANSPORT_CHANNELS];
        Word16 last_spar_md_idx;
        Word16 last_dirac_md_idx;
        UWord16 nSamplesAvailableNext;

#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN
        ISM_MODE ism_mode_orig;
        RENDERER_TYPE renderer_type_orig;
        Word32 ivas_total_brate;
        ivas_total_brate = st_ivas->hDecoderConfig->ivas_total_brate;
        renderer_type_orig = st_ivas->renderer_type;
        ism_mode_orig = st_ivas->ism_mode;
        move32();
        st_ivas->ism_mode = ism_mode_old;
        st_ivas->renderer_type = renderer_type_old;
        st_ivas->hDecoderConfig->ivas_total_brate = st_ivas->hDecoderConfig->last_ivas_total_brate;
#endif

        last_spar_md_idx = st_ivas->hSpar->render_to_md_map[st_ivas->hSpar->slots_rendered - 1];
        last_dirac_md_idx = st_ivas->hSpatParamRendCom->render_to_md_map[st_ivas->hSpatParamRendCom->slots_rendered - 1];
        move16();
@@ -2909,7 +2924,11 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
        /* copy from ISM delay buffer to the correct place in tcs */
        FOR( ch_idx = 0; ch_idx < st_ivas->nchan_ism; ch_idx++ )
        {
#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN
            tc_local_fx[ch_idx] = &st_ivas->hTcBuffer->tc_fx[ch_idx][hTcBuffer->n_samples_rendered];
#else
            tc_local_fx[ch_idx] = &st_ivas->hTcBuffer->tc_fx[ch_idx + 2][hTcBuffer->n_samples_rendered];
#endif
            Copy32( st_ivas->hSbaIsmData->delayBuffer_fx[ch_idx], tc_local_fx[ch_idx], st_ivas->hSbaIsmData->delayBuffer_size );
        }

@@ -2944,6 +2963,12 @@ ivas_error ivas_jbm_dec_flush_renderer_fx(
        {
            return error;
        }
#ifdef NONBE_FIX_1297_SPAR_JBM_MEM_SAN
        st_ivas->ism_mode = ism_mode_orig;
        st_ivas->renderer_type = renderer_type_orig;
        st_ivas->hDecoderConfig->ivas_total_brate = ivas_total_brate;
    }
#endif
}
ELSE
{