Loading apps/decoder.c +4 −1 Original line number Diff line number Diff line Loading @@ -2598,6 +2598,7 @@ static ivas_error decodeVariableSpeed( goto cleanup; } } /* Reference rotation */ if ( arg.enableReferenceRotation ) { Loading @@ -2614,6 +2615,7 @@ static ivas_error decodeVariableSpeed( goto cleanup; } } /* Head-tracking input simulation */ if ( arg.enableHeadRotation ) { Loading Loading @@ -2644,12 +2646,13 @@ static ivas_error decodeVariableSpeed( writeJbmTraceFileFrameWrapper, jbmTraceWriter #endif ); if ( error != IVAS_ERR_OK && error != IVAS_ERR_VS_FRAME_NEEDED ) if ( error != IVAS_ERR_OK && error != IVAS_ERR_VS_FRAME_NEEDED ) { fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } if ( error == IVAS_ERR_VS_FRAME_NEEDED ) { if ( arg.tsmScaleFileEnabled ) Loading lib_com/ivas_error.h +3 −3 Original line number Diff line number Diff line Loading @@ -87,14 +87,14 @@ typedef enum IVAS_ERR_ISM_INVALID_METADATA_VALUE, IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, IVAS_ERR_IO_CONFIG_PAIR_NOT_SUPPORTED, #ifdef VARIABLE_SPEED_DECODING IVAS_ERR_VS_FRAME_NEEDED, #endif #ifdef DEBUGGING IVAS_ERR_INVALID_FORCE_MODE, #ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ERR_INVALID_AGC, #endif #ifdef VARIABLE_SPEED_DECODING IVAS_ERR_VS_FRAME_NEEDED, #endif #endif /*----------------------------------------* Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ /* ################### Start DEBUGGING switches ########################### */ #ifndef RELEASE #define DEBUGGING /* Activate debugging part of the code */ //#define DEBUGGING /* Activate debugging part of the code */ #endif /*#define WMOPS*/ /* Activate complexity and memory counters */ /*#define WMOPS_PER_FRAME*/ /* Output per-frame complexity (writes one float value per frame to the file "wmops_analysis") */ Loading lib_dec/lib_dec.c +17 −13 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ struct IVAS_DEC_VOIP JB4_DATAUNIT_HANDLE hCurrentDataUnit; /* Points to the currently processed data unit */ uint16_t *bs_conversion_buf; /* Buffer for bitstream conversion from packed to serial */ #ifdef VARIABLE_SPEED_DECODING uint8_t mode; IVAS_DEC_VOIP_MODE voipMode; uint16_t speedFac; bool needNewFrame; #endif Loading Loading @@ -588,7 +588,7 @@ ivas_error IVAS_DEC_EnableVoIP( hIvasDec->hVoIP->lastDecodedWasActive = 0; hIvasDec->hVoIP->hCurrentDataUnit = NULL; #ifdef VARIABLE_SPEED_DECODING hIvasDec->hVoIP->mode = voipMode; hIvasDec->hVoIP->voipMode = voipMode; hIvasDec->hVoIP->speedFac = speedFac; hIvasDec->hVoIP->needNewFrame = false; #endif Loading Loading @@ -627,7 +627,7 @@ ivas_error IVAS_DEC_EnableVoIP( /* initialize JBM */ #ifdef VARIABLE_SPEED_DECODING hIvasDec->hVoIP->hJBM = NULL; if ( hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif if ( ( error = JB4_Create( &hIvasDec->hVoIP->hJBM ) != IVAS_ERR_OK ) != IVAS_ERR_OK ) Loading Loading @@ -674,7 +674,7 @@ ivas_error IVAS_DEC_EnableVoIP( /* create output pcm fifo*/ /* :TODO: also provide CLDFB output FIFO if things work out */ #ifdef VARIABLE_SPEED_DECODING if ( hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) if ( hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { hIvasDec->hVoIP->needNewFrame = true; } Loading Loading @@ -798,7 +798,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( } #ifdef VARIABLE_SPEED_DECODING if ( hIvasDec->hVoIP != NULL && hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) if ( hIvasDec->hVoIP != NULL && hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { hIvasDec->hVoIP->needNewFrame = false; } Loading Loading @@ -1772,6 +1772,7 @@ ivas_error IVAS_DEC_VoIP_FeedFrame( } #ifdef VARIABLE_SPEED_DECODING #ifdef DEBUGGING /*---------------------------------------------------------------------* * IVAS_DEC_VoIP_SetScale( ) * Loading @@ -1792,6 +1793,7 @@ ivas_error IVAS_DEC_VoIP_SetScale( return error; } #endif #endif /*---------------------------------------------------------------------* * IVAS_DEC_VoIP_GetSamples( ) Loading Loading @@ -1869,6 +1871,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( while ( pcmdsp_fifo_nReadableSamplesPerChannel( hVoIP->hFifoAfterTimeScaler ) < nSamplesPerChannel ) #endif { #ifdef DEBUGGING #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->needNewFrame ) { Loading @@ -1877,6 +1880,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( return IVAS_ERR_VS_FRAME_NEEDED; } #endif #endif #ifdef JBM_TSM_ON_TCS if ( hVoIP->nSamplesAvailableNext == 0 ) Loading @@ -1898,7 +1902,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( dataUnit = NULL; #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif /* pop one access unit from the jitter buffer */ Loading @@ -1909,7 +1913,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #ifdef VARIABLE_SPEED_DECODING } else if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) else if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { scale = hVoIP->speedFac; maxScaling = hVoIP->speedFac; Loading Loading @@ -1937,7 +1941,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif /* copy bitstream into decoder state */ Loading Loading @@ -2031,7 +2035,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif if ( dataUnit ) Loading Loading @@ -2189,7 +2193,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( nSamplesRendered += nSamplesRendered_loop; #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext == 0 ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext == 0 ) { hVoIP->needNewFrame = true; } Loading @@ -2204,7 +2208,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( hVoIP->nSamplesAvailableNext = max( 0, pcmdsp_fifo_nReadableSamplesPerChannel( hVoIP->hFifoOut ) - nSamplesPerChannel ); #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext < nSamplesPerChannel ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext < nSamplesPerChannel ) { hVoIP->needNewFrame = true; } Loading Loading @@ -3265,7 +3269,7 @@ ivas_error IVAS_DEC_VoIP_reconfigure( DECODER_CONFIG_HANDLE hDecoderConfig; #ifdef VARIABLE_SPEED_DECODING startQuality = hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ? -2.0f : 1.0f; startQuality = hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ? -2.0f : 1.0f; #else startQuality = 1.0f; #endif Loading Loading @@ -3324,7 +3328,7 @@ ivas_error IVAS_DEC_VoIP_reconfigure( } } #ifdef VARIABLE_SPEED_DECODING else if ( hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) else if ( hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { if ( pcmdsp_fifo_create( &hIvasDec->hVoIP->hFifoOut ) != 0 || pcmdsp_fifo_init( hIvasDec->hVoIP->hFifoOut, (uint16_t) ( hDecoderConfig->output_Fs * 4 / FRAMES_PER_SEC ) /* 4 frames */, hDecoderConfig->nchan_out, sizeof( int16_t ) ) != 0 ) Loading lib_dec/lib_dec.h +2 −0 Original line number Diff line number Diff line Loading @@ -222,12 +222,14 @@ ivas_error IVAS_DEC_VoIP_FeedFrame( ); #ifdef VARIABLE_SPEED_DECODING #ifdef DEBUGGING /*! r: error code */ ivas_error IVAS_DEC_VoIP_SetScale( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ const int16_t scale /* i : TSM scale to set */ ); #endif #endif /*! r: error code */ ivas_error IVAS_DEC_VoIP_GetSamples( Loading Loading
apps/decoder.c +4 −1 Original line number Diff line number Diff line Loading @@ -2598,6 +2598,7 @@ static ivas_error decodeVariableSpeed( goto cleanup; } } /* Reference rotation */ if ( arg.enableReferenceRotation ) { Loading @@ -2614,6 +2615,7 @@ static ivas_error decodeVariableSpeed( goto cleanup; } } /* Head-tracking input simulation */ if ( arg.enableHeadRotation ) { Loading Loading @@ -2644,12 +2646,13 @@ static ivas_error decodeVariableSpeed( writeJbmTraceFileFrameWrapper, jbmTraceWriter #endif ); if ( error != IVAS_ERR_OK && error != IVAS_ERR_VS_FRAME_NEEDED ) if ( error != IVAS_ERR_OK && error != IVAS_ERR_VS_FRAME_NEEDED ) { fprintf( stderr, "\nError in IVAS_DEC_VoIP_GetSamples: %s\n", IVAS_DEC_GetErrorMessage( error ) ); goto cleanup; } if ( error == IVAS_ERR_VS_FRAME_NEEDED ) { if ( arg.tsmScaleFileEnabled ) Loading
lib_com/ivas_error.h +3 −3 Original line number Diff line number Diff line Loading @@ -87,14 +87,14 @@ typedef enum IVAS_ERR_ISM_INVALID_METADATA_VALUE, IVAS_ERR_INVALID_MASA_FORMAT_METADATA_FILE, IVAS_ERR_IO_CONFIG_PAIR_NOT_SUPPORTED, #ifdef VARIABLE_SPEED_DECODING IVAS_ERR_VS_FRAME_NEEDED, #endif #ifdef DEBUGGING IVAS_ERR_INVALID_FORCE_MODE, #ifdef DEBUG_AGC_ENCODER_CMD_OPTION IVAS_ERR_INVALID_AGC, #endif #ifdef VARIABLE_SPEED_DECODING IVAS_ERR_VS_FRAME_NEEDED, #endif #endif /*----------------------------------------* Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ /* ################### Start DEBUGGING switches ########################### */ #ifndef RELEASE #define DEBUGGING /* Activate debugging part of the code */ //#define DEBUGGING /* Activate debugging part of the code */ #endif /*#define WMOPS*/ /* Activate complexity and memory counters */ /*#define WMOPS_PER_FRAME*/ /* Output per-frame complexity (writes one float value per frame to the file "wmops_analysis") */ Loading
lib_dec/lib_dec.c +17 −13 Original line number Diff line number Diff line Loading @@ -63,7 +63,7 @@ struct IVAS_DEC_VOIP JB4_DATAUNIT_HANDLE hCurrentDataUnit; /* Points to the currently processed data unit */ uint16_t *bs_conversion_buf; /* Buffer for bitstream conversion from packed to serial */ #ifdef VARIABLE_SPEED_DECODING uint8_t mode; IVAS_DEC_VOIP_MODE voipMode; uint16_t speedFac; bool needNewFrame; #endif Loading Loading @@ -588,7 +588,7 @@ ivas_error IVAS_DEC_EnableVoIP( hIvasDec->hVoIP->lastDecodedWasActive = 0; hIvasDec->hVoIP->hCurrentDataUnit = NULL; #ifdef VARIABLE_SPEED_DECODING hIvasDec->hVoIP->mode = voipMode; hIvasDec->hVoIP->voipMode = voipMode; hIvasDec->hVoIP->speedFac = speedFac; hIvasDec->hVoIP->needNewFrame = false; #endif Loading Loading @@ -627,7 +627,7 @@ ivas_error IVAS_DEC_EnableVoIP( /* initialize JBM */ #ifdef VARIABLE_SPEED_DECODING hIvasDec->hVoIP->hJBM = NULL; if ( hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif if ( ( error = JB4_Create( &hIvasDec->hVoIP->hJBM ) != IVAS_ERR_OK ) != IVAS_ERR_OK ) Loading Loading @@ -674,7 +674,7 @@ ivas_error IVAS_DEC_EnableVoIP( /* create output pcm fifo*/ /* :TODO: also provide CLDFB output FIFO if things work out */ #ifdef VARIABLE_SPEED_DECODING if ( hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) if ( hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { hIvasDec->hVoIP->needNewFrame = true; } Loading Loading @@ -798,7 +798,7 @@ ivas_error IVAS_DEC_FeedFrame_Serial( } #ifdef VARIABLE_SPEED_DECODING if ( hIvasDec->hVoIP != NULL && hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) if ( hIvasDec->hVoIP != NULL && hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { hIvasDec->hVoIP->needNewFrame = false; } Loading Loading @@ -1772,6 +1772,7 @@ ivas_error IVAS_DEC_VoIP_FeedFrame( } #ifdef VARIABLE_SPEED_DECODING #ifdef DEBUGGING /*---------------------------------------------------------------------* * IVAS_DEC_VoIP_SetScale( ) * Loading @@ -1792,6 +1793,7 @@ ivas_error IVAS_DEC_VoIP_SetScale( return error; } #endif #endif /*---------------------------------------------------------------------* * IVAS_DEC_VoIP_GetSamples( ) Loading Loading @@ -1869,6 +1871,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( while ( pcmdsp_fifo_nReadableSamplesPerChannel( hVoIP->hFifoAfterTimeScaler ) < nSamplesPerChannel ) #endif { #ifdef DEBUGGING #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->needNewFrame ) { Loading @@ -1877,6 +1880,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( return IVAS_ERR_VS_FRAME_NEEDED; } #endif #endif #ifdef JBM_TSM_ON_TCS if ( hVoIP->nSamplesAvailableNext == 0 ) Loading @@ -1898,7 +1902,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( dataUnit = NULL; #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif /* pop one access unit from the jitter buffer */ Loading @@ -1909,7 +1913,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #ifdef VARIABLE_SPEED_DECODING } else if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) else if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { scale = hVoIP->speedFac; maxScaling = hVoIP->speedFac; Loading Loading @@ -1937,7 +1941,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif /* copy bitstream into decoder state */ Loading Loading @@ -2031,7 +2035,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( } #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VOIP ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VOIP ) { #endif if ( dataUnit ) Loading Loading @@ -2189,7 +2193,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( nSamplesRendered += nSamplesRendered_loop; #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext == 0 ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext == 0 ) { hVoIP->needNewFrame = true; } Loading @@ -2204,7 +2208,7 @@ ivas_error IVAS_DEC_VoIP_GetSamples( hVoIP->nSamplesAvailableNext = max( 0, pcmdsp_fifo_nReadableSamplesPerChannel( hVoIP->hFifoOut ) - nSamplesPerChannel ); #ifdef VARIABLE_SPEED_DECODING if ( hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext < nSamplesPerChannel ) if ( hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED && hVoIP->nSamplesAvailableNext < nSamplesPerChannel ) { hVoIP->needNewFrame = true; } Loading Loading @@ -3265,7 +3269,7 @@ ivas_error IVAS_DEC_VoIP_reconfigure( DECODER_CONFIG_HANDLE hDecoderConfig; #ifdef VARIABLE_SPEED_DECODING startQuality = hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ? -2.0f : 1.0f; startQuality = hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ? -2.0f : 1.0f; #else startQuality = 1.0f; #endif Loading Loading @@ -3324,7 +3328,7 @@ ivas_error IVAS_DEC_VoIP_reconfigure( } } #ifdef VARIABLE_SPEED_DECODING else if ( hIvasDec->hVoIP->mode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) else if ( hIvasDec->hVoIP->voipMode == IVAS_DEC_VOIP_MODE_VARIABLE_SPEED ) { if ( pcmdsp_fifo_create( &hIvasDec->hVoIP->hFifoOut ) != 0 || pcmdsp_fifo_init( hIvasDec->hVoIP->hFifoOut, (uint16_t) ( hDecoderConfig->output_Fs * 4 / FRAMES_PER_SEC ) /* 4 frames */, hDecoderConfig->nchan_out, sizeof( int16_t ) ) != 0 ) Loading
lib_dec/lib_dec.h +2 −0 Original line number Diff line number Diff line Loading @@ -222,12 +222,14 @@ ivas_error IVAS_DEC_VoIP_FeedFrame( ); #ifdef VARIABLE_SPEED_DECODING #ifdef DEBUGGING /*! r: error code */ ivas_error IVAS_DEC_VoIP_SetScale( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ const int16_t scale /* i : TSM scale to set */ ); #endif #endif /*! r: error code */ ivas_error IVAS_DEC_VoIP_GetSamples( Loading