Commit b8c12c0f authored by Jouni Paulus's avatar Jouni Paulus
Browse files

align the call and implementation of the function determining MASA EXT outtput...

align the call and implementation of the function determining MASA EXT outtput filename. switch: FIX_889_MASA_FILE_WRITER_OPEN
parent 0fcb812a
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -153,6 +153,7 @@
#define FIX_879_USAN_ERROR_IN_MASA_DECODING             /* FhG: Issue 879 : avoid arithmetic with NULL pointer in the DirAC decoder to fix USAN error */

#define FIX_740_MASA_PREREND_VALIDITY_CHECK             /* Nokia: issue 740: fix incorrect validity check in lib_rend to allow use of MASA prerenderer */
#define FIX_889_MASA_FILE_WRITER_OPEN                   /* Nokia: issue #889: mismatch in function definition and use */

/* #################### End BE switches ################################## */

+20 −1
Original line number Diff line number Diff line
@@ -67,12 +67,26 @@ struct MasaFileWriter

static void getExtMasaMetadataFileName(
    const char *outputWavFilename, /* i  : name of the output audio file         */
#ifdef FIX_889_MASA_FILE_WRITER_OPEN
    char *metadata_filename, /* o  : name of the output MASA metadata file */
    int32_t max_name_len     /* i  : size of metadata_filename in chars    */
#else
    char metadata_filename[IVAS_MAX_NUM_OBJECTS][FILENAME_MAX - 12] /* o  : name of the output masa metadata file */
#endif
)
{
    char ext_meta[5];

    /* sizeof( ext_meta ) accounts for terminating NULL, don't subtract extra 1 */
#ifdef FIX_889_MASA_FILE_WRITER_OPEN
    const int32_t maxNameLenWithoutExt = max_name_len - (int32_t) sizeof( ext_meta );
    strncpy( metadata_filename, outputWavFilename, maxNameLenWithoutExt );
    snprintf( ext_meta, sizeof( ext_meta ), ".met" );

    /* strlen( metadata_filename[0] ) doesn't account for terminating NULL, subtract extra 1 */
    const int32_t maxNumCharactersToAppend = max_name_len - (int32_t) strlen( metadata_filename ) - 1;
    strncat( metadata_filename, ext_meta, maxNumCharactersToAppend );
#else
    const int32_t maxNameLenWithoutExt = sizeof( metadata_filename[0] ) - sizeof( ext_meta );
    strncpy( metadata_filename[0], outputWavFilename, maxNameLenWithoutExt );
    snprintf( ext_meta, sizeof( ext_meta ), ".met" );
@@ -80,6 +94,7 @@ static void getExtMasaMetadataFileName(
    /* strlen( metadata_filename[0] ) doesn't account for terminating NULL, subtract extra 1 */
    const int32_t maxNumCharactersToAppend = (int32_t) ( sizeof( metadata_filename[0] ) - strlen( metadata_filename[0] ) - 1 );
    strncat( metadata_filename[0], ext_meta, maxNumCharactersToAppend );
#endif

    return;
}
@@ -164,7 +179,11 @@ ivas_error MasaFileWriter_open(
        return IVAS_ERR_FAILED_FILE_OPEN;
    }

#ifdef FIX_889_MASA_FILE_WRITER_OPEN
    getExtMasaMetadataFileName( outputWavFilename, filePath, FILENAME_MAX - 12 );
#else
    getExtMasaMetadataFileName( outputWavFilename, &filePath );
#endif

    file = fopen( filePath, "wb" );