Skip to content

Differences between ivas_dec() and ivas_jbm_dec() for MC_MODE_MCT

There are two differences between ivas_dec() and ivas_jbm_dec() for MC_MODE_MCT which might indicate either a bug or a dead code. The related instances are marked with ToDo comments.

  1. Missing init of hTcxCfg:
        if ( st_ivas->mc_mode == MC_MODE_MCT )
        {
            if ( st_ivas->hCPE[1]->hCoreCoder[1]->hTcxCfg == NULL ) // ToDo: this is missing in ivas_dec() -> TBV
            {
                st_ivas->hCPE[1]->hCoreCoder[1]->hTcxCfg = st_ivas->hCPE[1]->hCoreCoder[0]->hTcxCfg;
            }

            /* LFE channel decoder */
            ivas_lfe_dec( st_ivas->hLFE, st, output_frame, st_ivas->bfi, p_output[LFE_CHANNEL] );
        ...
        }
  1. missing check against a number of channels:
            if ( st_ivas->transport_config != st_ivas->intern_config && ( st_ivas->intern_config == AUDIO_CONFIG_FOA || st_ivas->intern_config == AUDIO_CONFIG_HOA2 || st_ivas->intern_config == AUDIO_CONFIG_HOA3 ) )
            {
                if ( ( st_ivas->hTransSetup.nchan_out_woLFE + st_ivas->hTransSetup.num_lfe ) >= ( st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe ) ) // ToDo: this is missing in ivas_dec() -> TBV
                {
                    ivas_mc2sba( st_ivas->hTransSetup, p_output, p_output, output_frame, st_ivas->hIntSetup.ambisonics_order, GAIN_LFE );
                }
            }