Loading CMakeLists.txt +1 −2 Original line number Diff line number Diff line Loading @@ -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() Loading lib_com/options.h 100755 → 100644 +3 −0 Original line number Diff line number Diff line Loading @@ -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 ################################## */ Loading lib_dec/ACcontextMapping_dec.c +11 −1 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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 ) Loading Loading @@ -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 ); Loading Loading @@ -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; Loading Loading @@ -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 ); Loading lib_dec/lib_dec.c +8 −0 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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 } Loading lib_enc/ivas_qmetadata_enc.c +18 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 ) Loading @@ -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 Loading
CMakeLists.txt +1 −2 Original line number Diff line number Diff line Loading @@ -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() Loading
lib_com/options.h 100755 → 100644 +3 −0 Original line number Diff line number Diff line Loading @@ -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 ################################## */ Loading
lib_dec/ACcontextMapping_dec.c +11 −1 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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 ) Loading Loading @@ -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 ); Loading Loading @@ -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; Loading Loading @@ -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 ); Loading
lib_dec/lib_dec.c +8 −0 Original line number Diff line number Diff line Loading @@ -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 ); Loading Loading @@ -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 } Loading
lib_enc/ivas_qmetadata_enc.c +18 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 ) Loading @@ -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