Unverified Commit a84b4cf2 authored by janssontoftg's avatar janssontoftg
Browse files

Correct PI size writing for ISM packing.

parent fa149d0c
Loading
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ static ivas_error unpackListenerPosition( const uint8_t *buffer, uint32_t numDat
static ivas_error packISMPosition( const IVAS_PIDATA_GENERIC *piData, uint8_t *buffer, uint32_t maxDataBytes, uint32_t *nBytesWritten )
{
    uint32_t nBytes = 0, n;
    const IVAS_PIDATA_ISM_POSITION *listener = (const IVAS_PIDATA_ISM_POSITION *) piData;
    const IVAS_PIDATA_ISM_POSITION *ism_position = (const IVAS_PIDATA_ISM_POSITION *) piData;

    *nBytesWritten = 0;

@@ -584,13 +584,13 @@ static ivas_error packISMPosition( const IVAS_PIDATA_GENERIC *piData, uint8_t *b
        return IVAS_ERROR( IVAS_ERR_RTP_INSUFFICIENT_OUTPUT_SIZE, "Insufficient space to pack ISM POSITION PI data" );
    }

    buffer[nBytes++] = ( listener->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
    buffer[nBytes++] = (uint8_t) piData->size;
    buffer[nBytes++] = ( ism_position->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
    buffer[nBytes++] = (uint8_t) ism_position->numObjects * 6;
    for ( n = 0; n < piData->size / 6; n++ )
    {
        nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( listener->position[n].x / MAX_PI_POSITION_METERS ) );
        nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( listener->position[n].y / MAX_PI_POSITION_METERS ) );
        nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( listener->position[n].z / MAX_PI_POSITION_METERS ) );
        nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( ism_position->position[n].x / MAX_PI_POSITION_METERS ) );
        nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( ism_position->position[n].y / MAX_PI_POSITION_METERS ) );
        nBytes = writeInt16( buffer, nBytes, ivasPayload_convertToQ15( ism_position->position[n].z / MAX_PI_POSITION_METERS ) );
    }
    *nBytesWritten = nBytes;
    return IVAS_ERR_OK;
@@ -847,7 +847,7 @@ static ivas_error packISMID( const IVAS_PIDATA_GENERIC *piData, uint8_t *buffer,
    }

    buffer[nBytes++] = ( ism_id->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
    buffer[nBytes++] = (uint8_t) piData->size;
    buffer[nBytes++] = (uint8_t) ism_id->numObjects;
    /* Pack ID for each object */
    for ( n = 0; n < ism_id->numObjects; n++ )
    {
@@ -910,7 +910,7 @@ static ivas_error packISMGain( const IVAS_PIDATA_GENERIC *piData, uint8_t *buffe
    }

    buffer[nBytes++] = ( ism_gain->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
    buffer[nBytes++] = (uint8_t) piData->size;
    buffer[nBytes++] = (uint8_t) ism_gain->numObjects;
    /* Pack ID for each object */
    for ( n = 0; n < ism_gain->numObjects; n++ )
    {
@@ -998,7 +998,7 @@ static ivas_error packISMDistanceAttenuation( const IVAS_PIDATA_GENERIC *piData,
    }

    buffer[nBytes++] = ( ism_att->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
    buffer[nBytes++] = (uint8_t) piData->size;
    buffer[nBytes++] = (uint8_t) ism_att->numObjects * 3;
    /* Pack ID for each object */
    for ( n = 0; n < ism_att->numObjects; n++ )
    {
@@ -1077,7 +1077,7 @@ static ivas_error packISMDirectivity( const IVAS_PIDATA_GENERIC *piData, uint8_t
    }

    buffer[nBytes++] = ( ism_directivity->piDataType & MASK_5BIT ); /* PF/PM populated during final packing */
    buffer[nBytes++] = (uint8_t) piData->size;
    buffer[nBytes++] = (uint8_t) ism_directivity->numObjects * 2;
    /* Pack directivity for each object */
    for ( n = 0; n < ism_directivity->numObjects; n++ )
    {