Commit 1baddbd7 authored by emerit's avatar emerit
Browse files

ism file with always same number of parameters per lines = 8

parent a2d63a57
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@

#define NON_DIEGETIC_PAN
#define FIX_CRASH_EVS_BITSTREAM_WITH_OUTPUT
//#define ISM_NON_DIEGETIC_PAN
#define ISM_NON_DIEGETIC_PAN
#define ISM_BUG_FIX

#define FIX_MDCT_BASED_BWD                              /* FhG: fixes for BWD for issues with reaction to transients for MDCT-stereo and MCT */
+29 −9
Original line number Diff line number Diff line
@@ -34,15 +34,18 @@
#include "cmdl_tools.h"
#include <stdlib.h>
#include <string.h>

#ifdef ISM_NON_DIEGETIC_PAN
#include <math.h>
#include <cnst.h>
#endif

#define META_LINE_LENGTH 200 /* max number of characters at one line of metadata input/output file */
#define NUM_ISM_METADATA_PER_LINE 7   /* Number of ISM metadata per line in a metadata file */
#ifdef ISM_NON_DIEGETIC_PAN
#define NUM_MIN_ISM_METADATA 1 /* Minimum number of metadata parameters (azimuth and elevation) */
#define NUM_ISM_METADATA_PER_LINE 8 /* Number of ISM metadata per line in a metadata file */
#else
#define NUM_MIN_ISM_METADATA 5 /* Number of ISM metadata per line in a metadata file */
#define NUM_ISM_METADATA_PER_LINE 7 /* Number of ISM metadata per line in a metadata file */
#endif
#define NUM_MIN_ISM_METADATA 2 /* Minimum number of metadata parameters (azimuth and elevation) */
#ifdef ISM_NON_DIEGETIC_PAN
#define TYPE_ISM_METADATA_SOURCE           1
#define TYPE_ISM_METADATA_NON_DIEGETIC_PAN 2
@@ -104,7 +107,11 @@ ivas_error IsmFileReader_readNextFrame(
{
    char char_buff[META_LINE_LENGTH];
    float meta_prm[NUM_ISM_METADATA_PER_LINE];
#ifdef ISM_NON_DIEGETIC_PAN
    const float meta_prm_default[NUM_ISM_METADATA_PER_LINE] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, FLT_MAX };
#else
    const float meta_prm_default[NUM_ISM_METADATA_PER_LINE] = { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f };
#endif
    char *char_ptr;
    int16_t i;
    FILE *file;
@@ -151,17 +158,29 @@ ivas_error IsmFileReader_readNextFrame(
    }

#ifdef ISM_NON_DIEGETIC_PAN
    if ( i == 1 )
    if ( fabs( meta_prm[NUM_ISM_METADATA_PER_LINE - 1] ) <= 1.f )
    {
        ismMetadata->metadata_flag = TYPE_ISM_METADATA_NON_DIEGETIC_PAN;
        ismMetadata->azimuth = meta_prm[NUM_ISM_METADATA_PER_LINE - 1];
        ismMetadata->elevation = meta_prm_default[1];
        ismMetadata->radius = meta_prm_default[2];
        ismMetadata->spread = meta_prm_default[3];
        ismMetadata->gainFactor = meta_prm_default[4];
        ismMetadata->yaw = meta_prm_default[5];
        ismMetadata->pitch = meta_prm_default[6];
    }
    else
    {
        ismMetadata->metadata_flag = TYPE_ISM_METADATA_SOURCE;
        ismMetadata->azimuth = meta_prm[0];
        ismMetadata->elevation = meta_prm[1];
        ismMetadata->radius = meta_prm[2];
        ismMetadata->spread = meta_prm[3];
        ismMetadata->gainFactor = meta_prm[4];
        ismMetadata->yaw = meta_prm[5];
        ismMetadata->pitch = meta_prm[6];
    }
#endif


#else
    ismMetadata->azimuth = meta_prm[0];
    ismMetadata->elevation = meta_prm[1];
    ismMetadata->radius = meta_prm[2];
@@ -169,6 +188,7 @@ ivas_error IsmFileReader_readNextFrame(
    ismMetadata->gainFactor = meta_prm[4];
    ismMetadata->yaw = meta_prm[5];
    ismMetadata->pitch = meta_prm[6];
#endif

    /* verify whether the read metadata values are in an expected range */
#ifdef ISM_NON_DIEGETIC_PAN