Commit 61121c63 authored by vaclav's avatar vaclav
Browse files

- add MC_BITRATE_SWITCHING_CLDFB

parent 0efede34
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -169,10 +169,12 @@
#define MC_BITRATE_SWITCHING                            /* Issue 116: support bitrate switching in MC format  */
#ifdef MC_BITRATE_SWITCHING
#define MCMASA_BITRATE_SWITCHING                        /* Issue 116: support bitrate switching in MC format: sub-part of McMASA modes */
#define MC_BITRATE_SWITCHING_CLDFB
#endif
#define FIX_MC_BR_SW_TCX_PLC_FADEOUT
#define FIX_MC_BR_SW_MCT_UPDT_ENC_COMMON


/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
#endif
+29 −0
Original line number Diff line number Diff line
@@ -665,7 +665,11 @@ static ivas_error ivas_mc_dec_reconfig(
)
{
    int16_t nchan_transport_old, nSCE_old, nCPE_old, sba_dirac_stereo_flag_old, nchan_hp20_old;
#ifdef MC_BITRATE_SWITCHING_CLDFB
    int16_t numCldfbAnalyses_old, numCldfbSyntheses_old;
#else
    int16_t numCldfbAnalyses_old, numCldfbAnalyses, numCldfbSyntheses, numCldfbSyntheses_old, i;
#endif
    int32_t new_brate_SCE, new_brate_CPE;
    RENDERER_TYPE renderer_type_old;
    ivas_error error;
@@ -949,6 +953,30 @@ static ivas_error ivas_mc_dec_reconfig(
     * CLDFB instances
     *-----------------------------------------------------------------*/

#ifdef MC_BITRATE_SWITCHING_CLDFB
    ivas_cldfb_dec_reconfig( st_ivas, nchan_transport_old, numCldfbAnalyses_old, numCldfbSyntheses_old );

    // !!! VE: what is the following block needed for?
    if ( last_mc_mode == MC_MODE_MCMASA && nchan_transport_old == 1 && ( renderer_type_old == RENDERER_BINAURAL_PARAMETRIC ) || ( renderer_type_old == RENDERER_BINAURAL_PARAMETRIC_ROOM || renderer_type_old == RENDERER_STEREO_PARAMETRIC ) )
    {
        int16_t numCldfbAnalyses, numCldfbSyntheses;

        ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses );

        /* cldfbAnaDec[1] might be modified by DirAC (ivas_dirac_dec_binaural_internal) -> re-instantiate it */
        if ( numCldfbAnalyses_old > 1 && numCldfbAnalyses > 1 )
        {
            deleteCldfb( &( st_ivas->cldfbAnaDec[1] ) );
            st_ivas->cldfbAnaDec[1] = NULL;

            if ( ( error = openCldfb( &( st_ivas->cldfbAnaDec[1] ), CLDFB_ANALYSIS, st_ivas->hDecoderConfig->output_Fs, CLDFB_PROTOTYPE_5_00MS ) ) != IVAS_ERR_OK )
            {
                return error;
            }
        }
    }
#else

    ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses, &numCldfbSyntheses );

    /* Analysis*/
@@ -1008,6 +1036,7 @@ static ivas_error ivas_mc_dec_reconfig(
            }
        }
    }
#endif

    /*-----------------------------------------------------------------*
     * Allocate the LFE handle that is coded seperately after the allocation of the core coders