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

Fix orientation packing, add thersholds to tests

parent e0500a3b
Loading
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -210,10 +210,10 @@ static ivas_error packOrientation( const IVAS_PIDATA_GENERIC *piData, uint8_t *b
    buffer[nBytes++] = ( orientation->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
#ifdef RTP_UPDATES_SA4_134
    buffer[nBytes++] = 4;
    buffer[nBytes++] = ivasPayload_convertToQ7( orientation->orientation.w );
    buffer[nBytes++] = ivasPayload_convertToQ7( orientation->orientation.x );
    buffer[nBytes++] = ivasPayload_convertToQ7( orientation->orientation.y );
    buffer[nBytes++] = ivasPayload_convertToQ7( orientation->orientation.z );
    buffer[nBytes++] = (uint8_t) ivasPayload_convertToQ7( orientation->orientation.w );
    buffer[nBytes++] = (uint8_t) ivasPayload_convertToQ7( orientation->orientation.x );
    buffer[nBytes++] = (uint8_t) ivasPayload_convertToQ7( orientation->orientation.y );
    buffer[nBytes++] = (uint8_t) ivasPayload_convertToQ7( orientation->orientation.z );
#else
    buffer[nBytes++] = 8;
    nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( orientation->orientation.w ) );
@@ -294,10 +294,10 @@ static ivas_error unpackOrientation( const uint8_t *buffer, uint32_t numDataByte
    }

    piData->size = sizeof( IVAS_PIDATA_ORIENTATION );
    orientation->orientation.w = FLOAT_FROM_Q7( buffer[0] );
    orientation->orientation.x = FLOAT_FROM_Q7( buffer[1] );
    orientation->orientation.y = FLOAT_FROM_Q7( buffer[2] );
    orientation->orientation.z = FLOAT_FROM_Q7( buffer[3] );
    orientation->orientation.w = FLOAT_FROM_Q7( (int8_t) buffer[0] );
    orientation->orientation.x = FLOAT_FROM_Q7( (int8_t) buffer[1] );
    orientation->orientation.y = FLOAT_FROM_Q7( (int8_t) buffer[2] );
    orientation->orientation.z = FLOAT_FROM_Q7( (int8_t) buffer[3] );
#else
    /* Orientation data is 8 bytes */
    if ( numDataBytes != 8 )
@@ -333,10 +333,10 @@ static ivas_error unpackISMOrientation( const uint8_t *buffer, uint32_t numDataB

    for ( n = 0; n < ism_orientation->numObjects; n++ )
    {
        ism_orientation->orientation[n].w = FLOAT_FROM_Q7( buffer[4 * n] );
        ism_orientation->orientation[n].x = FLOAT_FROM_Q7( buffer[4 * n + 1] );
        ism_orientation->orientation[n].y = FLOAT_FROM_Q7( buffer[4 * n + 2] );
        ism_orientation->orientation[n].z = FLOAT_FROM_Q7( buffer[4 * n + 3] );
        ism_orientation->orientation[n].w = FLOAT_FROM_Q7( (int8_t) buffer[4 * n] );
        ism_orientation->orientation[n].x = FLOAT_FROM_Q7( (int8_t) buffer[4 * n + 1] );
        ism_orientation->orientation[n].y = FLOAT_FROM_Q7( (int8_t) buffer[4 * n + 2] );
        ism_orientation->orientation[n].z = FLOAT_FROM_Q7( (int8_t) buffer[4 * n + 3] );
    }
#else
    /* Orientation data is 8 bytes */
@@ -1080,10 +1080,10 @@ static ivas_error unpackAudioFocusCommon( const uint8_t *buffer, uint32_t numDat
    }
    else
    {
        audioFocus->direction.w = FLOAT_FROM_Q7( buffer[0] );
        audioFocus->direction.x = FLOAT_FROM_Q7( buffer[1] );
        audioFocus->direction.y = FLOAT_FROM_Q7( buffer[2] );
        audioFocus->direction.z = FLOAT_FROM_Q7( buffer[3] );
        audioFocus->direction.w = FLOAT_FROM_Q7( (int8_t) buffer[0] );
        audioFocus->direction.x = FLOAT_FROM_Q7( (int8_t) buffer[1] );
        audioFocus->direction.y = FLOAT_FROM_Q7( (int8_t) buffer[2] );
        audioFocus->direction.z = FLOAT_FROM_Q7( (int8_t) buffer[3] );

        if ( numDataBytes == 5 )
        {
+4 −4
Original line number Diff line number Diff line
@@ -392,16 +392,16 @@ def isEqualAudioFocus(ref: AUDIO_FOCUS, dut: AUDIO_FOCUS):
        assert dut.direction is not None, "Audio Focus PI Data missing direction"
    if ref.direction is not None and dut.direction is not None:
        assert (
            abs(ref.direction["w"] - dut.direction.w) < 0.0001
            abs(ref.direction["w"] - dut.direction.w) < 0.0079
        ), "Audio Focus PI Data mismatch in direction w"
        assert (
            abs(ref.direction["x"] - dut.direction.x) < 0.0001
            abs(ref.direction["x"] - dut.direction.x) < 0.0079
        ), "Audio Focus PI Data mismatch in direction x"
        assert (
            abs(ref.direction["y"] - dut.direction.y) < 0.0001
            abs(ref.direction["y"] - dut.direction.y) < 0.0079
        ), "Audio Focus PI Data mismatch in direction y"
        assert (
            abs(ref.direction["z"] - dut.direction.z) < 0.0001
            abs(ref.direction["z"] - dut.direction.z) < 0.0079
        ), "Audio Focus PI Data mismatch in direction z"
    assert ref.level == dut.level, "Audio Focus PI Data mismatch in level"