Commit 6ba7db7e authored by Gregory Pallone's avatar Gregory Pallone
Browse files

optimize wrapping angle

parent 4b118fbb
Loading
Loading
Loading
Loading
Loading
+12 −23
Original line number Diff line number Diff line
@@ -3133,21 +3133,13 @@ static void IsmPositionProvider_getNextFrame(
            objectMetadataBuffer->positions[objIdx].non_diegetic_flag = 0;
        }

        /* Wrap azimuth to lie within (-180, 180] range */

#ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW
        IF( objectMetadataBuffer->positions[objIdx].non_diegetic_flag )
        {
            while ( LT_32( objectMetadataBuffer->positions[objIdx].azimuth_fx, -DEG_180_IN_Q22 ) )
            {
                objectMetadataBuffer->positions[objIdx].azimuth_fx = L_add( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 );
            }
            while ( GE_32( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_180_IN_Q22 ) )
            {
                objectMetadataBuffer->positions[objIdx].azimuth_fx = L_sub( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 );
            }
        }
        ELSE
        {
        /* Wrap azimuth to lie within (0, 360] range */
#else
        /* Wrap azimuth to lie within (-180, 180] range */
#endif

        while ( LT_32( objectMetadataBuffer->positions[objIdx].azimuth_fx, 0 ) )
        {
            objectMetadataBuffer->positions[objIdx].azimuth_fx = L_add( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 );
@@ -3156,14 +3148,11 @@ static void IsmPositionProvider_getNextFrame(
        {
            objectMetadataBuffer->positions[objIdx].azimuth_fx = L_sub( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 );
        }
        }
#else
        while ( LT_32( objectMetadataBuffer->positions[objIdx].azimuth_fx, 0 ) )
        {
            objectMetadataBuffer->positions[objIdx].azimuth_fx = L_add( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 );
        }
        while ( GE_32( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 ) )

#ifdef FIX_1548_HARMONIZE_NON_DIEGETIC_PANNING_LAW
        IF( objectMetadataBuffer->positions[objIdx].non_diegetic_flag && objectMetadataBuffer->positions[objIdx].azimuth_fx >= DEG_180_IN_Q22 )
        {
            /* Wrap azimuth to lie within [-180, 180) range for non-diegetic panning */
            objectMetadataBuffer->positions[objIdx].azimuth_fx = L_sub( objectMetadataBuffer->positions[objIdx].azimuth_fx, DEG_360_IN_Q22 );
        }
#endif