Commit 4ebaea4e authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

signal planar and order bits at all OSBA bitrates under NONBE_FIX_SBA_SIGNALING_BITS_B

parent 5e85b294
Loading
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -177,7 +177,8 @@
#define NONBE_FIX_1054_NEGATIVE_LVQ_INDEX               /* Nokia: issue 1054: Input to decode_comb in deindex_lvq_SHB should be positive */
#define NONBE_FIX_1063_DIV_BY_ZERO_SUMNRG               /* VoiceAge: issue 1063: division by zero for angle_rot feature in the UNCLR classifier */

#define NONBE_FIX_SBA_SIGNALING_BITS_A                  /* FhG: issue 1061: option A: clan up OSBA and ISM signaling using 4 bits all the time */
/*#define NONBE_FIX_SBA_SIGNALING_BITS_A*/              /* FhG: issue 1061: option A: clean up OSBA and ISM signaling using 4 bits all the time */
#define NONBE_FIX_SBA_SIGNALING_BITS_B                  /* FhG: issue 1061: option B: signal sba order additionally in OSBA */

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

+9 −1
Original line number Diff line number Diff line
@@ -467,7 +467,7 @@ ivas_error ivas_dec_setup(
        {
            /* the number of objects is written at the end of the bitstream, in the SBA metadata */
            st_ivas->nchan_ism = 2 * st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 1] + st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 2] + 1;
#ifndef NONBE_FIX_SBA_SIGNALING_BITS_A
#if !defined( NONBE_FIX_SBA_SIGNALING_BITS_A ) && !defined( NONBE_FIX_SBA_SIGNALING_BITS_B )
            if ( ivas_total_brate < IVAS_24k4 || ivas_total_brate >= IVAS_256k )
#endif
            {
@@ -487,6 +487,14 @@ ivas_error ivas_dec_setup(
                st_ivas->sba_order = 3;
            }
#endif
#ifdef NONBE_FIX_SBA_SIGNALING_BITS_B
            if ( ivas_total_brate < IVAS_24k4 )
            {
				st_ivas->sba_order = st_ivas->bit_stream[num_bits_read + 1];
				st_ivas->sba_order += 2 * st_ivas->bit_stream[num_bits_read];
				num_bits_read += SBA_ORDER_BITS;
			}
#endif

            if ( st_ivas->ini_frame > 0 && ivas_total_brate != st_ivas->last_active_ivas_total_brate )
            {
+21 −3
Original line number Diff line number Diff line
@@ -338,10 +338,17 @@ ivas_error ivas_spar_enc(
    hEncoderConfig = st_ivas->hEncoderConfig;
    st0 = ( st_ivas->nSCE > 0 ) ? st_ivas->hSCE[0]->hCoreCoder[0] : st_ivas->hCPE[0]->hCoreCoder[0];

#ifdef NONBE_FIX_SBA_SIGNALING_BITS_A
	{
        /* Write SBA planar flag */
        push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_planar, SBA_PLANAR_BITS );

        /* Write SBA order */
        push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS );
    }
#else
    /* Write SBA signaling bits */
#ifndef NONBE_FIX_SBA_SIGNALING_BITS_A
    if ( hEncoderConfig->ivas_format == SBA_FORMAT || ( hEncoderConfig->ivas_format == SBA_ISM_FORMAT && st_ivas->ism_mode == ISM_SBA_MODE_DISC ) )
#endif
    {
        /* Write SBA planar flag */
        push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_planar, SBA_PLANAR_BITS );
@@ -349,7 +356,6 @@ ivas_error ivas_spar_enc(
        /* Write SBA order */
        push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS );
    }
#ifndef NONBE_FIX_SBA_SIGNALING_BITS_A
    else /* ism_mode == ISM_MODE_NONE */
    {
        if ( hEncoderConfig->ivas_total_brate < IVAS_24k4 )
@@ -359,9 +365,21 @@ ivas_error ivas_spar_enc(

            /* hack to indicate OSBA bitstream at VLBR */
            push_indice( st0->hBstr, IND_SMODE, 0, SBA_ORDER_BITS );

#ifdef NONBE_FIX_SBA_SIGNALING_BITS_B
            /* additionally code the real SBA order */
            push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS );
#endif

        }
        else
        {

#ifdef NONBE_FIX_SBA_SIGNALING_BITS_B
            /* Write SBA planar flag */
            push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_planar, SBA_PLANAR_BITS );
#endif

            /* Write SBA order */
            push_indice( st0->hBstr, IND_SMODE, hEncoderConfig->sba_order, SBA_ORDER_BITS );
        }