Commit ef37ae48 authored by Lauros Pajunen's avatar Lauros Pajunen
Browse files

Add sanity check for Euler/Quaternion angles for external orientations

parent 2288e5c3
Loading
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -134,6 +134,9 @@ typedef enum
    IVAS_ERR_BITSTREAM_READER_INVALID_FORMAT,
    IVAS_ERR_NO_FILE_OPEN,
    IVAS_ERR_SAMPLING_RATE_UNKNOWN,
#ifdef FIX_1370_EXTERNAL_ORIENTATION_CHECK
    IVAS_ERR_EXTERNAL_ORIENTATION_INVALID_FORMAT,
#endif

    /*----------------------------------------*
     *    renderer (lib_rend only)            *
@@ -271,6 +274,10 @@ static inline const char *ivas_error_to_string( ivas_error error_code )
            return "Invalid input format";
        case IVAS_ERR_INVALID_INDEX:
            return "Invalid index";
#ifdef FIX_1370_EXTERNAL_ORIENTATION_CHECK
        case IVAS_ERR_EXTERNAL_ORIENTATION_INVALID_FORMAT:
            return "Euler angles were detected in the input but only Quaternions are supported";
#endif
        default:
            break;
    }
+1 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@
/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
#define TMP_FIX_1119_SPLIT_RENDERING_VOIP               /* FhG: Add error check for unsupported config: split rendering with VoIP mode */
#define FIX_1348_OVERFLOW                               /* FhG: fix BASOP overflow in hq_lr_dec(), brings floating-point code inline with FX */
#define FIX_1370_EXTERNAL_ORIENTATION_CHECK             /* Nokia: add sanity check for Euler angles for external orientations */

/* #################### End BE switches ################################## */

+8 −0
Original line number Diff line number Diff line
@@ -183,6 +183,14 @@ ivas_error ExternalOrientationFileReading(
    *enableExternalOrientation = (int8_t) extOrientationFlag;
    *enableRotationInterpolation = (int8_t) rotInterpolationFlag;
    *numFramesToTargetOrientation = (int16_t) nFramesToTarget;
#ifdef FIX_1370_EXTERNAL_ORIENTATION_CHECK

    /* Only Quaternion orientations are supported, raise an error if Euler angles are detected in the input */
    if ( pQuaternion->w == -3.0f )
    {
        return IVAS_ERR_EXTERNAL_ORIENTATION_INVALID_FORMAT;
    }
#endif

    return IVAS_ERR_OK;
}