Commit 7e712ec0 authored by Huo, Jiaquan's avatar Huo, Jiaquan
Browse files

modified to support bitrate switching;\n#define NONBE_FIX_1052_SBA_EXT in options.h

parent e095169f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -171,6 +171,8 @@

#define NONBE_FIX_SBA_SIGNALING_BITS_B                  /* FhG: issue 1061: option B: signal sba order additionally in OSBA */

#define NONBE_FIX_1052_SBA_EXT                          /* Dlb: SBA external output support */

/* ##################### End NON-BE switches ########################### */

/* ################## End DEVELOPMENT switches ######################### */
+22 −21
Original line number Diff line number Diff line
@@ -327,6 +327,28 @@ ivas_error ivas_dec_setup(
            /* read Ambisonic (SBA) order */
            st_ivas->sba_order = st_ivas->bit_stream[num_bits_read + 1];
            st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read];
#ifdef NONBE_FIX_1052_SBA_EXT
            if (st_ivas->hDecoderConfig->output_config == IVAS_AUDIO_CONFIG_EXTERNAL)
            {
                switch (st_ivas->sba_order)
                {
                case SBA_FOA_ORDER:
                    st_ivas->hDecoderConfig->output_config = IVAS_AUDIO_CONFIG_FOA;
                    break;
                case SBA_HOA2_ORDER:
                    st_ivas->hDecoderConfig->output_config = IVAS_AUDIO_CONFIG_HOA2;
                    break;
                case SBA_HOA3_ORDER:
                    st_ivas->hDecoderConfig->output_config = IVAS_AUDIO_CONFIG_HOA3;
                    break;
                default:
                    fprintf(stderr, "Unsupported SBA order %d\n", st_ivas->sba_order);
                    return IVAS_ERR_WRONG_PARAMS;
                    break;
                }
                st_ivas->hDecoderConfig->nchan_out = audioCfg2channels(st_ivas->hDecoderConfig->output_config);
            }
#endif

            num_bits_read += SBA_ORDER_BITS;
            if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->last_active_ivas_total_brate && ivas_total_brate > IVAS_SID_5k2 )
@@ -1148,27 +1170,6 @@ ivas_error ivas_init_decoder(
        {
            hDecoderConfig->nchan_out = st_ivas->nchan_transport + st_ivas->nchan_ism;
        }
        else if (st_ivas->ivas_format == SBA_FORMAT)
        {
            switch (st_ivas->sba_order)
            {
            case SBA_FOA_ORDER:
                hDecoderConfig->output_config = IVAS_AUDIO_CONFIG_FOA;
                break;
            case SBA_HOA2_ORDER:
                hDecoderConfig->output_config = IVAS_AUDIO_CONFIG_HOA2;
                break;
            case SBA_HOA3_ORDER:
                hDecoderConfig->output_config = IVAS_AUDIO_CONFIG_HOA3;
                break;
            default:
                fprintf(stderr, "Unsupported SBA order %d\n", st_ivas->sba_order);
                return IVAS_ERR_WRONG_PARAMS; // jhuo: correct error code?
                break;
            }
            hDecoderConfig->nchan_out = audioCfg2channels(hDecoderConfig->output_config);
            return ivas_init_decoder(st_ivas);
        }
        else if ( !( st_ivas->ism_mode == ISM_MODE_PARAM ) )
        {
            hDecoderConfig->nchan_out = st_ivas->nchan_transport;