Commit 227c76f9 authored by vaclav's avatar vaclav
Browse files

accept HARMONIZE_SBA_NCHAN_TRANSPORT

parent 652278a1
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -1974,11 +1974,7 @@ ivas_error preview_indices(

            st_ivas->sba_analysis_order = ivas_sba_get_analysis_order( total_brate, st_ivas->sba_order );

#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT
            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 ) );
#else
            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 );
#endif
        }
    }

+0 −9
Original line number Diff line number Diff line
@@ -855,15 +855,6 @@ typedef enum

#define DIRAC_MAX_ANA_CHANS                     FOA_CHANNELS                /* Maximum number of channels for DirAC analysis */

#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
#define DIRAC_MAX_TRANS_CHANS                   8                           /* Maximum number of transport channels for DirAC */
#endif

#define DIRAC_MIN_BITRATE_8_TRANS_CHAN          IVAS_384k
#define DIRAC_MIN_BITRATE_6_TRANS_CHAN          IVAS_256k
#define DIRAC_MIN_BITRATE_4_TRANS_CHAN          IVAS_160k                   /* minimum bitrate for sending 4 transport channels (FOA) */
#define DIRAC_MIN_BITRATE_2_TRANS_CHAN          IVAS_48k                    /* minimum bitrate for sending 2 transport channels (Stereo) */

#define DIRAC_NUM_DIMS                          3                           /* number of directions to estimate (X,Y,Z) */
#define DIRAC_MAX_NBANDS                        12                          /* Maximum number of frequency bands for the DirAC Side Parameter decoding */
#define DIRAC_LOW_BANDRES_STEP                  2                           /* always combine two bands for low band resolution in the DirAC parameter coding */
+3 −98
Original line number Diff line number Diff line
@@ -60,11 +60,7 @@ ivas_error ivas_dirac_config(
)
{
    IVAS_FORMAT ivas_format;
#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT
    int16_t sba_order;
#else
    int16_t sba_order, sba_planar;
#endif
    int16_t *nSCE, *nCPE, *element_mode, *nchan_transport;
    int32_t ivas_total_brate;
    DIRAC_CONFIG_DATA_HANDLE hConfig;
@@ -87,9 +83,6 @@ ivas_error ivas_dirac_config(
        element_mode = &( (Encoder_Struct *) st_ivas )->hEncoderConfig->element_mode_init;
        nchan_transport = &( (Encoder_Struct *) st_ivas )->nchan_transport;
        sba_order = ( (Encoder_Struct *) st_ivas )->sba_analysis_order;
#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
        sba_planar = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->sba_planar;
#endif
        ivas_total_brate = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->ivas_total_brate;
        Fs = ( (Encoder_Struct *) st_ivas )->hEncoderConfig->input_Fs;
        band_grouping = ( (Encoder_Struct *) st_ivas )->hDirAC->band_grouping;
@@ -114,9 +107,6 @@ ivas_error ivas_dirac_config(
        element_mode = &( (Decoder_Struct *) st_ivas )->element_mode_init;
        nchan_transport = &( (Decoder_Struct *) st_ivas )->nchan_transport;
        sba_order = ( (Decoder_Struct *) st_ivas )->sba_analysis_order;
#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
        sba_planar = ( (Decoder_Struct *) st_ivas )->sba_planar;
#endif
        ivas_total_brate = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->ivas_total_brate;
        Fs = ( (Decoder_Struct *) st_ivas )->hDecoderConfig->output_Fs;
        band_grouping = ( (Decoder_Struct *) st_ivas )->hDirAC->band_grouping;
@@ -150,12 +140,7 @@ ivas_error ivas_dirac_config(

    if ( ivas_format == SBA_FORMAT ) /* skip for MASA decoder */
    {
#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT
        if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK )
#else
        if ( ( error = ivas_dirac_sba_config( hQMetaData, nchan_transport, nSCE, nCPE, element_mode, ivas_total_brate, sba_order, sba_planar,
                                              sba_mode, hConfig->nbands - spar_dirac_split_band ) ) != IVAS_ERR_OK )
#endif
        {
            return error;
        }
@@ -319,9 +304,6 @@ ivas_error ivas_dirac_sba_config(
    int16_t *element_mode,            /* i/o: element mode of the core coder                       */
    int32_t sba_total_brate,          /* i  : SBA total bitrate                                    */
    const int16_t sba_order,          /* i  : Ambisonic (SBA) order                                */
#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
    const int16_t sba_planar, /* i  : SBA planar flag                                      */
#endif
    const SBA_MODE sba_mode,          /* i  : SBA mode                                             */
    const int16_t nbands              /* i  : number of frequency bands                            */
)
@@ -436,11 +418,7 @@ ivas_error ivas_dirac_sba_config(

    if ( sba_total_brate > IVAS_SID_5k2 )
    {
#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT
        *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order );
#else
        *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar );
#endif
    }
    else if ( sba_total_brate == IVAS_SID_5k2 )
    {
@@ -581,79 +559,6 @@ ivas_error ivas_dirac_sba_config(
    return error;
}

#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
/*-------------------------------------------------------------------------
 * ivas_dirac_getNumTransportChannels()
 *
 *
 *------------------------------------------------------------------------*/

/*! r: number of IVAS transport channels */
int16_t ivas_dirac_getNumTransportChannels(
    const int32_t sba_total_brate, /* i  : SBA total bitrate         */
    const int16_t sba_order,       /* i  : SBA order                 */
    const int16_t sba_planar       /* i  : SBA planar flag           */
)
{
    int16_t num_channels;

    num_channels = 0;

    if ( sba_total_brate >= DIRAC_MIN_BITRATE_8_TRANS_CHAN )
    {
        switch ( sba_order )
        {
            case 3:
                num_channels = sba_planar ? 7 : 8;
                break;
            case 2:
                num_channels = sba_planar ? 5 : 6;
                break;
            case 1:
                num_channels = sba_planar ? 3 : 4;
                break;
            default:
                assert( 0 && "Order not supported!" );
        }
    }
    else if ( sba_total_brate >= DIRAC_MIN_BITRATE_6_TRANS_CHAN )
    {
        switch ( sba_order )
        {
            case 3:
            case 2:
                num_channels = sba_planar ? 5 : 6;
                break;
            case 1:
                num_channels = sba_planar ? 3 : 4;
                break;
            default:
                assert( 0 && "Order not supported!" );
        }
    }
    else if ( sba_total_brate >= DIRAC_MIN_BITRATE_4_TRANS_CHAN )
    {
        if ( sba_planar )
        {
            num_channels = 3;
        }
        else
        {
            num_channels = 4;
        }
    }
    else if ( sba_total_brate >= DIRAC_MIN_BITRATE_2_TRANS_CHAN )
    {
        num_channels = 2;
    }
    else
    {
        num_channels = 1;
    }

    return num_channels;
}
#endif

/*-------------------------------------------------------------------------
 * computeDirectionVectors()
+0 −18
Original line number Diff line number Diff line
@@ -3025,9 +3025,6 @@ void ivas_sba_config(
    int16_t *nSCE,                                              /* o  : number of SCEs                          */
    int16_t *nCPE,                                              /* o  : number of CPEs                          */
    int16_t *element_mode                                       /* o  : element mode of the core coder          */
#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
   ,const SBA_MODE sba_mode                                     /* i  : SBA mode                                */
#endif
);

ivas_error ivas_sba_dec_reconfigure(
@@ -3166,21 +3163,10 @@ ivas_error ivas_dirac_sba_config(
    int16_t *element_mode,                                      /* o  : element mode of the core coder                       */
    int32_t sba_total_brate,                                    /* i  : SBA total bitrate                                    */
    const int16_t sba_order,                                    /* i  : Ambisonic (SBA) order                                */
#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
    const int16_t sba_planar,                                   /* i  : SBA planar flag                                      */
#endif
    const SBA_MODE sba_mode,                                    /* i  : SBA mode                                             */
    const int16_t nbands                                        /* i  : number of frequency bands                            */
);

#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
/*! r: number of IVAS transport channels */
int16_t ivas_dirac_getNumTransportChannels(
    const int32_t sba_total_brate,                              /* i  : SBA total bitrate                       */
    const int16_t sba_order,                                    /* i  : SBA order                               */
    const int16_t sba_planar                                    /* i  : SBA Planar flag                         */
);
#endif
ivas_error ivas_dirac_dec_open(
    Decoder_Struct *st_ivas                                     /* i/o: IVAS decoder structure                  */
);
@@ -3834,12 +3820,8 @@ int16_t ivas_get_spar_table_idx(
    int16_t *ind                                                /* o  : indice                                  */
);

#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT
/*! r: number of transport channels */
int16_t ivas_get_sba_num_TCs( 
#else
int16_t ivas_get_spar_num_TCs( 
#endif
    const int32_t ivas_total_brate,                             /* i  : IVAS total bitrate                      */
    const int16_t sba_order                                     /* i  : IVAS SBA order                          */
);
+0 −15
Original line number Diff line number Diff line
@@ -88,10 +88,6 @@ void ivas_sba_config(
    int16_t *nSCE,                 /* o  : number of SCEs                           */
    int16_t *nCPE,                 /* o  : number of CPEs                           */
    int16_t *element_mode          /* o  : element mode of the core coder           */
#ifndef HARMONIZE_SBA_NCHAN_TRANSPORT
    ,
    const SBA_MODE sba_mode /* i  : SBA mode                                 */
#endif
)
{
    if ( ( sba_order < 0 ) && ( nb_channels < 0 ) )
@@ -120,18 +116,7 @@ void ivas_sba_config(

    if ( nchan_transport != NULL )
    {
#ifdef HARMONIZE_SBA_NCHAN_TRANSPORT
        *nchan_transport = ivas_get_sba_num_TCs( sba_total_brate, sba_order );
#else
        if ( sba_mode == SBA_MODE_SPAR )
        {
            *nchan_transport = ivas_get_spar_num_TCs( sba_total_brate, sba_order );
        }
        else
        {
            *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar );
        }
#endif
    }

    /* Configure core coder number of elements*/
Loading