Commit d0ce969d authored by vaclav's avatar vaclav
Browse files

updates

parent 3565ea33
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -165,7 +165,7 @@
#define JBM_MEMORY_OPT                                  /* VA: issue 916: optimization of RAM in the JBM decoder */
#define OPT_TC  // separate heap memory from hTcBuffer->tcBuffer[]
//#define FIX_OSBA_BR_SW_FLUSH   // this is non-BE bugfix
//#define REMOVE_APA_BUFFER   // remove hIvasDec->apaExecBuffer[]
#define REMOVE_APA_BUFFER   // remove hIvasDec->apaExecBuffer[]

#define MY_DEBUG
#endif
+23 −0
Original line number Diff line number Diff line
@@ -2098,7 +2098,11 @@ static void ivas_jbm_dec_copy_tc(
            {
                tc_digest_f[ch][n_samples_still_available + m] = data[m * st_ivas->hTcBuffer->nchan_transport_jbm + ch];
            }
#ifdef OPT_TC
            mvr2r( tc_digest_f[ch] + hTcBuffer->n_samples_available, hTcBuffer->tc_buffer_old[ch], *nSamplesResidual );
#else
            mvr2r( tc_digest_f[ch] + hTcBuffer->n_samples_available, hTcBuffer->tc[ch], *nSamplesResidual );
#endif
        }
    }

@@ -2226,7 +2230,11 @@ ivas_error ivas_jbm_dec_tc_buffer_open(
        int32_t offset;
        if ( st_ivas->hDecoderConfig->Opt_tsm )
        {
#ifdef REMOVE_APA_BUFFER
            n_samp_full = ( NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) );
#else
            n_samp_full = ( NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) + hTcBuffer->n_samples_granularity - 1 );
#endif
            n_samp_residual = hTcBuffer->n_samples_granularity - 1;
        }
        else
@@ -2236,9 +2244,14 @@ ivas_error ivas_jbm_dec_tc_buffer_open(
        }

        nsamp_to_allocate = hTcBuffer->nchan_buffer_full * n_samp_full;
#ifdef OPT_TC

        if ( nsamp_to_allocate == 0 && nchan_residual * n_samp_residual == 0 )
#else
        nsamp_to_allocate += nchan_residual * n_samp_residual;

        if ( nsamp_to_allocate == 0 )
#endif
        {
            hTcBuffer->tc_buffer = NULL;

@@ -2389,7 +2402,11 @@ ivas_error ivas_jbm_dec_tc_buffer_reconfigure(

    if ( st_ivas->hDecoderConfig->Opt_tsm )
    {
#ifdef REMOVE_APA_BUFFER
        n_samp_full = ( NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) );
#else
        n_samp_full = ( NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) + hTcBuffer->n_samples_granularity - 1 );
#endif
        n_samp_residual = hTcBuffer->n_samples_granularity - 1;
    }
    else
@@ -2397,10 +2414,16 @@ ivas_error ivas_jbm_dec_tc_buffer_reconfigure(
        n_samp_full = (int16_t) ( st_ivas->hDecoderConfig->output_Fs / FRAMES_PER_SEC );
        n_samp_residual = 0;
    }

    nsamp_to_allocate = hTcBuffer->nchan_buffer_full * n_samp_full;
#ifdef OPT_TC

    if ( nsamp_to_allocate == 0 && nchan_residual * n_samp_residual == 0 )
#else
    nsamp_to_allocate += nchan_residual * n_samp_residual;

    if ( nsamp_to_allocate == 0 )
#endif
    {
        hTcBuffer->tc_buffer = NULL;
        for ( ch_idx = 0; ch_idx < MAX_TRANSPORT_CHANNELS + MAX_NUM_OBJECTS; ch_idx++ )
+15 −7
Original line number Diff line number Diff line
@@ -1194,7 +1194,7 @@ ivas_error IVAS_DEC_ReadFormat(
#ifdef MY_DEBUG
            for ( int16_t ch = 0; ch < min( hIvasDec->st_ivas->hTcBuffer->nchan_transport_jbm, hIvasDec->st_ivas->hTcBuffer->nchan_buffer_full ); ch++ )
            {
                set_f( hIvasDec->st_ivas->hTcBuffer->tc[ch], 0, hIvasDec->nSamplesFrame + hIvasDec->nSamplesFrame / 2 + hIvasDec->st_ivas->hTcBuffer->n_samples_granularity ); // VE: debug
                set_f( hIvasDec->st_ivas->hTcBuffer->tc[ch], 0, hIvasDec->nSamplesFrame + hIvasDec->nSamplesFrame / 2 );
            }

#endif
@@ -1360,12 +1360,12 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
#ifdef MY_DEBUG
        for ( int16_t ch = 0; ch < min( hIvasDec->st_ivas->hTcBuffer->nchan_transport_jbm, hIvasDec->st_ivas->hTcBuffer->nchan_buffer_full ); ch++ )
        {
            set_f( hIvasDec->st_ivas->hTcBuffer->tc[ch], 0, hIvasDec->nSamplesFrame + hIvasDec->nSamplesFrame / 2 + hIvasDec->st_ivas->hTcBuffer->n_samples_granularity ); // VE: debug
            set_f( hIvasDec->st_ivas->hTcBuffer->tc[ch], 0, hIvasDec->nSamplesFrame + hIvasDec->nSamplesFrame / 2 );
        }

#endif
#ifdef REMOVE_APA_BUFFER
        for ( int16_t ch = 0; ch < hIvasDec->st_ivas->hTcBuffer->nchan_transport_jbm; ch++ )
        for ( int16_t ch = 0; ch < min( hIvasDec->st_ivas->hTcBuffer->nchan_transport_jbm, hIvasDec->st_ivas->hTcBuffer->nchan_buffer_full ); ch++ )
        {
            mvr2r( hIvasDec->st_ivas->p_output_f[ch], hIvasDec->st_ivas->hTcBuffer->tc[ch], hIvasDec->nSamplesFrame );
        }
@@ -1393,14 +1393,14 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
            }

#ifdef MY_DEBUG
            set_f( hIvasDec->apaExecBuffer, 0, nTransportChannels * APA_BUF_PER_CHANNEL ); // VE: debug
            set_f( hIvasDec->apaExecBuffer, 0, nTransportChannels * APA_BUF_PER_CHANNEL );

#endif
#ifdef LIB_DEC_REVISION
            ivas_syn_output_f( hIvasDec->st_ivas->p_output_f, hIvasDec->nSamplesFrame, nTransportChannels, hIvasDec->apaExecBuffer );

#endif
#ifdef REMOVE_APA_BUFFER
#ifdef REMOVE_APA_BUFFERaa
            if ( apa_exec( hIvasDec->hTimeScaler, hIvasDec->st_ivas->hTcBuffer->tc_buffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer, &nTimeScalerOutSamples ) != 0 )
#else
            if ( apa_exec( hIvasDec->hTimeScaler, hIvasDec->apaExecBuffer, hIvasDec->nSamplesFrame * nTransportChannels, (uint16_t) hIvasDec->tsm_max_scaling, hIvasDec->apaExecBuffer, &nTimeScalerOutSamples ) != 0 )
@@ -1422,6 +1422,13 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
         * Feed decoded transport channels samples to the renderer
         *-----------------------------------------------------------------*/

#ifdef MY_DEBUG
        for ( int16_t ch = 0; ch < min( hIvasDec->st_ivas->hTcBuffer->nchan_transport_jbm, hIvasDec->st_ivas->hTcBuffer->nchan_buffer_full ); ch++ )
        {
            set_f( hIvasDec->st_ivas->hTcBuffer->tc[ch], 0, hIvasDec->nSamplesFrame + hIvasDec->nSamplesFrame / 2 );
        }

#endif
#ifdef LIB_DEC_REVISION
        ivas_jbm_dec_feed_tc_to_renderer( st_ivas, nSamplesTcsScaled, &nResidualSamples, hIvasDec->apaExecBuffer );
#else
@@ -1432,7 +1439,7 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
#endif

#ifdef MY_DEBUG
        set_f( hIvasDec->apaExecBuffer, 0, nTransportChannels * APA_BUF_PER_CHANNEL ); // VE: debug
        set_f( hIvasDec->apaExecBuffer, 0, nTransportChannels * APA_BUF_PER_CHANNEL );

#endif
        if ( hIvasDec->st_ivas->hDecoderConfig->Opt_tsm )
@@ -2102,7 +2109,8 @@ ivas_error IVAS_DEC_GetSamplesRenderer(
                }
                for ( ; ch < max( hTcBuffer->nchan_transport_jbm, hTcBuffer->nchan_buffer_full ); ch++ )
                {
                    mvr2r( hTcBuffer->tc[ch], hTcBuffer->tc_buffer_old[ch], hTcBuffer->n_samples_buffered - hTcBuffer->n_samples_rendered );
                    /* note: residual channels were saved already in ivas_jbm_dec_copy_tc() */
                    // mvr2r( hTcBuffer->tc[ch], hTcBuffer->tc_buffer_old[ch], hTcBuffer->n_samples_buffered - hTcBuffer->n_samples_rendered );
                }
            }
        }