Loading lib_com/ivas_error.h +3 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,9 @@ typedef enum IVAS_ERR_NOT_IMPLEMENTED, IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH, IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT, #ifdef FIX_ISM_METADAT_READER IVAS_ERR_ISM_INVALID_METADATA_VALUE, #endif IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, #ifdef DEBUGGING IVAS_ERR_INVALID_FORCE_MODE, Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,7 @@ #define FIX_I218_PARAMISM_NOISY_SPEECH /* Issue 218: Fix noisy speech buffer in ParamISM */ #define FIX_I217_GSC_FLAG_IN_ISM /* Issue 217: fix BER detected in ISM4 due to desynchronized 'GSC_IVAS_mode' parameter */ #define FIX_158_DIRAC_MEM /* Issue 158: Reduce memory consumption in the hDirac_mem handle */ #define FIX_ISM_METADAT_READER /* Issue 211: make ISM metadata file reader robust against invalid files */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading lib_enc/lib_enc.c +4 −0 Original line number Diff line number Diff line Loading @@ -1397,6 +1397,10 @@ const char *IVAS_ENC_GetErrorMessage( return "mismatched timestamp"; case IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT: return "invalid metadata format"; #ifdef FIX_ISM_METADAT_READER case IVAS_ERR_ISM_INVALID_METADATA_VALUE: return "invalid metadata value provided"; #endif case IVAS_ERR_FAILED_FILE_READ: return "could not read from file"; case IVAS_ERR_NOT_SUPPORTED_OPTION: Loading lib_util/ism_file_reader.c +37 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ IsmFileReader *IsmFileReader_open( * * Reads ISM metadata from a previously opened file into the provided struct. *---------------------------------------------------------------------*/ /*! r: error code */ ivas_error IsmFileReader_readNextFrame( IsmFileReader *self, /* i/o: IsmFileReader handle */ Loading Loading @@ -124,12 +125,47 @@ ivas_error IsmFileReader_readNextFrame( return IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT; } #ifdef FIX_ISM_METADAT_READER if ( strtok( char_ptr, "\n" ) != NULL ) { /* Not enough values provided in one line */ return IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT; } #endif 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]; #ifdef FIX_ISM_METADAT_READER /* verify whether the read metadata values are in an expected range */ if ( ismMetadata->azimuth > 180 || ismMetadata->azimuth < -180 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->elevation > 90 || ismMetadata->elevation < -90 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->radius < 0 ) // Ivas_fmToDo: to be reviewed { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->spread > 360 || ismMetadata->spread < 0 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->gainFactor > 1 || ismMetadata->gainFactor < 0 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } #endif return IVAS_ERR_OK; } Loading @@ -140,6 +176,7 @@ ivas_error IsmFileReader_readNextFrame( * * De-allocates all underlying memory of an IsmFileReader. *---------------------------------------------------------------------*/ void IsmFileReader_close( IsmFileReader **selfPtr /* i/o: pointer to IsmFileReader handle */ ) Loading Loading
lib_com/ivas_error.h +3 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,9 @@ typedef enum IVAS_ERR_NOT_IMPLEMENTED, IVAS_ERR_FILE_READER_TIMESTAMP_MISMATCH, IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT, #ifdef FIX_ISM_METADAT_READER IVAS_ERR_ISM_INVALID_METADATA_VALUE, #endif IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, #ifdef DEBUGGING IVAS_ERR_INVALID_FORCE_MODE, Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -161,6 +161,7 @@ #define FIX_I218_PARAMISM_NOISY_SPEECH /* Issue 218: Fix noisy speech buffer in ParamISM */ #define FIX_I217_GSC_FLAG_IN_ISM /* Issue 217: fix BER detected in ISM4 due to desynchronized 'GSC_IVAS_mode' parameter */ #define FIX_158_DIRAC_MEM /* Issue 158: Reduce memory consumption in the hDirac_mem handle */ #define FIX_ISM_METADAT_READER /* Issue 211: make ISM metadata file reader robust against invalid files */ /* ################## End DEVELOPMENT switches ######################### */ /* clang-format on */ Loading
lib_enc/lib_enc.c +4 −0 Original line number Diff line number Diff line Loading @@ -1397,6 +1397,10 @@ const char *IVAS_ENC_GetErrorMessage( return "mismatched timestamp"; case IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT: return "invalid metadata format"; #ifdef FIX_ISM_METADAT_READER case IVAS_ERR_ISM_INVALID_METADATA_VALUE: return "invalid metadata value provided"; #endif case IVAS_ERR_FAILED_FILE_READ: return "could not read from file"; case IVAS_ERR_NOT_SUPPORTED_OPTION: Loading
lib_util/ism_file_reader.c +37 −0 Original line number Diff line number Diff line Loading @@ -86,6 +86,7 @@ IsmFileReader *IsmFileReader_open( * * Reads ISM metadata from a previously opened file into the provided struct. *---------------------------------------------------------------------*/ /*! r: error code */ ivas_error IsmFileReader_readNextFrame( IsmFileReader *self, /* i/o: IsmFileReader handle */ Loading Loading @@ -124,12 +125,47 @@ ivas_error IsmFileReader_readNextFrame( return IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT; } #ifdef FIX_ISM_METADAT_READER if ( strtok( char_ptr, "\n" ) != NULL ) { /* Not enough values provided in one line */ return IVAS_ERR_ISM_FILE_READER_INVALID_METADATA_FORMAT; } #endif 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]; #ifdef FIX_ISM_METADAT_READER /* verify whether the read metadata values are in an expected range */ if ( ismMetadata->azimuth > 180 || ismMetadata->azimuth < -180 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->elevation > 90 || ismMetadata->elevation < -90 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->radius < 0 ) // Ivas_fmToDo: to be reviewed { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->spread > 360 || ismMetadata->spread < 0 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } if ( ismMetadata->gainFactor > 1 || ismMetadata->gainFactor < 0 ) { return IVAS_ERR_ISM_INVALID_METADATA_VALUE; } #endif return IVAS_ERR_OK; } Loading @@ -140,6 +176,7 @@ ivas_error IsmFileReader_readNextFrame( * * De-allocates all underlying memory of an IsmFileReader. *---------------------------------------------------------------------*/ void IsmFileReader_close( IsmFileReader **selfPtr /* i/o: pointer to IsmFileReader handle */ ) Loading