Commit abea63b8 authored by brownstef's avatar brownstef
Browse files

Merge branch '76-SBA-order-in-the-bitstream' into 'main'

Changes for 76 SBA order in the bitstream

See merge request !97
parents 7f9c47fb 33436935
Loading
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -1975,11 +1975,29 @@ ivas_error preview_indices(
        }
        else if ( st_ivas->ivas_format == SBA_FORMAT )
        {

            /* Read SBA planar flag and SBA order */
            st_ivas->sba_planar = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA] == 1 );
#ifndef SBA_ORDER_BITSTREAM
            st_ivas->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 );
            st_ivas->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 );
#else
            st_ivas->hDecoderConfig->sba_order = ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 2] == 1 );
            st_ivas->hDecoderConfig->sba_order += 2 * ( bit_stream[IVAS_FORMAT_SIGNALING_NBITS_SBA + 1] == 1 );
            st_ivas->sba_analysis_order = st_ivas->hDecoderConfig->sba_order;
#endif
#ifdef SBA_ORDER_BITSTREAM
            /*Hard coding the the sba_oder as 1 as higher not supported below 256k bitrate*/
            if ( total_brate < IVAS_256k )
            {
                st_ivas->sba_analysis_order = 1;
            }
#endif
#ifdef SBA_ORDER_BITSTREAM
            ivas_sba_config( total_brate, st_ivas->sba_analysis_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode );
#else
            ivas_sba_config( total_brate, st_ivas->sba_order, -1, &( st_ivas->nchan_transport ), st_ivas->sba_planar, &( st_ivas->nSCE ), &( st_ivas->nCPE ), &( st_ivas->element_mode_init ), st_ivas->sba_mode );
#endif
        }
    }

+8 −0
Original line number Diff line number Diff line
@@ -82,7 +82,11 @@ ivas_error ivas_dirac_config(
        nCPE = &( (Encoder_Struct *) st_ivas )->nCPE;
        element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init;
        nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport;
#ifndef SBA_ORDER_BITSTREAM
        sba_order = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_order;
#else
        sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order;
#endif
        sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar;
        ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate;
        Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs;
@@ -107,7 +111,11 @@ ivas_error ivas_dirac_config(
        nCPE = &( (Decoder_Struct *) st_ivas )->nCPE;
        element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init;
        nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport;
#ifndef SBA_ORDER_BITSTREAM
        sba_order = ( (Decoder_Struct *) st_ivas )->sba_order;
#else
        sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order;
#endif
        sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar;
        ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate;
        Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs;
+8 −0
Original line number Diff line number Diff line
@@ -3866,6 +3866,10 @@ void ivas_spar_dec_upmixer(
ivas_error ivas_spar_md_enc_open(
    ivas_spar_md_enc_state_t **hMdEnc,                          /* i/o: SPAR MD encoder handle                  */
    const ENCODER_CONFIG_HANDLE hEncoderConfig                  /* i  : configuration structure                 */
#ifdef SBA_ORDER_BITSTREAM
    ,
    int16_t sba_order
#endif
);

void ivas_spar_md_enc_close(
@@ -3878,6 +3882,10 @@ ivas_error ivas_spar_md_enc_process(
    ivas_spar_md_enc_in_buf_t *pIn_buf,
    BSTR_ENC_HANDLE hMetaData,                                  /* i/o: MetaData handle                         */
    const int16_t dtx_silence_mode
#ifdef SBA_ORDER_BITSTREAM
    ,
    int16_t sba_order
#endif
);

void ivas_compute_spar_params(
+1 −1
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@


#define FIX_I87                                         /*  fix for issue 86: incorrect Ambisonics order set for head rotation in SBA */

#define SBA_ORDER_BITSTREAM                             /* issue 76: Use input sba order for bitstream coding */
/* ################## End DEVELOPMENT switches ######################### */
/* clang-format on */
#endif
+8 −0
Original line number Diff line number Diff line
@@ -186,7 +186,11 @@ ivas_error ivas_dirac_dec_config(
    nchan_transport_orig = st_ivas->nchan_transport;
    if ( st_ivas->ivas_format == SBA_FORMAT && st_ivas->sba_mode == SBA_MODE_SPAR && !( st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC || st_ivas->renderer_type == RENDERER_BINAURAL_PARAMETRIC_ROOM ) )
    {
#ifdef SBA_ORDER_BITSTREAM
        st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_analysis_order );
#else
        st_ivas->nchan_transport = ivas_sba_get_nchan_metadata( st_ivas->sba_order );
#endif
    }
    nchan_transport = st_ivas->nchan_transport;
    if ( st_ivas->ivas_format == MASA_FORMAT && ivas_total_brate < MASA_STEREO_MIN_BITRATE && ivas_total_brate > IVAS_SID_4k4 )
@@ -197,7 +201,11 @@ ivas_error ivas_dirac_dec_config(
    if ( flag_config == DIRAC_RECONFIGURE && st_ivas->ivas_format == SBA_FORMAT )
    {
        int16_t tmp1, tmp2, tmp3;
#ifdef SBA_ORDER_BITSTREAM
        ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_analysis_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC );
#else
        ivas_sba_config( st_ivas->hDecoderConfig->last_ivas_total_brate, st_ivas->sba_order, -1, &nchan_transport_old, st_ivas->sba_planar, &tmp1, &tmp2, &tmp3, SBA_MODE_DIRAC );
#endif
    }

    /*-----------------------------------------------------------------*
Loading