Commit 5c260121 authored by Jan Kiene's avatar Jan Kiene
Browse files

mechanically unify SID frame rate

BE for non-DTX modes, DTX modes still broken
parent c9c31ba6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1820,7 +1820,11 @@ ivas_error preview_indices(
                break;
        }
    }
#ifdef ALIGN_SID_SIZE
    else if ( total_brate == IVAS_SID_5k2 )
#else
    else if ( total_brate == IVAS_SID_4k4 )
#endif
    {
        /* read SID format */
        st_ivas->sid_format = 0;
@@ -1884,6 +1888,7 @@ ivas_error preview_indices(
                return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Invalid value %c found in SID format field.", st_ivas->sid_format );
        }
    }
#ifndef ALIGN_SID_SIZE
    else if ( total_brate == IVAS_SID_5k )
    {
        /* SBA SID frame */
@@ -1892,6 +1897,7 @@ ivas_error preview_indices(
        st_ivas->sba_mode = SBA_MODE_SPAR;
        st_ivas->element_mode_init = IVAS_SCE;
    }
#endif

    /* only read element mode from active frames */
    if ( is_DTXrate( total_brate ) == 0 )
@@ -2063,6 +2069,9 @@ ivas_error read_indices(
        }
        else if ( k == SIZE_IVAS_BRATE_TBL )
        {
#ifdef ALIGN_SID_SIZE
            return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the  G.192 frame ! Exiting ! \n", total_brate );
#else
            /*temp change for SPAR DTX*/
            if ( total_brate == IVAS_SID_5k )
            {
@@ -2072,6 +2081,7 @@ ivas_error read_indices(
            {
                return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error, illegal bitrate (%d) in the  G.192 frame ! Exiting ! \n", total_brate );
            }
#endif
        }
        else
        {
+9 −1
Original line number Diff line number Diff line
@@ -195,9 +195,12 @@ typedef enum
/*----------------------------------------------------------------------------------*
 * IVAS Bitrates
 *----------------------------------------------------------------------------------*/

#ifdef ALIGN_SID_SIZE
#define IVAS_SID_5k2                            5200 /* SID frame bitrate */
#else
#define IVAS_SID_4k4                            4400 /* SID frame bitrate */
#define IVAS_SID_5k                             5000 /* SBA SID frame bitrate */
#endif
#define IVAS_13k2                               13200
#define IVAS_16k4                               16400
#define IVAS_24k4                               24400
@@ -215,8 +218,13 @@ typedef enum

#define IVAS_BRATE_MAX                          IVAS_512k

#ifdef ALIGN_SID_SIZE
#define SIZE_IVAS_BRATE_TBL                     16
#define IVAS_NUM_ACTIVE_BRATES                 (SIZE_IVAS_BRATE_TBL - 2)
#else
#define SIZE_IVAS_BRATE_TBL                     17
#define IVAS_NUM_ACTIVE_BRATES                 (SIZE_IVAS_BRATE_TBL - 3)
#endif

/*----------------------------------------------------------------------------------*
 * IVAS modes : IVAS SCE, IVAS CPE modes (DFT, TD, MDCT stereo)
+12 −0
Original line number Diff line number Diff line
@@ -323,7 +323,11 @@ ivas_error ivas_dirac_sba_config(
    if ( sba_mode == SBA_MODE_SPAR )
    {
        /*map the bitrate for SID frame*/
#ifdef ALIGN_SID_SIZE
        if ( sba_total_brate == IVAS_SID_5k2 )
#else
        if ( sba_total_brate == IVAS_SID_5k )
#endif
        {
            if ( *element_mode == IVAS_SCE )
            {
@@ -420,11 +424,19 @@ ivas_error ivas_dirac_sba_config(
        return error;
    }

#ifdef ALIGN_SID_SIZE
    if ( sba_total_brate > IVAS_SID_5k2 )
#else
    if ( sba_total_brate > IVAS_SID_4k4 )
#endif
    {
        *nchan_transport = ivas_dirac_getNumTransportChannels( sba_total_brate, sba_order, sba_planar );
    }
#ifdef ALIGN_SID_SIZE
    else if ( sba_total_brate == IVAS_SID_5k2 )
#else
    else if ( sba_total_brate == IVAS_SID_4k4 )
#endif
    {
        switch ( *element_mode )
        {
+4 −0
Original line number Diff line number Diff line
@@ -49,7 +49,11 @@

const int32_t ivas_brate_tbl[SIZE_IVAS_BRATE_TBL] =
{
#ifdef ALIGN_SID_SIZE
    FRAME_NO_DATA,  IVAS_SID_5k2,
#else
    FRAME_NO_DATA,  IVAS_SID_4k4,   IVAS_SID_5k,
#endif
    IVAS_13k2,      IVAS_16k4,      IVAS_24k4,      IVAS_32k,       IVAS_48k,
    IVAS_64k,       IVAS_80k,       IVAS_96k,       IVAS_128k,      IVAS_160k,    
    IVAS_192k,      IVAS_256k,      IVAS_384k,      IVAS_512k
+12 −0
Original line number Diff line number Diff line
@@ -311,7 +311,11 @@ void ivas_spar_config(
    const int16_t sid_format     /* i  : IVAS format indicator from SID frame */
)
{
#ifdef ALIGN_SID_SIZE
    if ( ivas_total_brate == IVAS_SID_5k2 )
#else
    if ( ivas_total_brate == IVAS_SID_5k )
#endif
    {
        if ( sid_format == SID_SBA_1TC )
        {
@@ -333,7 +337,11 @@ void ivas_spar_config(
    if ( *nchan_transport == 1 )
    {
        /* map SPAR SID bitrate to SPAR active bitrate */
#ifdef ALIGN_SID_SIZE
        if ( ivas_total_brate == IVAS_SID_5k2 )
#else
        if ( ivas_total_brate == IVAS_SID_5k )
#endif
        {
            ivas_total_brate = IVAS_32k;
        }
@@ -422,7 +430,11 @@ int16_t ivas_get_spar_num_TCs(
{
    int16_t table_idx, nchan_transport;

#ifdef ALIGN_SID_SIZE
    if ( ivas_total_brate == IVAS_SID_5k2 )
#else
    if ( ivas_total_brate == IVAS_SID_5k )
#endif
    {
        nchan_transport = 1;
    }
Loading