Loading lib_com/ivas_cnst.h +3 −0 Original line number Diff line number Diff line Loading @@ -1148,6 +1148,9 @@ enum #define MASA_TRANSP_BITS 1 #define NO_BITS_MASA_ISM_NO_OBJ 2 #ifdef NONBE_FIX_ISM_XOVER_BR #define NO_BITS_SBA_ISM_NO_OBJ 3 #endif #define MASA2TOTAL_THR 0.98f #define BITS_MASA2TOTTAL_DCT0 6 #define STEP_M2T 0.1f Loading lib_dec/ivas_init_dec.c +24 −8 Original line number Diff line number Diff line Loading @@ -451,11 +451,27 @@ ivas_error ivas_dec_setup( } else if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef NONBE_FIX_ISM_XOVER_BR int16_t osba_mode_bit = st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 1]; #endif /* the number of objects is written at the end of the bitstream, in the SBA metadata */ #ifdef NONBE_FIX_ISM_XOVER_BR st_ivas->nchan_ism = 2 * st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 2] + st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 3] + 1; #else 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; #endif #ifdef NONBE_FIX_ISM_XOVER_BR if ( osba_mode_bit ) { st_ivas->ism_mode = ISM_SBA_MODE_DISC; } #endif #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_total_brate < IVAS_24k4 || ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) ) if ( ivas_total_brate < IVAS_24k4 || osba_mode_bit ) #else if ( ivas_total_brate < IVAS_24k4 || ivas_total_brate >= IVAS_256k ) #endif Loading @@ -471,7 +487,7 @@ ivas_error ivas_dec_setup( /* read Ambisonic (SBA) order */ #ifdef NONBE_FIX_ISM_XOVER_BR if ( !ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) ) if ( !osba_mode_bit ) #else if ( ivas_total_brate < IVAS_256k ) #endif Loading Loading @@ -513,7 +529,7 @@ ivas_error ivas_dec_setup( } } #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) ) if ( osba_mode_bit ) #else if ( ivas_total_brate >= IVAS_256k ) #endif Loading lib_dec/ivas_ism_metadata_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -208,7 +208,7 @@ ivas_error ivas_ism_metadata_dec( if ( ism_mode == ISM_SBA_MODE_DISC ) { /* number of objects was read in ivas_dec_setup() */ st0->next_bit_pos += NO_BITS_MASA_ISM_NO_OBJ; st0->next_bit_pos += NO_BITS_SBA_ISM_NO_OBJ; } else if ( ism_mode != ISM_MASA_MODE_DISC && ism_mode != ISM_MASA_MODE_MASA_ONE_OBJ ) { Loading lib_dec/ivas_jbm_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -428,7 +428,7 @@ ivas_error ivas_jbm_dec_tc( } else { nb_bits_metadata[1] += NO_BITS_MASA_ISM_NO_OBJ; nb_bits_metadata[1] += NO_BITS_SBA_ISM_NO_OBJ; sba_ch_idx = 0; } Loading lib_dec/ivas_sba_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,9 @@ ivas_error ivas_sba_dec_reconfigure( ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); nchan_hp20_old = getNumChanSynthesis( st_ivas ); #ifdef NONBE_FIX_ISM_XOVER_BR if ( !(st_ivas->ivas_format == SBA_ISM_FORMAT ) ) #else if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef NONBE_FIX_ISM_XOVER_BR Loading @@ -157,6 +160,7 @@ ivas_error ivas_sba_dec_reconfigure( } } else #endif { st_ivas->ism_mode = ISM_MODE_NONE; } Loading Loading
lib_com/ivas_cnst.h +3 −0 Original line number Diff line number Diff line Loading @@ -1148,6 +1148,9 @@ enum #define MASA_TRANSP_BITS 1 #define NO_BITS_MASA_ISM_NO_OBJ 2 #ifdef NONBE_FIX_ISM_XOVER_BR #define NO_BITS_SBA_ISM_NO_OBJ 3 #endif #define MASA2TOTAL_THR 0.98f #define BITS_MASA2TOTTAL_DCT0 6 #define STEP_M2T 0.1f Loading
lib_dec/ivas_init_dec.c +24 −8 Original line number Diff line number Diff line Loading @@ -451,11 +451,27 @@ ivas_error ivas_dec_setup( } else if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef NONBE_FIX_ISM_XOVER_BR int16_t osba_mode_bit = st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 1]; #endif /* the number of objects is written at the end of the bitstream, in the SBA metadata */ #ifdef NONBE_FIX_ISM_XOVER_BR st_ivas->nchan_ism = 2 * st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 2] + st_ivas->bit_stream[ivas_total_brate / FRAMES_PER_SEC - 3] + 1; #else 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; #endif #ifdef NONBE_FIX_ISM_XOVER_BR if ( osba_mode_bit ) { st_ivas->ism_mode = ISM_SBA_MODE_DISC; } #endif #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_total_brate < IVAS_24k4 || ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) ) if ( ivas_total_brate < IVAS_24k4 || osba_mode_bit ) #else if ( ivas_total_brate < IVAS_24k4 || ivas_total_brate >= IVAS_256k ) #endif Loading @@ -471,7 +487,7 @@ ivas_error ivas_dec_setup( /* read Ambisonic (SBA) order */ #ifdef NONBE_FIX_ISM_XOVER_BR if ( !ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) ) if ( !osba_mode_bit ) #else if ( ivas_total_brate < IVAS_256k ) #endif Loading Loading @@ -513,7 +529,7 @@ ivas_error ivas_dec_setup( } } #ifdef NONBE_FIX_ISM_XOVER_BR if ( ivas_osba_ism_mode_select( ivas_total_brate, st_ivas->nchan_ism ) ) if ( osba_mode_bit ) #else if ( ivas_total_brate >= IVAS_256k ) #endif Loading
lib_dec/ivas_ism_metadata_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -208,7 +208,7 @@ ivas_error ivas_ism_metadata_dec( if ( ism_mode == ISM_SBA_MODE_DISC ) { /* number of objects was read in ivas_dec_setup() */ st0->next_bit_pos += NO_BITS_MASA_ISM_NO_OBJ; st0->next_bit_pos += NO_BITS_SBA_ISM_NO_OBJ; } else if ( ism_mode != ISM_MASA_MODE_DISC && ism_mode != ISM_MASA_MODE_MASA_ONE_OBJ ) { Loading
lib_dec/ivas_jbm_dec.c +1 −1 Original line number Diff line number Diff line Loading @@ -428,7 +428,7 @@ ivas_error ivas_jbm_dec_tc( } else { nb_bits_metadata[1] += NO_BITS_MASA_ISM_NO_OBJ; nb_bits_metadata[1] += NO_BITS_SBA_ISM_NO_OBJ; sba_ch_idx = 0; } Loading
lib_dec/ivas_sba_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -141,6 +141,9 @@ ivas_error ivas_sba_dec_reconfigure( ivas_init_dec_get_num_cldfb_instances( st_ivas, &numCldfbAnalyses_old, &numCldfbSyntheses_old ); nchan_hp20_old = getNumChanSynthesis( st_ivas ); #ifdef NONBE_FIX_ISM_XOVER_BR if ( !(st_ivas->ivas_format == SBA_ISM_FORMAT ) ) #else if ( st_ivas->ivas_format == SBA_ISM_FORMAT ) { #ifdef NONBE_FIX_ISM_XOVER_BR Loading @@ -157,6 +160,7 @@ ivas_error ivas_sba_dec_reconfigure( } } else #endif { st_ivas->ism_mode = ISM_MODE_NONE; } Loading