Loading lib_dec/lib_dec.c +11 −12 Original line number Original line Diff line number Diff line Loading @@ -1277,7 +1277,7 @@ ivas_error IVAS_DEC_GetSamples( #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT ivas_error IVAS_DEC_GetSplitBinauralBitstream( ivas_error IVAS_DEC_GetSplitBinauralBitstream( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ void *pcmBuf_out, /* o : output synthesis signal */ void *pcmBuf_out, /* o : output synthesis signal for BINAURAL_SPLIT_PCM */ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode*/ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode*/ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ bool *needNewFrame /* indication that the decoder needs a new frame */ bool *needNewFrame /* indication that the decoder needs a new frame */ Loading @@ -1288,9 +1288,7 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( int32_t output_Fs; int32_t output_Fs; float *writePtr; float *writePtr; float *readPtr, *readEnd; float *readPtr, *readEnd; #ifdef FIX_264_AUDIO_CHANNELS_TO_HEAP float *pOutput[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES]; float *pOutput[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES]; #endif float output[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES][L_FRAME48k]; float output[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES][L_FRAME48k]; float pcmBuf[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES * L_FRAME48k]; float pcmBuf[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES * L_FRAME48k]; int16_t numSamplesPerChannelCacheSize; int16_t numSamplesPerChannelCacheSize; Loading Loading @@ -1399,12 +1397,10 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( output[j][i] = pcmBuf[i * BINAURAL_CHANNELS * numPoses + j]; output[j][i] = pcmBuf[i * BINAURAL_CHANNELS * numPoses + j]; } } } } #ifdef FIX_264_AUDIO_CHANNELS_TO_HEAP for ( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) for ( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) { { pOutput[i] = output[i]; pOutput[i] = output[i]; } } #endif max_band = (int16_t) ( ( BINAURAL_MAXBANDS * output_Fs ) / 48000 ); max_band = (int16_t) ( ( BINAURAL_MAXBANDS * output_Fs ) / 48000 ); pcm_out = ( output_config == AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0; pcm_out = ( output_config == AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0; td_input = st_ivas->renderer_type != RENDERER_BINAURAL_FASTCONV && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC_ROOM && st_ivas->renderer_type != RENDERER_STEREO_PARAMETRIC; td_input = st_ivas->renderer_type != RENDERER_BINAURAL_FASTCONV && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC_ROOM && st_ivas->renderer_type != RENDERER_STEREO_PARAMETRIC; Loading Loading @@ -1434,9 +1430,11 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( } } /* convert to int16 with limiting for BINAURAL_SPLIT_PCM */ /* convert to int16 with limiting for BINAURAL_SPLIT_PCM */ if ( pcm_out ) { #ifndef DISABLE_LIMITER #ifndef DISABLE_LIMITER ivas_limiter_dec( st_ivas->hLimiter, pOutput, ivas_limiter_dec( st_ivas->hLimiter, pOutput, BINAURAL_CHANNELS, st_ivas->hDecoderConfig->nchan_out, numSamplesPerChannelToSplitEncode, st_ivas->BER_detect ); numSamplesPerChannelToSplitEncode, st_ivas->BER_detect ); #endif #endif Loading @@ -1444,8 +1442,9 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( st_ivas->noClipping += st_ivas->noClipping += #endif #endif ivas_syn_output( pOutput, numSamplesPerChannelToSplitEncode, ivas_syn_output( pOutput, numSamplesPerChannelToSplitEncode, BINAURAL_CHANNELS, st_ivas->hDecoderConfig->nchan_out, (int16_t *) pcmBuf_out ); (int16_t *) pcmBuf_out ); } free( st_ivas->splitBinRend.hMultiBinCldfbData ); free( st_ivas->splitBinRend.hMultiBinCldfbData ); Loading lib_dec/lib_dec.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -221,7 +221,7 @@ ivas_error IVAS_DEC_GetSamples( #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT ivas_error IVAS_DEC_GetSplitBinauralBitstream( ivas_error IVAS_DEC_GetSplitBinauralBitstream( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ void *pcmBuf, /* o : output synthesis signal */ void *pcmBuf_out, /* o : output synthesis signal for BINAURAL_SPLIT_PCM */ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode */ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode */ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ bool *needNewFrame /* indication that the decoder needs a new frame */ bool *needNewFrame /* indication that the decoder needs a new frame */ Loading Loading
lib_dec/lib_dec.c +11 −12 Original line number Original line Diff line number Diff line Loading @@ -1277,7 +1277,7 @@ ivas_error IVAS_DEC_GetSamples( #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT ivas_error IVAS_DEC_GetSplitBinauralBitstream( ivas_error IVAS_DEC_GetSplitBinauralBitstream( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ void *pcmBuf_out, /* o : output synthesis signal */ void *pcmBuf_out, /* o : output synthesis signal for BINAURAL_SPLIT_PCM */ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode*/ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode*/ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ bool *needNewFrame /* indication that the decoder needs a new frame */ bool *needNewFrame /* indication that the decoder needs a new frame */ Loading @@ -1288,9 +1288,7 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( int32_t output_Fs; int32_t output_Fs; float *writePtr; float *writePtr; float *readPtr, *readEnd; float *readPtr, *readEnd; #ifdef FIX_264_AUDIO_CHANNELS_TO_HEAP float *pOutput[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES]; float *pOutput[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES]; #endif float output[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES][L_FRAME48k]; float output[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES][L_FRAME48k]; float pcmBuf[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES * L_FRAME48k]; float pcmBuf[BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES * L_FRAME48k]; int16_t numSamplesPerChannelCacheSize; int16_t numSamplesPerChannelCacheSize; Loading Loading @@ -1399,12 +1397,10 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( output[j][i] = pcmBuf[i * BINAURAL_CHANNELS * numPoses + j]; output[j][i] = pcmBuf[i * BINAURAL_CHANNELS * numPoses + j]; } } } } #ifdef FIX_264_AUDIO_CHANNELS_TO_HEAP for ( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) for ( i = 0; i < BINAURAL_CHANNELS * MAX_HEAD_ROT_POSES; ++i ) { { pOutput[i] = output[i]; pOutput[i] = output[i]; } } #endif max_band = (int16_t) ( ( BINAURAL_MAXBANDS * output_Fs ) / 48000 ); max_band = (int16_t) ( ( BINAURAL_MAXBANDS * output_Fs ) / 48000 ); pcm_out = ( output_config == AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0; pcm_out = ( output_config == AUDIO_CONFIG_BINAURAL_SPLIT_PCM ) ? 1 : 0; td_input = st_ivas->renderer_type != RENDERER_BINAURAL_FASTCONV && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC_ROOM && st_ivas->renderer_type != RENDERER_STEREO_PARAMETRIC; td_input = st_ivas->renderer_type != RENDERER_BINAURAL_FASTCONV && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC && st_ivas->renderer_type != RENDERER_BINAURAL_PARAMETRIC_ROOM && st_ivas->renderer_type != RENDERER_STEREO_PARAMETRIC; Loading Loading @@ -1434,9 +1430,11 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( } } /* convert to int16 with limiting for BINAURAL_SPLIT_PCM */ /* convert to int16 with limiting for BINAURAL_SPLIT_PCM */ if ( pcm_out ) { #ifndef DISABLE_LIMITER #ifndef DISABLE_LIMITER ivas_limiter_dec( st_ivas->hLimiter, pOutput, ivas_limiter_dec( st_ivas->hLimiter, pOutput, BINAURAL_CHANNELS, st_ivas->hDecoderConfig->nchan_out, numSamplesPerChannelToSplitEncode, st_ivas->BER_detect ); numSamplesPerChannelToSplitEncode, st_ivas->BER_detect ); #endif #endif Loading @@ -1444,8 +1442,9 @@ ivas_error IVAS_DEC_GetSplitBinauralBitstream( st_ivas->noClipping += st_ivas->noClipping += #endif #endif ivas_syn_output( pOutput, numSamplesPerChannelToSplitEncode, ivas_syn_output( pOutput, numSamplesPerChannelToSplitEncode, BINAURAL_CHANNELS, st_ivas->hDecoderConfig->nchan_out, (int16_t *) pcmBuf_out ); (int16_t *) pcmBuf_out ); } free( st_ivas->splitBinRend.hMultiBinCldfbData ); free( st_ivas->splitBinRend.hMultiBinCldfbData ); Loading
lib_dec/lib_dec.h +2 −2 Original line number Original line Diff line number Diff line Loading @@ -221,7 +221,7 @@ ivas_error IVAS_DEC_GetSamples( #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT #if defined API_5MS && defined SPLIT_REND_WITH_HEAD_ROT ivas_error IVAS_DEC_GetSplitBinauralBitstream( ivas_error IVAS_DEC_GetSplitBinauralBitstream( IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ IVAS_DEC_HANDLE hIvasDec, /* i/o: IVAS decoder handle */ void *pcmBuf, /* o : output synthesis signal */ void *pcmBuf_out, /* o : output synthesis signal for BINAURAL_SPLIT_PCM */ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode */ IVAS_SPLIT_REND_BITS_HANDLE hSplitRendBits, /* o : bitstream output for split rendering mode */ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ int16_t *nOutSamples, /* o : number of samples per channel written to output buffer */ bool *needNewFrame /* indication that the decoder needs a new frame */ bool *needNewFrame /* indication that the decoder needs a new frame */ Loading