Loading lib_com/ivas_tools.c +76 −66 Original line number Diff line number Diff line Loading @@ -1007,6 +1007,32 @@ void lls_interp_n( return; } #ifdef FIX_ANGLE_WRAPPING /* helper function for panning_wrap_angles */ float static wrap_azi( const float azi_deg ) { float azi = azi_deg; /* Wrap azimuth value */ if ( fabsf( azi ) > 180 ) { azi = fmodf( azi + 180, 360 ); if ( azi < 0 ) { azi += 360; } azi -= 180; } /* Set -180 to 180 for deduplication purposes; angles are otherwise identical */ if ( azi == -180 ) { azi = 180; } return azi; } /*-------------------------------------------------------------------* * panning_wrap_angles() Loading @@ -1016,7 +1042,6 @@ void lls_interp_n( * elevation = [-90, 90] * Considers direction changes from large elevation values *-------------------------------------------------------------------*/ #ifdef FIX_ANGLE_WRAPPING void panning_wrap_angles( const float azi_deg, /* i : azimuth in degrees for panning direction (positive left) */ const float ele_deg, /* i : elevation in degrees for panning direction (positive up) */ Loading @@ -1029,39 +1054,28 @@ void panning_wrap_angles( azi = azi_deg; ele = ele_deg; if ( ele <= 90 && ele >= -90 ) if ( fabs( ele ) <= 90 ) { *ele_wrapped = ele; if ( azi > 180.0f || azi <= -180.0f ) { /* Wrap azimuth value */ if ( fabsf( azi ) > 180 ) { azi = fmodf( azi + 180, 360 ); azi -= 180; } /* Set -180 to 180 for deduplication purposes; angles are otherwise identical */ if ( azi == -180 ) if ( azi > 180 || azi <= -180 ) { azi = 180; } azi = wrap_azi( azi ); } *azi_wrapped = azi; return; } else { /* Special case when elevation is a multiple of 90; azimuth is irrelevant */ if ( ( ele != 0 ) && ( fmodf( ele, 90 ) == 0 ) && ( fmodf( ele, 180 ) != 0 ) ) if ( ( fmodf( ele, 90 ) == 0 ) && ( fmodf( ele, 180 ) != 0 ) ) { float y = fmodf( ele, 180 ); azi = 0; while ( ele > 90 ) { ele -= 360; } while ( ele < 90 ) while ( ele < -90 ) { ele += 360; } Loading @@ -1084,20 +1098,7 @@ void panning_wrap_angles( ele = -180 - ele; } } /* Wrap azimuth value */ if ( fabsf( azi ) > 180 ) { azi = fmodf( azi + 180, 360 ); azi -= 180; } } /* Set -180 to 180 for deduplication purposes; angles are otherwise identical */ if ( azi == -180 ) { azi = 180; } azi = wrap_azi( azi ); } *azi_wrapped = azi; Loading @@ -1105,7 +1106,16 @@ void panning_wrap_angles( return; } } #else /*-------------------------------------------------------------------* * panning_wrap_angles() * * Wrap angles for amplitude panning to the range: * azimuth = (-180, 180] * elevation = [-90, 90] * Considers direction changes from large elevation values *-------------------------------------------------------------------*/ void panning_wrap_angles( const float azi_deg, /* i : azimuth in degrees for panning direction (positive left) */ const float ele_deg, /* i : elevation in degrees for panning direction (positive up) */ Loading @@ -1119,7 +1129,7 @@ void panning_wrap_angles( ele = ele_deg; /* Special case when elevation is a multiple of 90; azimuth is irrelevant */ if ( ( ele != 0 ) && ( fmodf( ele, 90 ) == 0 ) && ( fmodf( ele, 180 ) != 0 ) ) if ( ( ele != 0 ) && ( fmodf( ele, 90 ) == 0 ) ) { azi = 0; while ( fabsf( ele ) > 90 ) Loading @@ -1138,11 +1148,11 @@ void panning_wrap_angles( /* Compensate elevation accordingly */ if ( ele > 90 ) { ele = 180 - ele; ele -= 180; } else if ( ele < -90 ) { ele = -180 - ele; ele += 180; } } Loading Loading
lib_com/ivas_tools.c +76 −66 Original line number Diff line number Diff line Loading @@ -1007,6 +1007,32 @@ void lls_interp_n( return; } #ifdef FIX_ANGLE_WRAPPING /* helper function for panning_wrap_angles */ float static wrap_azi( const float azi_deg ) { float azi = azi_deg; /* Wrap azimuth value */ if ( fabsf( azi ) > 180 ) { azi = fmodf( azi + 180, 360 ); if ( azi < 0 ) { azi += 360; } azi -= 180; } /* Set -180 to 180 for deduplication purposes; angles are otherwise identical */ if ( azi == -180 ) { azi = 180; } return azi; } /*-------------------------------------------------------------------* * panning_wrap_angles() Loading @@ -1016,7 +1042,6 @@ void lls_interp_n( * elevation = [-90, 90] * Considers direction changes from large elevation values *-------------------------------------------------------------------*/ #ifdef FIX_ANGLE_WRAPPING void panning_wrap_angles( const float azi_deg, /* i : azimuth in degrees for panning direction (positive left) */ const float ele_deg, /* i : elevation in degrees for panning direction (positive up) */ Loading @@ -1029,39 +1054,28 @@ void panning_wrap_angles( azi = azi_deg; ele = ele_deg; if ( ele <= 90 && ele >= -90 ) if ( fabs( ele ) <= 90 ) { *ele_wrapped = ele; if ( azi > 180.0f || azi <= -180.0f ) { /* Wrap azimuth value */ if ( fabsf( azi ) > 180 ) { azi = fmodf( azi + 180, 360 ); azi -= 180; } /* Set -180 to 180 for deduplication purposes; angles are otherwise identical */ if ( azi == -180 ) if ( azi > 180 || azi <= -180 ) { azi = 180; } azi = wrap_azi( azi ); } *azi_wrapped = azi; return; } else { /* Special case when elevation is a multiple of 90; azimuth is irrelevant */ if ( ( ele != 0 ) && ( fmodf( ele, 90 ) == 0 ) && ( fmodf( ele, 180 ) != 0 ) ) if ( ( fmodf( ele, 90 ) == 0 ) && ( fmodf( ele, 180 ) != 0 ) ) { float y = fmodf( ele, 180 ); azi = 0; while ( ele > 90 ) { ele -= 360; } while ( ele < 90 ) while ( ele < -90 ) { ele += 360; } Loading @@ -1084,20 +1098,7 @@ void panning_wrap_angles( ele = -180 - ele; } } /* Wrap azimuth value */ if ( fabsf( azi ) > 180 ) { azi = fmodf( azi + 180, 360 ); azi -= 180; } } /* Set -180 to 180 for deduplication purposes; angles are otherwise identical */ if ( azi == -180 ) { azi = 180; } azi = wrap_azi( azi ); } *azi_wrapped = azi; Loading @@ -1105,7 +1106,16 @@ void panning_wrap_angles( return; } } #else /*-------------------------------------------------------------------* * panning_wrap_angles() * * Wrap angles for amplitude panning to the range: * azimuth = (-180, 180] * elevation = [-90, 90] * Considers direction changes from large elevation values *-------------------------------------------------------------------*/ void panning_wrap_angles( const float azi_deg, /* i : azimuth in degrees for panning direction (positive left) */ const float ele_deg, /* i : elevation in degrees for panning direction (positive up) */ Loading @@ -1119,7 +1129,7 @@ void panning_wrap_angles( ele = ele_deg; /* Special case when elevation is a multiple of 90; azimuth is irrelevant */ if ( ( ele != 0 ) && ( fmodf( ele, 90 ) == 0 ) && ( fmodf( ele, 180 ) != 0 ) ) if ( ( ele != 0 ) && ( fmodf( ele, 90 ) == 0 ) ) { azi = 0; while ( fabsf( ele ) > 90 ) Loading @@ -1138,11 +1148,11 @@ void panning_wrap_angles( /* Compensate elevation accordingly */ if ( ele > 90 ) { ele = 180 - ele; ele -= 180; } else if ( ele < -90 ) { ele = -180 - ele; ele += 180; } } Loading