diff --git a/lib_com/ivas_ism_com_fx.c b/lib_com/ivas_ism_com_fx.c index 43cdf441f8f908a61cc1a0d40d65f78be9443823..76e5e001008b09fd7b2927083b4091453fd3296c 100644 --- a/lib_com/ivas_ism_com_fx.c +++ b/lib_com/ivas_ism_com_fx.c @@ -438,17 +438,17 @@ ivas_error ivas_ism_config_fx( bitbudget_to_brate( bits_CoreCoder, total_brate, n_ISms ); } - return error; } + /*-------------------------------------------------------------------* * ivas_ism_reset_metadata() * * Reset ISM metadata parameters *-------------------------------------------------------------------*/ -void ivas_ism_reset_metadata( +void ivas_ism_reset_metadata_fx( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handle */ ) { @@ -488,6 +488,7 @@ void ivas_ism_reset_metadata( return; } +#ifndef FIX_2649_RESET_ISM_METADATA void ivas_ism_reset_metadata_enc( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handle */ ) @@ -509,7 +510,7 @@ void ivas_ism_reset_metadata_enc( return; } - +#endif /*-------------------------------------------------------------------* * ivas_ism_reset_metadata_API() @@ -521,7 +522,11 @@ void ivas_ism_reset_metadata_API( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handle */ ) { +#ifdef FIX_2649_RESET_ISM_METADATA + ivas_ism_reset_metadata_fx( hIsmMeta ); +#else ivas_ism_reset_metadata_enc( hIsmMeta ); +#endif return; } diff --git a/lib_com/ivas_prot_fx.h b/lib_com/ivas_prot_fx.h index 04683897b638a659e657677edc164b57163ad6ee..5caff1909f2c5016e707db1a40f1ccbb1e94b260 100644 --- a/lib_com/ivas_prot_fx.h +++ b/lib_com/ivas_prot_fx.h @@ -5935,14 +5935,15 @@ void bitbudget_to_brate( const Word16 N /* i : number of entries to be converted */ ); -void ivas_ism_reset_metadata( +void ivas_ism_reset_metadata_fx( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handles */ ); +#ifndef FIX_2649_RESET_ISM_METADATA void ivas_ism_reset_metadata_enc( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handle */ ); - +#endif void ivas_ism_reset_metadata_API( ISM_METADATA_HANDLE hIsmMeta /* i/o: ISM metadata handles */ ); diff --git a/lib_com/options.h b/lib_com/options.h old mode 100755 new mode 100644 index 78dc29e7529acef90d41e3f00f5e2b8293c45c5e..e0002ed52023ba876d5f0320497b168abcd874a1 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -141,6 +141,7 @@ #define NONBE_FIX_2493_EXTRACT_L_swb_tbe_enc_fx /* FhG: Fix extract_l overflow inside swb_tbe_enc_fx() */ #define NONBE_FIX_2493_EXTRACT_L_bw_detect_fx /* FhG: Fix extract_l overflow inside bw_detect_fx(). Saturation, not a optimal fix. */ #define FIX_2493_CHECK_EXTRACT_L_FIX_INSTRUMENTATION /* FhG: Fix instrumentation related to extract_l. */ +#define FIX_2649_RESET_ISM_METADATA /* VA: basop issue 2649: harmonize ISM metadata reset */ #define FIX_BASOP_2655_MC2SBA_GATE /* FhG: BASOP #2655: replace the three NE_32 with EQ_32, in condition guarding the MC->SBA conversion(ivas_mc2sba_fx). */ /* ##################### End NON-BE switches ########################### */ diff --git a/lib_dec/ivas_ism_metadata_dec_fx.c b/lib_dec/ivas_ism_metadata_dec_fx.c index 4e9fe4154c1e3d01c4fa3b7d6a50f0c2fb600648..163d6216add51754e3e6aa57917cd286ce7aabe5 100644 --- a/lib_dec/ivas_ism_metadata_dec_fx.c +++ b/lib_dec/ivas_ism_metadata_dec_fx.c @@ -817,7 +817,7 @@ void ivas_ism_reset_metadata_handle_dec_fx( hIsmMeta->ism_md_lowrate_flag = 0; move16(); - ivas_ism_reset_metadata( hIsmMeta ); + ivas_ism_reset_metadata_fx( hIsmMeta ); return; } diff --git a/lib_enc/ivas_ism_metadata_enc_fx.c b/lib_enc/ivas_ism_metadata_enc_fx.c index 4bf642ef91b373b53d81d5aac3977fc58ff3a0a5..66b6a6069134ab5185bea4ea348e5428bdd7a2d7 100644 --- a/lib_enc/ivas_ism_metadata_enc_fx.c +++ b/lib_enc/ivas_ism_metadata_enc_fx.c @@ -990,7 +990,11 @@ ivas_error ivas_ism_metadata_enc_create_fx( st_ivas->hIsmMetaData[ch]->q_elevation_old_fx = 0; move16(); +#ifdef FIX_2649_RESET_ISM_METADATA + ivas_ism_reset_metadata_fx( st_ivas->hIsmMetaData[ch] ); +#else ivas_ism_reset_metadata_enc( st_ivas->hIsmMetaData[ch] ); +#endif st_ivas->hIsmMetaData[ch]->last_azimuth_fx = 0; // Q22 move32(); @@ -1039,11 +1043,13 @@ ivas_error ivas_ism_metadata_enc_create_fx( return IVAS_ERR_OK; } + /*------------------------------------------------------------------------- * encode_radius() * * Radius index encoding *-------------------------------------------------------------------------*/ + static void encode_radius_fx( BSTR_ENC_HANDLE hBstr, /* i/o: bitstream handle */ Word16 *last_radius_idx, /* i/o: last radius index */ diff --git a/lib_enc/lib_enc_fx.c b/lib_enc/lib_enc_fx.c index dadaad3de00b0e3b5e62e346a766fa3ff2042c17..94d10ed993cb631a616e29b31a94cc781991cba6 100644 --- a/lib_enc/lib_enc_fx.c +++ b/lib_enc/lib_enc_fx.c @@ -1335,9 +1335,19 @@ ivas_error IVAS_ENC_EncodeFrameToSerial( return error; } +#ifdef FIX_2649_RESET_ISM_METADATA + test(); + test(); + IF( EQ_32( hEncoderConfig->ivas_format, ISM_FORMAT ) || EQ_32( hEncoderConfig->ivas_format, MASA_ISM_FORMAT ) || EQ_32( hEncoderConfig->ivas_format, SBA_ISM_FORMAT ) ) +#else IF( EQ_32( hEncoderConfig->ivas_format, ISM_FORMAT ) ) +#endif { +#ifdef FIX_2649_RESET_ISM_METADATA + FOR( i = 0; i < hEncoderConfig->nchan_ism; ++i ) +#else FOR( i = 0; i < hEncoderConfig->nchan_inp; ++i ) +#endif { IF( !hIvasEnc->ismMetadataProvided[i] ) {