Commit 331ae97e authored by emerit's avatar emerit
Browse files

Merge branch 'orange/no-diegetic-pan-with-radius' of...

Merge branch 'orange/no-diegetic-pan-with-radius' of forge.3gpp.org:ivas-codec-pc/ivas-codec into orange/no-diegetic-pan-with-radius
parents 5111299a 040af515
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1888,6 +1888,9 @@ void getMetadataFromFileReader(
    objectMetadataBuffer->positions[objIdx].radius = ismMetadata.radius;
    objectMetadataBuffer->positions[objIdx].yaw = ismMetadata.yaw;
    objectMetadataBuffer->positions[objIdx].pitch = ismMetadata.pitch;
#ifdef ISM_NON_DIEGETIC_PAN
    objectMetadataBuffer->positions[objIdx].non_diegetic_flag = ismMetadata.non_diegetic_flag;
#endif

    return;
}
@@ -2206,13 +2209,22 @@ static void parseObjectPosition(
{
    char *endptr;
    int16_t read_values;
#ifdef ISM_NON_DIEGETIC_PAN
    float meta_prm[8] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f };
#else
    float meta_prm[7] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f };
#endif


    readNextMetadataChunk( line, "," );
    *positionDuration = (uint16_t) strtol( line, &endptr, 10 );
    readNextMetadataChunk( line, "\n" );

#ifdef ISM_NON_DIEGETIC_PAN
    read_values = (int16_t) sscanf( line, "%f,%f,%f,%f,%f,%f,%f,%f", &meta_prm[0], &meta_prm[1], &meta_prm[2], &meta_prm[3], &meta_prm[4], &meta_prm[5], &meta_prm[6], &meta_prm[7] );
#else
    read_values = (int16_t) sscanf( line, "%f,%f,%f,%f,%f,%f,%f", &meta_prm[0], &meta_prm[1], &meta_prm[2], &meta_prm[3], &meta_prm[4], &meta_prm[5], &meta_prm[6] );
#endif

    if ( read_values < 2 )
    {
@@ -2225,6 +2237,7 @@ static void parseObjectPosition(
    position->radius = meta_prm[2];
    position->yaw = meta_prm[5];
    position->pitch = meta_prm[6];
    position->non_diegetic_flag = meta_prm[7];
    return;
}

+3 −0
Original line number Diff line number Diff line
@@ -121,6 +121,9 @@ typedef struct
    float radius;
    float yaw;
    float pitch;
#ifdef ISM_NON_DIEGETIC_PAN
    int16_t non_diegetic_flag;
#endif
} IVAS_REND_AudioObjectPosition;

typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG
+3 −0
Original line number Diff line number Diff line
@@ -656,6 +656,9 @@ ivas_error ivas_td_binaural_renderer_ext(
        hIsmMetaData[0]->yaw = currentPos->yaw;
        hIsmMetaData[0]->pitch = currentPos->pitch;
        hIsmMetaData[0]->radius = currentPos->radius;
#ifdef ISM_NON_DIEGETIC_PAN
        hIsmMetaData[0]->non_diegetic_flag = currentPos->non_diegetic_flag;
#endif
    }

    if ( ( error = ivas_td_binaural_renderer_unwrap( hReverb, transport_config, pTDRend->hBinRendererTd, num_src, lfe_idx, ivas_format, hIsmMetaData, headRotData->headRotEnabled,
+4 −1
Original line number Diff line number Diff line
@@ -1018,6 +1018,9 @@ static IVAS_REND_AudioObjectPosition defaultObjectPosition(
    pos.radius = 1.0f;
    pos.yaw = 0.0f;
    pos.pitch = 0.0f;
#ifdef ISM_NON_DIEGETIC_PAN
    pos.non_diegetic_flag = 0;
#endif

    return pos;
}