diff --git a/apps/encoder.c b/apps/encoder.c index e7c5a20b7be9e3a6525e1c9041b3ef8a45cc28ce..adf7a88af24946930f3b39b16e697bf6c38c214c 100644 --- a/apps/encoder.c +++ b/apps/encoder.c @@ -937,7 +937,19 @@ static bool parseCmdlIVAS_enc( return false; } } - +#ifdef DEBUG_MODE_INFO +#ifdef DEBUG_MODE_INFO_TWEAK + /*-----------------------------------------------------------------* + * Define additional subfolder for debug info output in ./res + *-----------------------------------------------------------------*/ + else if ( strcmp( argv_to_upper, "-INFO" ) == 0 ) + { + extern char infoFolder[FILENAME_MAX]; + strncpy( infoFolder, argv[i + 1], sizeof( infoFolder ) ); + i += 2; + } +#endif /* #ifdef DEBUG_MODE_INFO_TWEAK */ +#endif /* #ifdef DEBUG_MODE_INFO */ /*-----------------------------------------------------------------* * deactivate delay compensation @@ -1637,6 +1649,11 @@ static void usage_enc( void ) fprintf( stdout, "-pca : activate PCA in SBA format FOA at 256 kbps \n" ); fprintf( stdout, "-level level : Complexity level, level = (1, 2, 3), will be defined after characterisation. \n" ); fprintf( stdout, " Currently, all values default to level 3 (full functionality).\n" ); +#ifdef DEBUG_MODE_INFO +#ifdef DEBUG_MODE_INFO_TWEAK + fprintf( stdout, "-info : specify subfolder name for debug output\n" ); +#endif +#endif fprintf( stdout, "-q : Quiet mode, no frame counters\n" ); fprintf( stdout, " default is deactivated\n" ); fprintf( stdout, "\n" ); diff --git a/lib_com/bits_alloc_fx.c b/lib_com/bits_alloc_fx.c index c625f01fa0ef15ba4961e46f034ec956870f3424..733a5ed4d10595a49d19b59db9297b8e25f162d3 100644 --- a/lib_com/bits_alloc_fx.c +++ b/lib_com/bits_alloc_fx.c @@ -514,7 +514,7 @@ static ivas_error acelp_FCB_allocator( } cdbk = sub( cdbk, 1 ); -#if defined DEBUGGING +#ifdef DEBUGGING if ( cdbk < 0 && coder_type != TRANSITION ) { return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too low bit-budget for fixed innovation codebook (frame = %d). Exiting! \n" ); @@ -641,7 +641,6 @@ ivas_error config_acelp1( Word16 flag_hardcoded, coder_type_sw, fix_first; Word32 core_brate; #ifdef DEBUGGING - Word32 core_brate_inpI = core_brate_inp; #ifdef REMOVE_IVAS_UNUSED_PARAMETERS_WARNING (void) active_cnt; (void) core_brate_inpI; @@ -681,15 +680,15 @@ ivas_error config_acelp1( nb_subfr = NB_SUBFR; move16(); -#if defined DEBUGGING +#ifdef DEBUGGING if ( ( ( core_brate_inp < 5900 && coder_type > UNVOICED ) && !( core_brate_inp < MIN_TC_BRATE && coder_type == TRANSITION ) ) && !( idchan > 0 && element_mode == IVAS_CPE_TD ) && !( element_mode == IVAS_SCE && tdm_low_rate_mode ) ) { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too low bitrate (%d bps) for ACELP@12k8 in frame %d. Exiting!\n", core_brate_inpI ); + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too low bitrate (%d bps) for ACELP@12k8 in frame %d. Exiting!\n", core_brate_inp ); } if ( core_brate_inp > ACELP_12k8_HIGH_LIMIT && core == ACELP_CORE ) { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too high bitrate (%d bps) for ACELP@12k8 in frame %d. Exiting!\n", core_brate_inpI ); + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too high bitrate (%d bps) for ACELP@12k8 in frame %d. Exiting!\n", core_brate_inp ); } #endif } @@ -698,10 +697,10 @@ ivas_error config_acelp1( nb_subfr = NB_SUBFR16k; move16(); -#if defined DEBUGGING +#ifdef DEBUGGING if ( core_brate_inp < ACELP_16k_LOW_LIMIT && core == ACELP_CORE ) { - return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too low bitrate (%d bps) for ACELP@16k in frame %d. Exiting!\n", core_brate_inpI ); + return IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Error: Too low bitrate (%d bps) for ACELP@16k in frame %d. Exiting!\n", core_brate_inp ); } #endif } @@ -1408,7 +1407,7 @@ ivas_error config_acelp1( } ELSE /* No FCB */ { -#if defined DEBUGGING +#ifdef DEBUGGING IVAS_ERROR( IVAS_ERR_INTERNAL, "WARNING!!!, No bit allocated to FCB, check frame %d\n" ); #endif acelp_cfg->fixed_cdk_index[0] = -1; @@ -1624,7 +1623,7 @@ ivas_error config_acelp1( } ELSE IF( flag_hardcoded && core == ACELP_CORE && bits != 0 ) { -#if defined DEBUGGING +#ifdef DEBUGGING IVAS_ERROR( IVAS_ERR_INTERNAL, "ERROR: bit-budget incorrect (%d bits) in frame %d.\n", (Word32) bits ); #endif } @@ -1698,7 +1697,7 @@ ivas_error config_acelp1( bits -= allocate_unused( core_brate, coder_type, bits, 1, 0, LSFPRM, &acelp_cfg->lsf_bits ); } #endif -#if defined DEBUGGING +#ifdef DEBUGGING if ( idchan > 0 && bits > 0 && ( coder_type > UNVOICED || tdm_low_rate_mode == 0 ) ) { IVAS_ERROR( IVAS_ERR_INTERNAL, "WARNING !! Unused bits in secondary channel at frame %d\n" ); @@ -1735,7 +1734,7 @@ ivas_error config_acelp1( } ELSE IF( bits < 0 && !( EQ_16( coder_type, UNVOICED ) && EQ_16( tdm_low_rate_mode, 1 ) && EQ_16( element_mode, IVAS_CPE_TD ) ) ) { -#if defined DEBUGGING +#ifdef DEBUGGING IVAS_ERROR( IVAS_ERR_INTERNAL, "ERROR: bit-budget incorrect (%d bits) in frame %d.\n", (Word32) bits ); #endif } diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index ea13117e52b54aa70131bd893c71a7d76b595131..da6477a3db46fbf2e09cfc91eaf12318e2d36cb0 100644 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -7813,6 +7813,10 @@ void ivas_omasa_enc( void ivas_set_surplus_brate_enc( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +#ifdef DEBUG_MODE_INFO + , + const int16_t *nb_bits_metadata /* i : number of metadata bits */ +#endif ); void ivas_set_surplus_brate_dec( diff --git a/lib_com/options.h b/lib_com/options.h index a16e34d67db2700b1d7565dfabc9ec5b558ba527..264ea24264dd88710bc55a2d6bb85d4fef3823c5 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -47,7 +47,9 @@ /*#define DEBUGGING*/ /* Allows debugging message to be printed out during runtime */ #ifdef DEBUGGING -/*#define DBG_WAV_WRITER*/ +#define DEBUG_MODE_INFO /* define to output most important parameters to the subdirectory "res/" */ +#define DEBUG_MODE_INFO_TWEAK /* enable command line switch to specify subdirectory for debug info output inside "./res/" */ +/*#define DBG_WAV_WRITER*/ /* enable dbgwrite_wav() function for generating ".wav" files */ #endif #define SUPPORT_JBM_TRACEFILE /* Support for JBM tracefile, which is needed for 3GPP objective/subjective testing, but not relevant for real-world implementations */ diff --git a/lib_enc/amr_wb_enc_fx.c b/lib_enc/amr_wb_enc_fx.c index 4a3d44fe3d58017caa1f8ad96f823d36458cdd01..ea0f90059a9b80e967c475365218e065d9dc8760 100644 --- a/lib_enc/amr_wb_enc_fx.c +++ b/lib_enc/amr_wb_enc_fx.c @@ -590,9 +590,22 @@ void amr_wb_enc_fx( /* update main codec parameters */ updt_enc_common_fx( st, Etot, Q_new ); -#ifdef MY_DEBUG - dbgwrite_indices( st ); + +#ifdef DEBUG_MODE_INFO + dbgwrite( &st->codec_mode, sizeof( short ), 1, input_frame, "res/codec" ); + dbgwrite( &st->core, sizeof( short ), 1, input_frame, "res/core" ); + dbgwrite( &st->extl, sizeof( short ), 1, input_frame, "res/extl" ); + dbgwrite( &st->bwidth, sizeof( short ), 1, input_frame, "res/bwidth" ); + float ener_flt = st->total_brate / 1000.0f; + dbgwrite( &ener_flt, sizeof( float ), 1, input_frame, "res/total_brate" ); + ener_flt = st->core_brate / 1000.0f; + dbgwrite( &ener_flt, sizeof( float ), 1, input_frame, "res/core_brate" ); + dbgwrite( &st->coder_type, sizeof( short ), 1, input_frame, "res/coder_type" ); + dbgwrite( &st->cng_type, sizeof( short ), 1, input_frame, "res/cng_type" ); + dbgwrite( &st->L_frame, sizeof( short ), 1, input_frame, "res/L_frame" ); + dbgwrite( &st->vad_flag, sizeof( short ), 1, input_frame, "res/vad_flag" ); #endif + return; } /*---------------------------------------------------------------------* diff --git a/lib_enc/evs_enc_fx.c b/lib_enc/evs_enc_fx.c index e234c0c23265511a9e6c4494557c571451b45d51..d8d35bd234b09ecfacdd356dc4aa51e39579d945 100644 --- a/lib_enc/evs_enc_fx.c +++ b/lib_enc/evs_enc_fx.c @@ -588,9 +588,25 @@ ivas_error evs_enc_fx( st->L_frame = L_FRAME; st->rf_mode = 1; } -#ifdef MY_DEBUG - dbgwrite_indices( st ); + +#ifdef DEBUG_MODE_INFO + dbgwrite( &st->codec_mode, sizeof( short ), 1, input_frame, "res/codec" ); + dbgwrite( &st->core, sizeof( short ), 1, input_frame, "res/core" ); + dbgwrite( &st->extl, sizeof( short ), 1, input_frame, "res/extl" ); + dbgwrite( &st->bwidth, sizeof( short ), 1, input_frame, "res/bwidth" ); + float ener_flt = st->total_brate / 1000.0f; + dbgwrite( &ener_flt, sizeof( float ), 1, input_frame, "res/total_brate" ); + ener_flt = st->core_brate / 1000.0f; + dbgwrite( &ener_flt, sizeof( float ), 1, input_frame, "res/core_brate" ); + ener_flt = st->extl_brate / 1000.0f; + dbgwrite( &ener_flt, sizeof( float ), 1, input_frame, "res/extl_brate" ); + dbgwrite( &st->coder_type, sizeof( short ), 1, input_frame, "res/coder_type" ); + dbgwrite( &st->clas, sizeof( short ), 1, input_frame, "res/clas" ); + dbgwrite( &st->cng_type, sizeof( short ), 1, input_frame, "res/cng_type" ); + dbgwrite( &st->L_frame, sizeof( short ), 1, input_frame, "res/L_frame" ); + dbgwrite( &st->vad_flag, sizeof( short ), 1, input_frame, "res/vad_flag" ); #endif + return error; } diff --git a/lib_enc/ivas_core_enc.c b/lib_enc/ivas_core_enc.c index f6fdae4e4a655374c31cae33cd1d623c78f3e3cd..3c16f3924cb7d8965fc4ffe881a28ce16159f425 100644 --- a/lib_enc/ivas_core_enc.c +++ b/lib_enc/ivas_core_enc.c @@ -857,7 +857,42 @@ ivas_error ivas_core_enc( } } +#ifdef DEBUG_MODE_INFO + for ( n = 0; n < n_CoreChannels; n++ ) + { + float tmpF; + short tmpS, id; + st = sts[n]; + id = st->id_element; + + dbgwrite( &st->core, sizeof( short ), 1, input_frame, fname( debug_dir, "core", n, id, ENC ) ); + dbgwrite( &st->extl, sizeof( short ), 1, input_frame, fname( debug_dir, "extl", n, id, ENC ) ); + dbgwrite( &st->bwidth, sizeof( short ), 1, input_frame, fname( debug_dir, "bwidth", n, id, ENC ) ); + tmpF = st->total_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "total_brate", n, id, ENC ) ); + tmpS = st->bits_frame_nominal; + dbgwrite( &tmpS, sizeof( short ), 1, input_frame, fname( debug_dir, "bits_nominal", n, id, ENC ) ); + tmpF = st->core_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "core_brate", n, id, ENC ) ); + tmpF = st->extl_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "extl_brate", n, id, ENC ) ); + + dbgwrite( &st->coder_type, sizeof( short ), 1, input_frame, fname( debug_dir, "coder_type", n, id, ENC ) ); + dbgwrite( &st->clas, sizeof( short ), 1, input_frame, fname( debug_dir, "clas", n, id, ENC ) ); + dbgwrite( &st->cng_type, sizeof( short ), 1, input_frame, fname( debug_dir, "cng_type", n, id, ENC ) ); + dbgwrite( &st->L_frame, sizeof( short ), 1, input_frame, fname( debug_dir, "L_frame", n, id, ENC ) ); + dbgwrite( &st->vad_flag, sizeof( short ), 1, input_frame, fname( debug_dir, "vad_flag", n, id, ENC ) ); + dbgwrite( &st->localVAD, sizeof( short ), 1, input_frame, fname( debug_dir, "localVAD", n, id, ENC ) ); + + dbgwrite( &st->count_WB, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "count_WB", n, id, ENC ) ); + dbgwrite( &st->count_SWB, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "count_SWB", n, id, ENC ) ); + + dbgwrite( &st->sp_aud_decision0, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "sp_aud_decision0", n, id, ENC ) ); + dbgwrite( &st->sp_aud_decision1, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "sp_aud_decision1", n, id, ENC ) ); + dbgwrite( &st->sp_aud_decision2, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "sp_aud_decision2", n, id, ENC ) ); + } +#endif pop_wmops(); return error; diff --git a/lib_enc/ivas_cpe_enc.c b/lib_enc/ivas_cpe_enc.c index 7b13bc2c9ea8ebbde2c00feb60516fa19da5e1aa..c0b30eba8cb79aac7e8f8d59f0b8452490eb408c 100644 --- a/lib_enc/ivas_cpe_enc.c +++ b/lib_enc/ivas_cpe_enc.c @@ -629,6 +629,9 @@ ivas_error ivas_cpe_enc( set_zero( sts[1]->input, input_frame ); } +#ifdef DEBUG_MODE_INFO + dbgwrite( &hCPE->element_mode, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "element_mode", 0, sts[0]->id_element, ENC ) ); +#endif /*----------------------------------------------------------------* * Front Pre-processing @@ -924,6 +927,12 @@ ivas_error ivas_cpe_enc( sts[n]->hTranDet->transientDetector.prev_bIsAttackPresent = sts[n]->hTranDet->transientDetector.bIsAttackPresent; } +#ifdef DEBUG_MODE_INFO + { + float tmpF = ivas_total_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "element_brate", 0, cpe_id, ENC ) ); + } +#endif pop_wmops(); return error; diff --git a/lib_enc/ivas_enc.c b/lib_enc/ivas_enc.c index 821389abc036812cfb0161a315d60f77a485a1c2..d73ec1ea50405a2fc2703484ff699af4911f35a3 100644 --- a/lib_enc/ivas_enc.c +++ b/lib_enc/ivas_enc.c @@ -365,7 +365,11 @@ ivas_error ivas_enc( } /* Configuration of combined-format bit-budget distribution */ +#ifdef DEBUG_MODE_INFO + ivas_set_surplus_brate_enc( st_ivas, nb_bits_metadata ); +#else ivas_set_surplus_brate_enc( st_ivas ); +#endif /* Encode MASA transport channels */ if ( ( ivas_cpe_enc( st_ivas, 0, data_f[n], data_f[n + 1], input_frame, nb_bits_metadata[0] ) ) != IVAS_ERR_OK ) @@ -1164,6 +1168,12 @@ ivas_error ivas_enc( hEncoderConfig->last_ivas_total_brate = ivas_total_brate; +#ifdef DEBUG_MODE_INFO + { + float tmpF = ivas_total_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, "res/ivas_total_brate" ); + } +#endif pop_wmops(); return error; diff --git a/lib_enc/ivas_ism_enc.c b/lib_enc/ivas_ism_enc.c index ee9635054f5f9f47ab1a5a805009e0795a17d9bc..d1e9d43c32793542e26da26a30025f5ef6d70219 100644 --- a/lib_enc/ivas_ism_enc.c +++ b/lib_enc/ivas_ism_enc.c @@ -372,6 +372,39 @@ ivas_error ivas_ism_enc( } } +#ifdef DEBUG_MODE_INFO + if ( dtx_flag ) + { + float tmpF; + int16_t id, n; + + n = 0; + for ( sce_id = 0; sce_id < nchan_transport_ism; sce_id++ ) + { + if ( sce_id != st_ivas->hISMDTX->sce_id_dtx ) + { + st = st_ivas->hSCE[sce_id]->hCoreCoder[0]; + id = st->id_element; + + dbgwrite( &st->core, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "core", n, id, ENC ) ); + dbgwrite( &st->extl, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "extl", n, id, ENC ) ); + dbgwrite( &st->bwidth, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "bwidth", n, id, ENC ) ); + tmpF = st->total_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "total_brate", n, id, ENC ) ); + tmpF = st->core_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "core_brate", n, id, ENC ) ); + tmpF = st->extl_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "extl_brate", n, id, ENC ) ); + + dbgwrite( &st->coder_type, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "coder_type", n, id, ENC ) ); + dbgwrite( &st->coder_type_raw, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "coder_type_raw", n, id, ENC ) ); + dbgwrite( &st->vad_flag, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "vad_flag", n, id, ENC ) ); + dbgwrite( &st->localVAD, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "localVAD", n, id, ENC ) ); + } + } + } +#endif + pop_wmops(); return error; diff --git a/lib_enc/ivas_omasa_enc.c b/lib_enc/ivas_omasa_enc.c index 7d815d5d110aee4d3f6275b2a0f9fad014565a4c..09fb8777c5a877e44f3e3c313b2589b2ad87839d 100644 --- a/lib_enc/ivas_omasa_enc.c +++ b/lib_enc/ivas_omasa_enc.c @@ -752,6 +752,10 @@ void ivas_set_ism_importance_interformat( void ivas_set_surplus_brate_enc( Encoder_Struct *st_ivas /* i/o: IVAS encoder structure */ +#ifdef DEBUG_MODE_INFO + , + const int16_t *nb_bits_metadata /* i : number of metadata bits */ +#endif ) { if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ ) @@ -773,6 +777,31 @@ void ivas_set_surplus_brate_enc( st_ivas->hCPE[0]->brate_surplus = 0; } +#ifdef DEBUG_MODE_INFO + if ( st_ivas->hSCE[0] != NULL ) + { + int16_t input_frame = (int16_t) ( st_ivas->hEncoderConfig->input_Fs / FRAMES_PER_SEC ); + float tmpF = 0; + + if ( st_ivas->ism_mode == ISM_MASA_MODE_PARAM_ONE_OBJ || st_ivas->ism_mode == ISM_MASA_MODE_MASA_ONE_OBJ ) + { + tmpF += st_ivas->hSCE[0]->hCoreCoder[0]->total_brate + (float) ( nb_bits_metadata[1] * 50 ); + } + else + { + for ( int16_t i = 0; i < st_ivas->hEncoderConfig->nchan_ism; i++ ) + { + tmpF += st_ivas->hSCE[i]->hCoreCoder[0]->total_brate + (float) ( nb_bits_metadata[i + 1] * 50 ); + } + } + tmpF /= 1000.f; + dbgwrite( &tmpF, 4, 1, input_frame, "res/brate_ISM" ); /* == ism_total_brate incl. ISM MD */ + tmpF = st_ivas->hEncoderConfig->ivas_total_brate / 1000.0f - tmpF; + dbgwrite( &tmpF, 4, 1, input_frame, "res/brate_MASA" ); /* == masa_total_brate incl. MASA MD */ + tmpF = nb_bits_metadata[0] * FRAMES_PER_SEC / 1000.0f; + dbgwrite( &tmpF, 4, 1, input_frame, "res/brate_MASA_MD" ); /* == MASA MD bitrate */ + } +#endif return; } diff --git a/lib_enc/ivas_sce_enc.c b/lib_enc/ivas_sce_enc.c index cbaf1faa3ce98f5d4c02bca15ac3760ded297b7c..dd9f092c3d9a2ebc28cb784a07a3a73b0e63d891 100644 --- a/lib_enc/ivas_sce_enc.c +++ b/lib_enc/ivas_sce_enc.c @@ -171,6 +171,11 @@ ivas_error ivas_sce_enc( flag_16k_smc = 1; } +#ifdef DEBUG_MODE_INFO + dbgwrite( st->input - NS2SA( st->input_Fs, ACELP_LOOK_NS ), sizeof( float ), input_frame, 1, "res/input_DMX" ); + dbgwrite( &st->element_mode, sizeof( int16_t ), 1, input_frame, fname( debug_dir, "element_mode", 0, st->id_element, ENC ) ); +#endif + /*----------------------------------------------------------------* * Front Pre-processing @@ -287,6 +292,13 @@ ivas_error ivas_sce_enc( /* Store previous attack detection flag */ st->hTranDet->transientDetector.prev_bIsAttackPresent = st->hTranDet->transientDetector.bIsAttackPresent; +#ifdef DEBUG_MODE_INFO + { + float tmpF = hSCE->element_brate / 1000.0f; + dbgwrite( &tmpF, sizeof( float ), 1, input_frame, fname( debug_dir, "element_brate", 0, sce_id, ENC ) ); + } +#endif + pop_wmops(); diff --git a/lib_enc/ivas_stereo_ica_enc.c b/lib_enc/ivas_stereo_ica_enc.c index aadfd8d58e7a2807b9ad94b13239672a19f27f6e..596f8642ddf10dac7c715fcdaff66b99eb8b85ee 100644 --- a/lib_enc/ivas_stereo_ica_enc.c +++ b/lib_enc/ivas_stereo_ica_enc.c @@ -1219,6 +1219,9 @@ void stereo_tca_enc( hStereoTCA->corrStatsSmoothFac = 0.7f; estDownmixGain( hStereoTCA, ptrChanL, ptrChanR, 0, input_frame, hCPE->element_mode, NULL, 0 ); hStereoTCA->prevTargetGain = hStereoTCA->targetGain; +#ifdef DEBUG_MODE_INFO + hStereoTCA->indx_ica_NCShift = 0; +#endif /* back up the L/R missing target */ mvr2r( bufChanL + input_frame, hStereoTCA->memChanL, lMemRecalc + lMemRecalc_SCh ); diff --git a/lib_enc/ivas_stereo_td_enc.c b/lib_enc/ivas_stereo_td_enc.c index 56123bcc95243fc1f0f5127be6e86eaf7355adec..bd41d6e0c81db340d87e9c01d48eeaeb2aa731c0 100644 --- a/lib_enc/ivas_stereo_td_enc.c +++ b/lib_enc/ivas_stereo_td_enc.c @@ -256,6 +256,10 @@ ivas_error stereo_set_tdm( hCPE->hStereoTD->tdm_LRTD_flag = hCPE->hStereoTD->prev_fr_LRTD_TD_dec; } +#ifdef DEBUG_MODE_INFO + dbgwrite( &hCPE->hStereoTD->tdm_LRTD_flag, 2, 1, (int16_t) ( hCPE->hCoreCoder[0]->input_Fs / FRAMES_PER_SEC ), "res/tdm_LRTD_flag" ); +#endif + /* normal TD / LRTD switching */ if ( hCPE->hStereoTD->tdm_LRTD_flag == 0 ) @@ -360,6 +364,12 @@ ivas_error stereo_set_tdm( } else { +#ifdef DEBUG_MODE_INFO + { + int16_t tmp = -2; + dbgwrite( &tmp, 2, 1, (int16_t) ( hCPE->hCoreCoder[0]->input_Fs / FRAMES_PER_SEC ), "res/tdm_LRTD_flag" ); + } +#endif hCPE->hCoreCoder[0]->tdm_LRTD_flag = 0; hCPE->hCoreCoder[1]->tdm_LRTD_flag = 0; }