diff --git a/Workspace_msvc/lib_rend.vcxproj b/Workspace_msvc/lib_rend.vcxproj index 13dc5e83c3a9d35a841e05dd245df67fff739c18..e0660f54cb03ef6a92e51b7a3a99af9b4e8eefa7 100644 --- a/Workspace_msvc/lib_rend.vcxproj +++ b/Workspace_msvc/lib_rend.vcxproj @@ -169,7 +169,7 @@ Neither false false - ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;..\lib_util;%(AdditionalIncludeDirectories) + ..\lib_com;..\lib_debug;..\lib_dec;..\lib_enc;%(AdditionalIncludeDirectories) _CRT_SECURE_NO_WARNINGS;$(Macros);WIN32;%(PreprocessorDefinitions) true diff --git a/apps/decoder.c b/apps/decoder.c index 11d70adf280950564f4c3003f937038c5e128d50..b846e30829f94a5f1337925fb2d80ed79d415d56 100644 --- a/apps/decoder.c +++ b/apps/decoder.c @@ -1794,6 +1794,15 @@ cleanup: #endif #endif +#ifdef MC_JBM +#ifdef SUPPORT_JBM_TRACEFILE +static ivas_error writeJbmTraceFileFrameWrapper( const void *data, void *writer ) +{ + return JbmTraceFileWriter_writeFrame( data, writer ); +} +#endif +#endif + /*---------------------------------------------------------------------* * decodeVoIP() @@ -2042,6 +2051,7 @@ static ivas_error decodeVoIP( if ( ( error = IVAS_DEC_VoIP_GetSamples( hIvasDec, nOutSamples, pcmBuf, systemTime_ms #ifdef SUPPORT_JBM_TRACEFILE , + writeJbmTraceFileFrameWrapper, jbmTraceWriter #endif ) ) != IVAS_ERR_OK ) diff --git a/lib_dec/lib_dec.c b/lib_dec/lib_dec.c index 73343af1f24b2ad10c79adebde0552c149abef1e..818433ab5840e79243c295c5bf33ac21117b5893 100644 --- a/lib_dec/lib_dec.c +++ b/lib_dec/lib_dec.c @@ -1383,7 +1383,8 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #ifdef MC_JBM #ifdef SUPPORT_JBM_TRACEFILE , - JbmTraceFileWriter *jbmTraceFileWriter + JbmTraceFileWriterFn jbmWriterFn, + void *jbmWriter #endif #endif ) @@ -1604,12 +1605,12 @@ ivas_error IVAS_DEC_VoIP_GetSamples( #ifdef MC_JBM #ifdef SUPPORT_JBM_TRACEFILE - /* jbmTraceFileWriter may be NULL if tracefile writing was not requested on CLI */ - if ( jbmTraceFileWriter != NULL ) + /* jbmWriterFn and jbmWriter may be NULL if tracefile writing was not requested on CLI */ + if ( jbmWriterFn != NULL && jbmWriter != NULL ) { /* write JBM trace data entry */ store_JbmData( hVoIP, dataUnit, systemTimestamp_ms, extBufferedSamples, hDecoderConfig->output_Fs ); - if ( ( JbmTraceFileWriter_writeFrame( &hVoIP->JbmTraceData, jbmTraceFileWriter ) ) != IVAS_ERR_OK ) + if ( ( jbmWriterFn( &hVoIP->JbmTraceData, jbmWriter ) ) != IVAS_ERR_OK ) { fprintf( stderr, "\nError writing JBM Trace data to file\n" ); return IVAS_ERR_UNKNOWN; diff --git a/lib_dec/lib_dec.h b/lib_dec/lib_dec.h index a59407692592d3317bee7ef5367a5d279d7f26be..5d57d330a9a596803fdb812f17ed079016976f62 100644 --- a/lib_dec/lib_dec.h +++ b/lib_dec/lib_dec.h @@ -35,11 +35,6 @@ #include "common_api_types.h" #include "ivas_error.h" -#ifdef MC_JBM -#ifdef SUPPORT_JBM_TRACEFILE -#include "jbm_file_writer.h" -#endif -#endif #include #include @@ -108,6 +103,13 @@ typedef enum _IVAS_DEC_BS_FORMAT typedef struct IVAS_DEC *IVAS_DEC_HANDLE; +#ifdef MC_JBM +#ifdef SUPPORT_JBM_TRACEFILE +/* Callback function for JBM tracefile writing */ +typedef ivas_error ( *JbmTraceFileWriterFn )( const void *data, void *writer ); +#endif +#endif + /* clang-format off */ /*---------------------------------------------------------------------* @@ -209,7 +211,8 @@ ivas_error IVAS_DEC_VoIP_GetSamples( const uint32_t systemTimestamp_ms /* i : current system timestamp */ #ifdef MC_JBM #ifdef SUPPORT_JBM_TRACEFILE - , JbmTraceFileWriter *jbmWriter + , JbmTraceFileWriterFn jbmWriterFn, + void* jbmWriter #endif #endif );