Loading apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -1660,7 +1660,7 @@ static void resetHeadRotation( pPos[i].y_fx = 0; pPos[i].z_fx = 0; #ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION pPos[i].q_fact = 22; pPos[i].q_fact = 31; #else pPos[i].q_fact = 25; #endif Loading apps/renderer.c +46 −0 Original line number Diff line number Diff line Loading @@ -1174,7 +1174,53 @@ int main( fprintf( stderr, "\nError in Renderer Config Init: %s\n", ivas_error_to_string( error ) ); goto cleanup; } #ifdef FIX_1452_DEFAULT_REVERB if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { /* Set reverb room size if specified or select based automatically based on default per input formats */ IVAS_ROOM_SIZE_T selectedReverbRoomSize = args.reverbRoomSize; if ( selectedReverbRoomSize == IVAS_ROOM_SIZE_AUTO ) { bool combinedFormat = false; selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; /* ISM present with MASA/SBA inputs; treat as combined format */ if ( args.inConfig.numAudioObjects > 0 && ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) ) { combinedFormat = true; } if ( combinedFormat ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else { /* Only set large if ISM is present alone, MASA and Ambisonic have been checked above */ if ( args.inConfig.numAudioObjects > 0 && args.inConfig.numMultiChannelBuses == 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_LARGE; } /* if only MC is present, set medium; Will not be overridden by the subsequent block */ else if ( args.inConfig.numMultiChannelBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else if ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_SMALL; } } } if ( ( error = IVAS_REND_SetReverbRoomSize( hIvasRend, selectedReverbRoomSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError setting reverb room size\n" ); goto cleanup; } } #endif if ( args.renderConfigFilePath[0] != '\0' ) { Loading lib_com/ari_fx.c +7 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ #include "prot_fx.h" #include "cnst.h" #ifndef FIX_2402_SIMPLIFY_ARI_CODEC /** * \brief 31x16 Bit multiply (x*y) * Loading @@ -26,6 +28,7 @@ Word32 L_multi31x16_X2( Word16 xh, Word16 xl, Word16 y ) return z; } #endif /*--------------------------------------------------------------- Ari 14 bits common routines Loading @@ -39,6 +42,9 @@ Word32 L_multi31x16_X2( Word16 xh, Word16 xl, Word16 y ) * * \return r*c */ #ifndef FIX_2402_INLINE_FCT_ARI_CODEC /* Note: moved to proto_fx.h */ Word32 mul_sbc_14bits( Word32 r, /* Q0 */ Word16 c /* Q0 */ Loading @@ -57,3 +63,4 @@ Word32 mul_sbc_14bits( return ( ret ); } #endif lib_com/common_api_types.h +1 −1 Original line number Diff line number Diff line Loading @@ -165,7 +165,7 @@ typedef struct { float x, y, z; #ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION Word32 x_fx, y_fx, z_fx; /* Q22, Q22, Q22 */ Word32 x_fx, y_fx, z_fx; /* qfact, qfact, qfact */ #else Word32 x_fx, y_fx, z_fx; #endif Loading lib_com/ivas_cnst.h +11 −0 Original line number Diff line number Diff line Loading @@ -1640,6 +1640,17 @@ typedef enum #define IVAS_REVERB_DEFAULT_M_N_BANDS 31 #define IVAS_REVERB_DEFAULT_S_N_BANDS 60 #ifdef FIX_1452_DEFAULT_REVERB #define IVAS_REVERB_DEFAULT_S_ACOUSTIC_PRE_DELAY_FX 2013266 /* 0.015f in Q27 */ #define IVAS_REVERB_DEFAULT_S_INPUT_PRE_DELAY_FX 2684355 /* 0.02f in Q27 */ #define IVAS_REVERB_DEFAULT_M_ACOUSTIC_PRE_DELAY_FX 2013266 /* 0.015f in Q27 */ #define IVAS_REVERB_DEFAULT_M_INPUT_PRE_DELAY_FX 2684355 /* 0.02f in Q27 */ #define IVAS_REVERB_DEFAULT_L_ACOUSTIC_PRE_DELAY_FX 2181038 /* 0.01625f in Q27 */ #define IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY_FX 13421773 /* 0.1f in Q27 */ #endif #define LR_IAC_LENGTH_NR_FC ( RV_LENGTH_NR_FC ) #define LR_IAC_LENGTH_NR_FC_16KHZ ( RV_LENGTH_NR_FC_16KHZ ) Loading Loading
apps/decoder.c +1 −1 Original line number Diff line number Diff line Loading @@ -1660,7 +1660,7 @@ static void resetHeadRotation( pPos[i].y_fx = 0; pPos[i].z_fx = 0; #ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION pPos[i].q_fact = 22; pPos[i].q_fact = 31; #else pPos[i].q_fact = 25; #endif Loading
apps/renderer.c +46 −0 Original line number Diff line number Diff line Loading @@ -1174,7 +1174,53 @@ int main( fprintf( stderr, "\nError in Renderer Config Init: %s\n", ivas_error_to_string( error ) ); goto cleanup; } #ifdef FIX_1452_DEFAULT_REVERB if ( args.outConfig.audioConfig == IVAS_AUDIO_CONFIG_BINAURAL_ROOM_REVERB ) { /* Set reverb room size if specified or select based automatically based on default per input formats */ IVAS_ROOM_SIZE_T selectedReverbRoomSize = args.reverbRoomSize; if ( selectedReverbRoomSize == IVAS_ROOM_SIZE_AUTO ) { bool combinedFormat = false; selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; /* ISM present with MASA/SBA inputs; treat as combined format */ if ( args.inConfig.numAudioObjects > 0 && ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) ) { combinedFormat = true; } if ( combinedFormat ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else { /* Only set large if ISM is present alone, MASA and Ambisonic have been checked above */ if ( args.inConfig.numAudioObjects > 0 && args.inConfig.numMultiChannelBuses == 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_LARGE; } /* if only MC is present, set medium; Will not be overridden by the subsequent block */ else if ( args.inConfig.numMultiChannelBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_MEDIUM; } else if ( args.inConfig.numMasaBuses > 0 || args.inConfig.numAmbisonicsBuses > 0 ) { selectedReverbRoomSize = IVAS_ROOM_SIZE_SMALL; } } } if ( ( error = IVAS_REND_SetReverbRoomSize( hIvasRend, selectedReverbRoomSize ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError setting reverb room size\n" ); goto cleanup; } } #endif if ( args.renderConfigFilePath[0] != '\0' ) { Loading
lib_com/ari_fx.c +7 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ #include "prot_fx.h" #include "cnst.h" #ifndef FIX_2402_SIMPLIFY_ARI_CODEC /** * \brief 31x16 Bit multiply (x*y) * Loading @@ -26,6 +28,7 @@ Word32 L_multi31x16_X2( Word16 xh, Word16 xl, Word16 y ) return z; } #endif /*--------------------------------------------------------------- Ari 14 bits common routines Loading @@ -39,6 +42,9 @@ Word32 L_multi31x16_X2( Word16 xh, Word16 xl, Word16 y ) * * \return r*c */ #ifndef FIX_2402_INLINE_FCT_ARI_CODEC /* Note: moved to proto_fx.h */ Word32 mul_sbc_14bits( Word32 r, /* Q0 */ Word16 c /* Q0 */ Loading @@ -57,3 +63,4 @@ Word32 mul_sbc_14bits( return ( ret ); } #endif
lib_com/common_api_types.h +1 −1 Original line number Diff line number Diff line Loading @@ -165,7 +165,7 @@ typedef struct { float x, y, z; #ifdef FIX_BASOP_2023_TDREND_DISTATT_PRECISION Word32 x_fx, y_fx, z_fx; /* Q22, Q22, Q22 */ Word32 x_fx, y_fx, z_fx; /* qfact, qfact, qfact */ #else Word32 x_fx, y_fx, z_fx; #endif Loading
lib_com/ivas_cnst.h +11 −0 Original line number Diff line number Diff line Loading @@ -1640,6 +1640,17 @@ typedef enum #define IVAS_REVERB_DEFAULT_M_N_BANDS 31 #define IVAS_REVERB_DEFAULT_S_N_BANDS 60 #ifdef FIX_1452_DEFAULT_REVERB #define IVAS_REVERB_DEFAULT_S_ACOUSTIC_PRE_DELAY_FX 2013266 /* 0.015f in Q27 */ #define IVAS_REVERB_DEFAULT_S_INPUT_PRE_DELAY_FX 2684355 /* 0.02f in Q27 */ #define IVAS_REVERB_DEFAULT_M_ACOUSTIC_PRE_DELAY_FX 2013266 /* 0.015f in Q27 */ #define IVAS_REVERB_DEFAULT_M_INPUT_PRE_DELAY_FX 2684355 /* 0.02f in Q27 */ #define IVAS_REVERB_DEFAULT_L_ACOUSTIC_PRE_DELAY_FX 2181038 /* 0.01625f in Q27 */ #define IVAS_REVERB_DEFAULT_L_INPUT_PRE_DELAY_FX 13421773 /* 0.1f in Q27 */ #endif #define LR_IAC_LENGTH_NR_FC ( RV_LENGTH_NR_FC ) #define LR_IAC_LENGTH_NR_FC_16KHZ ( RV_LENGTH_NR_FC_16KHZ ) Loading