Commit b83c813f authored by multrus's avatar multrus
Browse files

fix renderer

parent a72d7cce
Loading
Loading
Loading
Loading
Loading
+35 −5
Original line number Diff line number Diff line
@@ -410,8 +410,17 @@ void ivas_renderer_select(
#endif
    {
        *renderer_type = RENDERER_DIRAC;
#ifdef SBA_AND_OBJECTS
        IVAS_FORMAT ivas_format = ( st_ivas->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_MODE_NONE ) ? SBA_FORMAT : st_ivas->ivas_format; /* treat ISM_SBA_MODE_NONE just like SBA_FORMAT */
#endif

#ifdef SBA_AND_OBJECTS
        if ( ivas_format == SBA_FORMAT &&
             ( output_config != AUDIO_CONFIG_5_1 && output_config != AUDIO_CONFIG_5_1_2 && output_config != AUDIO_CONFIG_5_1_4 && output_config != AUDIO_CONFIG_7_1 && output_config != AUDIO_CONFIG_7_1_4 && output_config != AUDIO_CONFIG_LS_CUSTOM && output_config != AUDIO_CONFIG_MONO && output_config != AUDIO_CONFIG_STEREO ) )
#else
        if ( st_ivas->ivas_format == SBA_FORMAT &&
             ( output_config != AUDIO_CONFIG_5_1 && output_config != AUDIO_CONFIG_5_1_2 && output_config != AUDIO_CONFIG_5_1_4 && output_config != AUDIO_CONFIG_7_1 && output_config != AUDIO_CONFIG_7_1_4 && output_config != AUDIO_CONFIG_LS_CUSTOM && output_config != AUDIO_CONFIG_MONO && output_config != AUDIO_CONFIG_STEREO ) )
#endif
        {
            if ( output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_FOA )
            {
@@ -427,51 +436,72 @@ void ivas_renderer_select(
            }
            st_ivas->renderer_type = RENDERER_SBA_LINEAR_DEC;
        }
#ifdef SBA_AND_OBJECTS
        else if ( ( ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->nchan_transport == 1 ) ||
                  ( ivas_format == SBA_FORMAT && ( output_config == AUDIO_CONFIG_STEREO || output_config == AUDIO_CONFIG_MONO ) ) )
#else
        else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->nchan_transport == 1 ) ||
                  ( st_ivas->ivas_format == SBA_FORMAT && ( output_config == AUDIO_CONFIG_STEREO || output_config == AUDIO_CONFIG_MONO ) ) )
#endif
        {
            *renderer_type = RENDERER_DISABLE;
        }
#ifdef SBA_AND_OBJECTS
        else if ( ( ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) )
#else
        else if ( ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_MONO && st_ivas->hDecoderConfig->ivas_total_brate < MASA_STEREO_MIN_BITRATE && st_ivas->hDecoderConfig->ivas_total_brate > IVAS_SID_5k2 ) )
#endif
        {
            *renderer_type = RENDERER_DISABLE;
        }
#ifdef SBA_AND_OBJECTS
        else if ( ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_STEREO )
#else
        else if ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_STEREO )
#endif
        {
            *renderer_type = RENDERER_STEREO_PARAMETRIC;
        }
#ifdef SBA_AND_OBJECTS
        else if ( ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_EXTERNAL )
#else
        else if ( st_ivas->ivas_format == MASA_FORMAT && output_config == AUDIO_CONFIG_EXTERNAL )
#endif
        {
            *renderer_type = RENDERER_DISABLE;
        }
#ifdef SBA_AND_OBJECTS
        else if ( ivas_format == SBA_FORMAT && output_config == AUDIO_CONFIG_MONO )
#else
        else if ( st_ivas->ivas_format == SBA_FORMAT && output_config == AUDIO_CONFIG_MONO )
#endif
        {
            *renderer_type = RENDERER_SBA_LINEAR_DEC;
        }
#ifdef SBA_AND_OBJECTS
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT && output_config == AUDIO_CONFIG_STEREO )
        else if ( ivas_format == SBA_ISM_FORMAT && output_config == AUDIO_CONFIG_STEREO )
        {
            *renderer_type = RENDERER_OSBA_STEREO;
        }
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT && output_config == AUDIO_CONFIG_MONO )
        else if ( ivas_format == SBA_ISM_FORMAT && output_config == AUDIO_CONFIG_MONO )
        {
            *renderer_type = RENDERER_MONO_DOWNMIX;
        }
#endif
#ifdef SBA_AND_OBJECTS
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT && ( output_config == AUDIO_CONFIG_FOA || output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_HOA3 ) )
        else if ( ivas_format == SBA_ISM_FORMAT && ( output_config == AUDIO_CONFIG_FOA || output_config == AUDIO_CONFIG_HOA2 || output_config == AUDIO_CONFIG_HOA3 ) )
        {
            *renderer_type = RENDERER_OSBA_AMBI;
        }
#endif
#ifdef SBA_AND_OBJECTS
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT && ( output_config == AUDIO_CONFIG_5_1 || output_config == AUDIO_CONFIG_5_1_2 || output_config == AUDIO_CONFIG_5_1_4 || output_config == AUDIO_CONFIG_7_1 || output_config == AUDIO_CONFIG_7_1_4 || output_config == AUDIO_CONFIG_LS_CUSTOM ) )
        else if ( ivas_format == SBA_ISM_FORMAT && ( output_config == AUDIO_CONFIG_5_1 || output_config == AUDIO_CONFIG_5_1_2 || output_config == AUDIO_CONFIG_5_1_4 || output_config == AUDIO_CONFIG_7_1 || output_config == AUDIO_CONFIG_7_1_4 || output_config == AUDIO_CONFIG_LS_CUSTOM ) )
        {
            *renderer_type = RENDERER_OSBA_LS;
        }
#endif
#ifdef SBA_AND_OBJECTS
        else if ( st_ivas->ivas_format == SBA_ISM_FORMAT && output_config == AUDIO_CONFIG_EXTERNAL )
        else if ( ivas_format == SBA_ISM_FORMAT && output_config == AUDIO_CONFIG_EXTERNAL )
        {
            *renderer_type = RENDERER_SBA_LINEAR_DEC;
        }