Commit 2bbffc68 authored by Jan Kiene's avatar Jan Kiene
Browse files

add 5.2kbps SID for remaining formats, SBA not BE, rest is

parent 8f013f70
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -92,7 +92,6 @@ ivas_error ivas_ism_metadata_dec(

        /* set padding bits as metadata bits to keep later bitrate checks valid */
#ifdef ALIGN_SID_SIZE
        /* TODO: include padding bits here? */
        nb_bits_metadata[0] = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC;
#else
        nb_bits_metadata[0] = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC;
+24 −3
Original line number Diff line number Diff line
@@ -722,7 +722,8 @@ int16_t ivas_qmetadata_dec_sid_decode(
        if ( sba_mode == SBA_MODE_SPAR )
        {
#ifdef ALIGN_SID_SIZE
            metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/
            /* TODO: still use old sid frame size to keep bitexactness */
            metadata_sid_bits = (int16_t) ( 5000/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/
#else
            metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/
#endif
@@ -731,7 +732,8 @@ int16_t ivas_qmetadata_dec_sid_decode(
        {
            /* keep 13.2 and 16.4 sid bitrate as 4.4 kbps for now*/
#ifdef ALIGN_SID_SIZE
            metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
            /* TODO: still use old sid frame size to keep bitexactness */
            metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#else
            metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#endif
@@ -740,7 +742,8 @@ int16_t ivas_qmetadata_dec_sid_decode(
    else
    {
#ifdef ALIGN_SID_SIZE
        metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
        /* TODO: still use old sid frame size to keep bitexactness */
        metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#else
        metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#endif
@@ -862,6 +865,24 @@ int16_t ivas_qmetadata_dec_sid_decode(
            }
        }
    }
#ifdef ALIGN_SID_SIZE
    /* TODO: temporary hack to keep BE */
    if ( ivas_format == SBA_FORMAT )
    {
        if ( sba_mode == SBA_MODE_SPAR )
        {
            metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * 18 ) - 1; /* -1 for inactive mode header bit*/
        }
        else
        {
            metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
        }
    }
    else
    {
        metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
    }
#endif

    /*Read filling bits*/
    while ( start_index - *index < metadata_sid_bits )
+4 −0
Original line number Diff line number Diff line
@@ -541,7 +541,11 @@ ivas_error ivas_cpe_enc(
     * Write IVAS format signaling in SID frames
     *----------------------------------------------------------------*/

#ifdef ALIGN_SID_SIZE
    if ( sts[0]->core_brate == SID_2k40 )
#else
    if ( sts[0]->core_brate == SID_2k40 && ( ivas_format != SBA_FORMAT || st_ivas->sba_mode != SBA_MODE_SPAR ) )
#endif
    {
        ivas_write_format_sid( ivas_format, hCPE->element_mode, sts[0]->hBstr );
    }
+26 −3
Original line number Diff line number Diff line
@@ -685,7 +685,8 @@ void ivas_qmetadata_enc_sid_encode(
        if ( sba_mode == SBA_MODE_SPAR )
        {
#ifdef ALIGN_SID_SIZE
            metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/
            /* TODO: still use old sid frame size to keep bitexactness */
            metadata_sid_bits = (int16_t) ( 5000/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/
#else
            metadata_sid_bits = (int16_t) ( IVAS_SID_5k - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/
#endif
@@ -694,7 +695,8 @@ void ivas_qmetadata_enc_sid_encode(
        {
            /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/
#ifdef ALIGN_SID_SIZE
            metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
            /* TODO: still use old sid frame size to keep bitexactness */
            metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#else
            metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#endif
@@ -703,7 +705,8 @@ void ivas_qmetadata_enc_sid_encode(
    else
    {
#ifdef ALIGN_SID_SIZE
        metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
        /* TODO: still use old sid frame size to keep bitexactness */
        metadata_sid_bits = ( 4400/*IVAS_SID_5k2*/ - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#else
        metadata_sid_bits = ( IVAS_SID_4k4 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
#endif
@@ -885,6 +888,26 @@ void ivas_qmetadata_enc_sid_encode(
    }
#endif

#ifdef ALIGN_SID_SIZE
    /* TODO: temporary to keep BE */
    if ( ivas_format == SBA_FORMAT )
    {
        if ( sba_mode == SBA_MODE_SPAR )
        {
            metadata_sid_bits = (int16_t) ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - ( SPAR_DTX_BANDS * SPAR_SID_BITS_TAR_PER_BAND ) - 1; /* -1 for inactive mode header bit*/
        }
        else
        {
            /* keep 13.2 and 16.4 SID bitrate as 4.4 kbps for now*/
            metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
        }
    }
    else
    {
        metadata_sid_bits = ( IVAS_SID_5k2 - SID_2k40 ) / FRAMES_PER_SEC - SID_FORMAT_NBITS;
    }
#endif

    /* fill bits*/
    assert( ( hMetaData->nb_bits_tot - bit_pos_start ) <= metadata_sid_bits && "Too many written bits!" );
    while ( ( hMetaData->nb_bits_tot - bit_pos_start ) < metadata_sid_bits )