Commit 440a8b9f authored by emerit's avatar emerit
Browse files

merge

parent 4be67cac
Loading
Loading
Loading
Loading
+121 −160
Original line number Diff line number Diff line
@@ -309,51 +309,6 @@ static ivas_error ivas_ism_bitrate_switching(
#endif
                free( st_ivas->hIsmRendererData );
                st_ivas->hIsmRendererData = NULL;
            /*-----------------------------------------------------------------*
             * Reconfigure TC buffer
             *-----------------------------------------------------------------*/

            if ( st_ivas->hDecoderConfig->voip_active == 1 )
            {
                int16_t tc_nchan_full_new;
                DECODER_TC_BUFFER_HANDLE hTcBuffer;

                hTcBuffer = st_ivas->hTcBuffer;
                tc_buffer_mode_new = ivas_jbm_dec_get_tc_buffer_mode( st_ivas );
                tc_nchan_tc_new = ivas_jbm_dec_get_num_tc_channels( st_ivas );
                tc_nchan_allocate_new = tc_nchan_tc_new;
                tc_nchan_full_new = tc_nchan_tc_new;

                if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC )
                {
                    tc_nchan_allocate_new = 2 * BINAURAL_CHANNELS;
                    tc_nchan_full_new = tc_nchan_allocate_new;
                }

                if ( st_ivas->ism_mode == ISM_MODE_PARAM && ( st_ivas->renderer_type != RENDERER_MONO_DOWNMIX && st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC_ROOM ) )
                {
                    tc_nchan_full_new = 0;
                }

                /* reconfigure buffer */
                if ( hTcBuffer->tc_buffer_mode != tc_buffer_mode_new || hTcBuffer->nchan_transport_jbm != tc_nchan_tc_new ||
                     hTcBuffer->nchan_buffer_full != tc_nchan_full_new || hTcBuffer->nchan_transport_internal != tc_nchan_allocate_new )
                {
                    if ( ( error = ivas_jbm_dec_tc_buffer_reconfigure( st_ivas, tc_buffer_mode_new, tc_nchan_tc_new, tc_nchan_allocate_new, tc_nchan_full_new, tc_granularity_new ) ) != IVAS_ERR_OK )
                    {
                        return error;
                    }
                }

                /* transfer subframe info from central tc buffer to ParamMC or McMASA (DirAC) */
                if ( st_ivas->hDirAC != NULL )
                {
                    st_ivas->hDirAC->nb_subframes = st_ivas->hTcBuffer->nb_subframes;
                    st_ivas->hDirAC->subframes_rendered = st_ivas->hTcBuffer->subframes_rendered;
                    st_ivas->hDirAC->num_slots = st_ivas->hTcBuffer->num_slots;
                    st_ivas->hDirAC->slots_rendered = st_ivas->hTcBuffer->slots_rendered;

                    mvs2s( st_ivas->hTcBuffer->subframe_nbslots, st_ivas->hDirAC->subframe_nbslots, MAX_JBM_SUBFRAMES_5MS );
                    }
                }

@@ -388,6 +343,7 @@ static ivas_error ivas_ism_bitrate_switching(
            /*-----------------------------------------------------------------*
             * Reconfigure TC buffer
             *-----------------------------------------------------------------*/

            if ( st_ivas->hDecoderConfig->voip_active == 1 )
            {
                int16_t tc_nchan_full_new;
@@ -398,15 +354,18 @@ static ivas_error ivas_ism_bitrate_switching(
                tc_nchan_tc_new = ivas_jbm_dec_get_num_tc_channels( st_ivas );
                tc_nchan_allocate_new = tc_nchan_tc_new;
                tc_nchan_full_new = tc_nchan_tc_new;

                if ( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM || st_ivas->renderer_type == RENDERER_STEREO_PARAMETRIC )
                {
                    tc_nchan_allocate_new = 2 * BINAURAL_CHANNELS;
                    tc_nchan_full_new = tc_nchan_allocate_new;
                }

                if ( st_ivas->ism_mode == ISM_MODE_PARAM && ( st_ivas->renderer_type != RENDERER_MONO_DOWNMIX && st_ivas->renderer_type != RENDERER_DISABLE && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC_ROOM ) )
                {
                    tc_nchan_full_new = 0;
                }

                /* reconfigure buffer */
                if ( hTcBuffer->tc_buffer_mode != tc_buffer_mode_new || hTcBuffer->nchan_transport_jbm != tc_nchan_tc_new ||
                     hTcBuffer->nchan_buffer_full != tc_nchan_full_new || hTcBuffer->nchan_transport_internal != tc_nchan_allocate_new )
@@ -416,6 +375,7 @@ static ivas_error ivas_ism_bitrate_switching(
                        return error;
                    }
                }

                /* transfer subframe info from central tc buffer to ParamMC or McMASA (DirAC) */
                if ( st_ivas->hDirAC != NULL )
                {
@@ -423,6 +383,7 @@ static ivas_error ivas_ism_bitrate_switching(
                    st_ivas->hDirAC->subframes_rendered = st_ivas->hTcBuffer->subframes_rendered;
                    st_ivas->hDirAC->num_slots = st_ivas->hTcBuffer->num_slots;
                    st_ivas->hDirAC->slots_rendered = st_ivas->hTcBuffer->slots_rendered;

                    mvs2s( st_ivas->hTcBuffer->subframe_nbslots, st_ivas->hDirAC->subframe_nbslots, MAX_JBM_SUBFRAMES_5MS );
                }
            }