Loading apps/decoder.c +89 −13 Original line number Diff line number Diff line Loading @@ -1742,7 +1742,11 @@ static ivas_error initOnFirstGoodFrame( } /* If outputting ISM, get number of objects, open output files and write zero metadata for initial bad frames */ #ifdef OMASA_EXT_OUTPUT if ( *pBsFormat == IVAS_DEC_BS_OBJ || *pBsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( *pBsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, pNumObj ) ) != IVAS_ERR_OK ) { Loading Loading @@ -1780,8 +1784,13 @@ static ivas_error initOnFirstGoodFrame( } } } /* If outputting MASA, open output file and write metadata for initial bad frames */ #ifdef OMASA_EXT_OUTPUT if ( *pBsFormat == IVAS_DEC_BS_MASA || *pBsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( *pBsFormat == IVAS_DEC_BS_MASA ) #endif { if ( ( error = MasaFileWriter_open( arg.outputWavFilename, arg.delayCompensationEnabled, ppMasaWriter ) ) != IVAS_ERR_OK ) { Loading @@ -1789,6 +1798,10 @@ static ivas_error initOnFirstGoodFrame( return error; } #ifdef OMASA_EXT_OUTPUT if ( numInitialBadFrames > 0 ) { #endif /* Duplicate good first frame metadata to fill the beginning of stream. */ MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta = NULL; #ifdef FIX_470_MASA_JBM_EXT Loading @@ -1809,6 +1822,9 @@ static ivas_error initOnFirstGoodFrame( return error; } } #ifdef OMASA_EXT_OUTPUT } #endif } } Loading Loading @@ -2135,10 +2151,14 @@ static ivas_error decodeG192( #endif } /* Write ISM metadata to external file(s) */ /* Write MASA/ISM metadata to external file(s) */ if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT ) { #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -2163,7 +2183,12 @@ static ivas_error decodeG192( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -2250,6 +2275,18 @@ static ivas_error decodeG192( { fprintf( stdout, "\nOutput metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #ifdef OMASA_EXT_OUTPUT else if ( bsFormat == IVAS_DEC_BS_MASA_ISM ) { for ( i = 0; i < numObj; i++ ) { fprintf( stdout, "\nOutput ISM metadata file: %s", IsmFileWriter_getFilePath( ismWriters[i] ) ); } fprintf( stdout, "\n" ); fprintf( stdout, "\nOutput MASA metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #endif } /*------------------------------------------------------------------------------------------* Loading Loading @@ -2716,7 +2753,11 @@ static ivas_error decodeVoIP( { int16_t i; #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -2741,7 +2782,12 @@ static ivas_error decodeVoIP( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -3146,7 +3192,11 @@ static ivas_error decodeVariableSpeed( /* Write ISm metadata to external file(s) */ if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT ) { #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -3171,7 +3221,12 @@ static ivas_error decodeVariableSpeed( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -3325,7 +3380,11 @@ static ivas_error decodeVariableSpeed( /* Write ISm metadata to external file(s) */ if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT ) { #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -3350,7 +3409,12 @@ static ivas_error decodeVariableSpeed( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -3414,6 +3478,18 @@ static ivas_error decodeVariableSpeed( { fprintf( stdout, "\nOutput metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #ifdef OMASA_EXT_OUTPUT else if ( bsFormat == IVAS_DEC_BS_MASA_ISM ) { for ( i = 0; i < numObj; i++ ) { fprintf( stdout, "\nOutput ISM metadata file: %s", IsmFileWriter_getFilePath( ismWriters[i] ) ); } fprintf( stdout, "\n" ); fprintf( stdout, "\nOutput MASA metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #endif } /* add zeros at the end to have equal length of synthesized signals */ Loading lib_com/bitstream.c +1 −1 Original line number Diff line number Diff line Loading @@ -562,7 +562,7 @@ int16_t get_ivas_max_num_indices( else if ( ivas_total_brate <= IVAS_256k ) { #ifdef OMASA_BIT_BUFF_SZ return 1300; return 1450; #else return 1150; #endif Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -219,6 +219,7 @@ #define OMASA_BRSW_MONO_FIX /* Nokia: fix renderer config under rateswitching and MONO output */ #define OMASA_FIX_LOW_FS /* Nokia: fixes related to lower input signal sampling rates */ #define OMASA_BIT_BUFF_SZ /* Nokia: increase bitstream index buffer initial size */ #define OMASA_EXT_OUTPUT /* VA: support of EXT output configuration for OMASA DISC mode */ #endif /* #################### Start NON-BE CR switches ########################## */ Loading lib_dec/ivas_init_dec.c +19 −1 Original line number Diff line number Diff line Loading @@ -784,10 +784,18 @@ ivas_error ivas_init_decoder( if ( output_config == AUDIO_CONFIG_EXTERNAL ) { #ifdef OMASA_EXT_OUTPUT if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { hDecoderConfig->nchan_out = st_ivas->nchan_transport + st_ivas->nchan_ism; } else #endif if ( !( st_ivas->ism_mode == ISM_MODE_PARAM ) ) { hDecoderConfig->nchan_out = st_ivas->nchan_transport; } st_ivas->hOutSetup.nchan_out_woLFE = hDecoderConfig->nchan_out; } Loading Loading @@ -2559,5 +2567,15 @@ static ivas_error doSanityChecks_IVAS( } #endif #ifdef OMASA_EXT_OUTPUT if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC && output_config == AUDIO_CONFIG_EXTERNAL ) { return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for combined MASA and ISM format" ); } } #endif return IVAS_ERR_OK; } lib_dec/ivas_masa_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -571,7 +571,11 @@ ivas_error ivas_masa_decode( } } #ifdef OMASA_EXT_OUTPUT if ( ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT ) && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) #else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) #endif { create_masa_ext_out_meta( hMasa, hQMetaData, st_ivas->nchan_transport ); } Loading Loading
apps/decoder.c +89 −13 Original line number Diff line number Diff line Loading @@ -1742,7 +1742,11 @@ static ivas_error initOnFirstGoodFrame( } /* If outputting ISM, get number of objects, open output files and write zero metadata for initial bad frames */ #ifdef OMASA_EXT_OUTPUT if ( *pBsFormat == IVAS_DEC_BS_OBJ || *pBsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( *pBsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, pNumObj ) ) != IVAS_ERR_OK ) { Loading Loading @@ -1780,8 +1784,13 @@ static ivas_error initOnFirstGoodFrame( } } } /* If outputting MASA, open output file and write metadata for initial bad frames */ #ifdef OMASA_EXT_OUTPUT if ( *pBsFormat == IVAS_DEC_BS_MASA || *pBsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( *pBsFormat == IVAS_DEC_BS_MASA ) #endif { if ( ( error = MasaFileWriter_open( arg.outputWavFilename, arg.delayCompensationEnabled, ppMasaWriter ) ) != IVAS_ERR_OK ) { Loading @@ -1789,6 +1798,10 @@ static ivas_error initOnFirstGoodFrame( return error; } #ifdef OMASA_EXT_OUTPUT if ( numInitialBadFrames > 0 ) { #endif /* Duplicate good first frame metadata to fill the beginning of stream. */ MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta = NULL; #ifdef FIX_470_MASA_JBM_EXT Loading @@ -1809,6 +1822,9 @@ static ivas_error initOnFirstGoodFrame( return error; } } #ifdef OMASA_EXT_OUTPUT } #endif } } Loading Loading @@ -2135,10 +2151,14 @@ static ivas_error decodeG192( #endif } /* Write ISM metadata to external file(s) */ /* Write MASA/ISM metadata to external file(s) */ if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT ) { #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -2163,7 +2183,12 @@ static ivas_error decodeG192( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -2250,6 +2275,18 @@ static ivas_error decodeG192( { fprintf( stdout, "\nOutput metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #ifdef OMASA_EXT_OUTPUT else if ( bsFormat == IVAS_DEC_BS_MASA_ISM ) { for ( i = 0; i < numObj; i++ ) { fprintf( stdout, "\nOutput ISM metadata file: %s", IsmFileWriter_getFilePath( ismWriters[i] ) ); } fprintf( stdout, "\n" ); fprintf( stdout, "\nOutput MASA metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #endif } /*------------------------------------------------------------------------------------------* Loading Loading @@ -2716,7 +2753,11 @@ static ivas_error decodeVoIP( { int16_t i; #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -2741,7 +2782,12 @@ static ivas_error decodeVoIP( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -3146,7 +3192,11 @@ static ivas_error decodeVariableSpeed( /* Write ISm metadata to external file(s) */ if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT ) { #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -3171,7 +3221,12 @@ static ivas_error decodeVariableSpeed( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -3325,7 +3380,11 @@ static ivas_error decodeVariableSpeed( /* Write ISm metadata to external file(s) */ if ( decodedGoodFrame && arg.outputFormat == IVAS_DEC_OUTPUT_EXT ) { #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_OBJ || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else if ( bsFormat == IVAS_DEC_BS_OBJ ) #endif { if ( ( error = IVAS_DEC_GetNumObjects( hIvasDec, &numObj ) ) != IVAS_ERR_OK ) { Loading @@ -3350,7 +3409,12 @@ static ivas_error decodeVariableSpeed( } } } #ifdef OMASA_EXT_OUTPUT if ( bsFormat == IVAS_DEC_BS_MASA || bsFormat == IVAS_DEC_BS_MASA_ISM ) #else else if ( bsFormat == IVAS_DEC_BS_MASA ) #endif { MASA_DECODER_EXT_OUT_META_HANDLE hMasaExtOutMeta; #ifdef FIX_470_MASA_JBM_EXT Loading Loading @@ -3414,6 +3478,18 @@ static ivas_error decodeVariableSpeed( { fprintf( stdout, "\nOutput metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #ifdef OMASA_EXT_OUTPUT else if ( bsFormat == IVAS_DEC_BS_MASA_ISM ) { for ( i = 0; i < numObj; i++ ) { fprintf( stdout, "\nOutput ISM metadata file: %s", IsmFileWriter_getFilePath( ismWriters[i] ) ); } fprintf( stdout, "\n" ); fprintf( stdout, "\nOutput MASA metadata file: %s\n", MasaFileWriter_getFilePath( masaWriter ) ); } #endif } /* add zeros at the end to have equal length of synthesized signals */ Loading
lib_com/bitstream.c +1 −1 Original line number Diff line number Diff line Loading @@ -562,7 +562,7 @@ int16_t get_ivas_max_num_indices( else if ( ivas_total_brate <= IVAS_256k ) { #ifdef OMASA_BIT_BUFF_SZ return 1300; return 1450; #else return 1150; #endif Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -219,6 +219,7 @@ #define OMASA_BRSW_MONO_FIX /* Nokia: fix renderer config under rateswitching and MONO output */ #define OMASA_FIX_LOW_FS /* Nokia: fixes related to lower input signal sampling rates */ #define OMASA_BIT_BUFF_SZ /* Nokia: increase bitstream index buffer initial size */ #define OMASA_EXT_OUTPUT /* VA: support of EXT output configuration for OMASA DISC mode */ #endif /* #################### Start NON-BE CR switches ########################## */ Loading
lib_dec/ivas_init_dec.c +19 −1 Original line number Diff line number Diff line Loading @@ -784,10 +784,18 @@ ivas_error ivas_init_decoder( if ( output_config == AUDIO_CONFIG_EXTERNAL ) { #ifdef OMASA_EXT_OUTPUT if ( st_ivas->ism_mode == ISM_MASA_MODE_DISC ) { hDecoderConfig->nchan_out = st_ivas->nchan_transport + st_ivas->nchan_ism; } else #endif if ( !( st_ivas->ism_mode == ISM_MODE_PARAM ) ) { hDecoderConfig->nchan_out = st_ivas->nchan_transport; } st_ivas->hOutSetup.nchan_out_woLFE = hDecoderConfig->nchan_out; } Loading Loading @@ -2559,5 +2567,15 @@ static ivas_error doSanityChecks_IVAS( } #endif #ifdef OMASA_EXT_OUTPUT if ( st_ivas->ivas_format == MASA_ISM_FORMAT ) { if ( st_ivas->ism_mode != ISM_MASA_MODE_DISC && output_config == AUDIO_CONFIG_EXTERNAL ) { return IVAS_ERROR( IVAS_ERR_INVALID_OUTPUT_FORMAT, "Incorrect output configuration specified for combined MASA and ISM format" ); } } #endif return IVAS_ERR_OK; }
lib_dec/ivas_masa_dec.c +4 −0 Original line number Diff line number Diff line Loading @@ -571,7 +571,11 @@ ivas_error ivas_masa_decode( } } #ifdef OMASA_EXT_OUTPUT if ( ( st_ivas->ivas_format == MASA_FORMAT || st_ivas->ivas_format == MASA_ISM_FORMAT ) && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) #else if ( st_ivas->ivas_format == MASA_FORMAT && st_ivas->hDecoderConfig->output_config == AUDIO_CONFIG_EXTERNAL ) #endif { create_masa_ext_out_meta( hMasa, hQMetaData, st_ivas->nchan_transport ); } Loading