Commit ae523962 authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge branch 'main' into 926-osba-decoder-crash-with-planar-sba-input

parents ecb69ee6 4c7f7f0e
Loading
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -208,8 +208,7 @@ endif()

if(INCLUDE_SPLIT)
  if(NOT WMOPS)
  file(GLOB unitTestIvasLc3plusSrcs "scripts/split_rendering/lc3plus/*.c")
  add_executable(ivas_lc3plus_unit_test ${unitTestIvasLc3plusSrcs})
  add_executable(ivas_lc3plus_unit_test ${CMAKE_SOURCE_DIR}/scripts/split_rendering/lc3plus/ivas_lc3plus_unit_test.c)
  target_link_libraries(ivas_lc3plus_unit_test lib_rend lib_dec lib_util lib_com lib_debug)
  endif()
endif()

lib_com/options.h

100755 → 100644
+3 −0
Original line number Diff line number Diff line
@@ -157,6 +157,9 @@
#define FIX_891_PARAMUPMIX_CLEANUP                      /* Dlb: issue 891: remove unneeded code from ParamUpmix */
#define FIX_917_LCLD_WARNINGS                           /* Dlb: issue 917 and 918: fix LCLD codec warnings*/
#define FIX_920_IGF_INIT_ERROR                          /* FhG: issue 920: fix bitrate mismatch in initial IGF config to avoid error message in same cases */
#define FIX_SPLITREND_WARNINGS                          /* FhG: fix warnings related to split rendering observed in build jobs */
#define FIX_923_EXTERNAL_REND_COMMAND_LINE              /* VA: issue 923: enable external renderer command-line options in UPPER case letters */
#define FIX_921_OMASA_DELAY_PRINTOUT                    /* VA: issue 921: correct OMASA decoder delay printout */

/* #################### End BE switches ################################## */

+11 −1
Original line number Diff line number Diff line
@@ -348,9 +348,11 @@ int16_t RCcontextMapping_decode2_no_mem_s17_LCS(
    int16_t lastnz, n;
    uint16_t r;
    int16_t resQBits;
#ifdef DEBUGGING
    int16_t nbbits_m2;
    int16_t rest_bits;
#endif
    int16_t nt_half;
    int16_t nbbits_m2;
    int16_t bits_tups; /* No. of bits for coding the no. of tuples */

    set_s( x, 0, nt );
@@ -424,8 +426,10 @@ int16_t RCcontextMapping_decode2_no_mem_s17_LCS(
        /* Initialize range decoder */
        rc_uni_dec_init( &rc_st_dec, &st->bit_stream[st->next_bit_pos], nbbits ); /* (nbbits + 30) entries are read by the decoder */

#ifdef DEBUGGING
        nbbits_m2 = nbbits;
        rest_bits = -nbbits_m2;
#endif

        /* Main Loop through the 2-tuples */
        for ( k = 0; k < lastnz; k += 2 )
@@ -484,11 +488,13 @@ int16_t RCcontextMapping_decode2_no_mem_s17_LCS(
            a += a1 << lev;
            b += b1 << lev;

#ifdef DEBUGGING
            /* Add 2 LSB bits per bit-plane */
            rest_bits += 2 * lev;
            /* Sign bits */
            rest_bits += min( a, 1 );
            rest_bits += min( b, 1 );
#endif

            /* Update bitstream pointer */
            st->next_bit_pos = start_bit_pos + bits_tups + rc_uni_dec_virtual_finish( &rc_st_dec );
@@ -570,8 +576,10 @@ int16_t RCcontextMapping_decode2_no_mem_s17_LCS(
        /* Initialize range decoder */
        rc_uni_dec_init( &rc_st_dec, &st->bit_stream[st->next_bit_pos], nbbits ); /* (nbbits + 30) entries are read by the decoder */

#ifdef DEBUGGING
        nbbits_m2 = nbbits;
        rest_bits = -nbbits_m2;
#endif

        t = 0;
        s = 0;
@@ -624,11 +632,13 @@ int16_t RCcontextMapping_decode2_no_mem_s17_LCS(
            a += a1 << lev;
            b += b1 << lev;

#ifdef DEBUGGING
            /* Add 2 LSB bits per bit-plane */
            rest_bits += 2 * lev;
            /* Sign bits */
            rest_bits += min( a, 1 );
            rest_bits += min( b, 1 );
#endif

            /* Update bitstream pointer */
            st->next_bit_pos = start_bit_pos + bits_tups + rc_uni_dec_virtual_finish( &rc_st_dec );
+8 −0
Original line number Diff line number Diff line
@@ -2352,7 +2352,11 @@ ivas_error IVAS_DEC_GetDelay(
    nSamples[2] = (int16_t) roundf( (float) st_ivas->binaural_latency_ns * hDecoderConfig->output_Fs / 1000000000.f );
    nSamples[0] = nSamples[1] + nSamples[2];

#ifdef FIX_921_OMASA_DELAY_PRINTOUT
    if ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT )
#else
    if ( st_ivas->ivas_format == MASA_FORMAT )
#endif
    {
        /* note: in MASA, all delay is compensated at the decoder by default, so subtract the encoder delay for print-out */
        nSamples[1] -= NS2SA( hDecoderConfig->output_Fs, IVAS_ENC_DELAY_NS );
@@ -3966,7 +3970,11 @@ static ivas_error set_pcm_buffer_to_zero(
            error = IVAS_ERR_INTERNAL;
    }

#ifdef FIX_SPLITREND_WARNINGS
    return error;
#else
    return IVAS_ERR_OK;
#endif
}


+18 −1
Original line number Diff line number Diff line
@@ -3772,12 +3772,15 @@ static ivas_error requantize_direction_EC_3(
    /* gradually increase the bits following the performance of the EC layer*/
    int16_t j, k;
    int16_t use_vq;
    int16_t diff, allowed_bits, nbits, last_j;
    int16_t diff, allowed_bits, last_j;
    int16_t no_subframes, start_band;
    float st[MAX_PARAM_SPATIAL_SUBFRAMES], ct[MAX_PARAM_SPATIAL_SUBFRAMES];
    int16_t *bits_dir0;
#ifdef DEBUGGING
    int16_t nbits;

    nbits = 0;
#endif
    no_subframes = q_direction->cfg.nblocks;
    start_band = q_direction->cfg.start_band;

@@ -3808,7 +3811,9 @@ static ivas_error requantize_direction_EC_3(
    else /* 2D */
    {
        diff = 0;
#ifdef DEBUGGING
        nbits = 0;
#endif
        for ( j = start_band; j < coding_subbands; j++ )
        {
            bits_dir0 = (int16_t *) q_direction->band_data[j].bits_sph_idx;
@@ -3834,11 +3839,19 @@ static ivas_error requantize_direction_EC_3(

                if ( q_direction->cfg.mc_ls_setup != MC_LS_SETUP_INVALID )
                {
#ifdef DEBUGGING
                    nbits += truncGR0_chan( azimuth_orig[j], q_direction->band_data[j].azimuth, q_direction->band_data[j].azimuth_index, no_subframes, allowed_bits, st, ct );
#else
                    truncGR0_chan( azimuth_orig[j], q_direction->band_data[j].azimuth, q_direction->band_data[j].azimuth_index, no_subframes, allowed_bits, st, ct );
#endif
                }
                else
                {
#ifdef DEBUGGING
                    nbits += truncGR0( azimuth_orig[j], q_direction->band_data[j].azimuth, q_direction->band_data[j].azimuth_index, no_subframes, allowed_bits, st, ct );
#else
                    truncGR0( azimuth_orig[j], q_direction->band_data[j].azimuth, q_direction->band_data[j].azimuth_index, no_subframes, allowed_bits, st, ct );
#endif
                }

                if ( allowed_bits <= no_subframes + 1 )
@@ -3865,7 +3878,11 @@ static ivas_error requantize_direction_EC_3(
                                                                                         &q_direction->band_data[j].azimuth_index[k], q_direction->cfg.mc_ls_setup );
                    q_direction->band_data[j].elevation_index[k] = 0;
                }
#ifdef DEBUGGING
                nbits += write_fixed_rate_direction( hMetaData, q_direction, j, no_subframes );
#else
                write_fixed_rate_direction( hMetaData, q_direction, j, no_subframes );
#endif
            }
        }
    }
Loading