Commit 437a7c5a authored by fotopoulou's avatar fotopoulou
Browse files

fix for issue 752 under CR_FIX_752_OSBA_MISCONFIG_MCT

parent a6c09e4c
Loading
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2740,7 +2740,9 @@ ivas_error preview_indices(
            /* Read SBA planar flag and SBA order */
            st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + IVAS_COMBINED_FORMAT_SIGNALLING_BITS] == 1 );

            if ( total_brate > IVAS_256k )
#ifdef CR_FIX_752_OSBA_MISCONFIG_MCT
            if ( total_brate >= IVAS_256k )
#endif
            {
                st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + IVAS_COMBINED_FORMAT_SIGNALLING_BITS + 2] == 1 );
                st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_EXTENDED + IVAS_COMBINED_FORMAT_SIGNALLING_BITS + 1] == 1 );
+2 −0
Original line number Diff line number Diff line
@@ -167,6 +167,8 @@
/* all switches in this category should start with "CR_" */



#define CR_FIX_752_OSBA_MISCONFIG_MCT                    /* FhG: issue 752: misconfiguration of MCT causes crashes for coding with sampling rate under 48kHz at 256kbps*/
/* ##################### End NON-BE CR switches ########################### */

/* ################## End DEVELOPMENT switches ######################### */
+4 −3
Original line number Diff line number Diff line
@@ -1531,11 +1531,12 @@ ivas_error ivas_init_decoder(
            st_ivas->hCPE[0]->hCoreCoder[0] = st_ivas->hSCE[0]->hCoreCoder[0]; /* don't allocate unnecessary core coder, simply point to core coder of SCE element */
            st_ivas->hCPE[0]->hCoreCoder[1] = NULL;
        }

#ifndef CR_FIX_752_OSBA_MISCONFIG_MCT
        if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
        {
            st_ivas->nchan_transport += st_ivas->nchan_ism;
        }
#endif
        if ( st_ivas->nCPE > 1 )
        {
            if ( ( error = create_mct_dec( st_ivas ) ) != IVAS_ERR_OK )
@@ -1543,12 +1544,12 @@ ivas_error ivas_init_decoder(
                return error;
            }
        }

#ifndef CR_FIX_752_OSBA_MISCONFIG_MCT
        if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
        {
            st_ivas->nchan_transport -= st_ivas->nchan_ism;
        }

#endif
        if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
        {
            if ( ( error = ivas_ism_metadata_dec_create( st_ivas, st_ivas->nchan_ism, temp_brate ) ) != IVAS_ERR_OK )
+24 −1
Original line number Diff line number Diff line
@@ -350,6 +350,12 @@ ivas_error create_mct_dec(
    if ( ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) || st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
        hMCT->nchan_out_woLFE = st_ivas->nchan_transport;
#ifdef CR_FIX_752_OSBA_MISCONFIG_MCT
        if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
        {
            hMCT->nchan_out_woLFE += st_ivas->nchan_ism;
        }
#endif
    }
    else if ( st_ivas->mc_mode == MC_MODE_MCT )
    {
@@ -366,6 +372,12 @@ ivas_error create_mct_dec(

    cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS;

#ifdef CR_FIX_752_OSBA_MISCONFIG_MCT
    if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
    {
        cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS;
    }
#endif
    /* indicate LFE for appropriate core-coder channel */
    for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ )
    {
@@ -460,6 +472,12 @@ ivas_error mct_dec_reconfigure(
        if ( ( st_ivas->ivas_format == MC_FORMAT && st_ivas->mc_mode == MC_MODE_PARAMMC ) || st_ivas->ivas_format == SBA_FORMAT || st_ivas->ivas_format == SBA_ISM_FORMAT )
        {
            hMCT->nchan_out_woLFE = st_ivas->nchan_transport;
#ifdef CR_FIX_752_OSBA_MISCONFIG_MCT
            if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
            {
                hMCT->nchan_out_woLFE += st_ivas->nchan_ism;
            }
#endif
        }
        else if ( st_ivas->mc_mode == MC_MODE_MCT )
        {
@@ -491,7 +509,12 @@ ivas_error mct_dec_reconfigure(
    }

    cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / hMCT->nchan_out_woLFE * CPE_CHANNELS;

#ifdef CR_FIX_752_OSBA_MISCONFIG_MCT
    if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
    {
        cp_bitrate = st_ivas->hDecoderConfig->ivas_total_brate / st_ivas->nchan_transport * CPE_CHANNELS;
    }
#endif
    /* set correct nominal bitrates and igf config already here, otherwise we
     * run into a number of problems */
    for ( cpe_id = 0; cpe_id < st_ivas->nCPE; cpe_id++ )
+8 −2
Original line number Diff line number Diff line
@@ -369,8 +369,9 @@ ivas_error ivas_sba_dec_reconfigure(
                return error;
            }


#ifndef CR_FIX_752_OSBA_MISCONFIG_MCT
            st_ivas->nchan_transport += st_ivas->nchan_ism;
#endif
            st_ivas->nCPE += ( st_ivas->nchan_ism + 1 ) >> 1;
        }
        else if ( ism_mode_old == ISM_SBA_MODE_DISC && st_ivas->ism_mode == ISM_MODE_NONE )
@@ -398,12 +399,16 @@ ivas_error ivas_sba_dec_reconfigure(
                    }
                }
            }
#ifndef CR_FIX_752_OSBA_MISCONFIG_MCT
            nchan_transport_old += st_ivas->nchan_ism;
#endif
            st_ivas->ism_mode = ISM_MODE_NONE;
        }
        else if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
        {
#ifndef CR_FIX_752_OSBA_MISCONFIG_MCT
            st_ivas->nchan_transport += st_ivas->nchan_ism;
#endif
            st_ivas->nCPE += ( st_ivas->nchan_ism + 1 ) >> 1;
            nCPE_old = st_ivas->nCPE;
            nchan_transport_old = st_ivas->nchan_transport;
@@ -414,7 +419,7 @@ ivas_error ivas_sba_dec_reconfigure(
    {
        return error;
    }

#ifndef CR_FIX_752_OSBA_MISCONFIG_MCT
    if ( st_ivas->ivas_format == SBA_ISM_FORMAT )
    {
        if ( st_ivas->ism_mode == ISM_SBA_MODE_DISC )
@@ -422,6 +427,7 @@ ivas_error ivas_sba_dec_reconfigure(
            st_ivas->nchan_transport -= st_ivas->nchan_ism;
        }
    }
#endif

    /*-----------------------------------------------------------------*
     * HP20 memories
Loading