Commit 3565ea33 authored by vaclav's avatar vaclav
Browse files

- fix FIX_OSBA_BR_SW_FLUSH

- update
parent c04ee29b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -164,6 +164,7 @@
#if 1
#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 MY_DEBUG
+13 −7
Original line number Diff line number Diff line
@@ -1425,12 +1425,15 @@ ivas_error ivas_jbm_dec_flush_renderer(

#ifdef OPT_TC
        /* render available full slots (with new lower granularity) */
#ifdef FIX_OSBA_BR_SW_FLUSH
        for ( ch_idx = 0; ch_idx < max( hTcBuffer->nchan_transport_jbm, hTcBuffer->nchan_buffer_full ); ch_idx++ )
#else
        for ( ch_idx = 0; ch_idx < min( hTcBuffer->nchan_transport_jbm, hTcBuffer->nchan_buffer_full ); ch_idx++ )
        //for ( ch_idx = 0; ch_idx < max( hTcBuffer->nchan_transport_jbm, hTcBuffer->nchan_buffer_full ); ch_idx++ )
#endif
        {
            mvr2r( hTcBuffer->tc_buffer_old[ch_idx], hTcBuffer->tc[ch_idx], n_samples_to_render );
        }

#ifndef FIX_OSBA_BR_SW_FLUSH
        for ( ; ch_idx < hTcBuffer->nchan_buffer_full; ch_idx++ )
        {
            /* move it at the beginning of the TC buffer with zero padding */
@@ -1438,6 +1441,7 @@ ivas_error ivas_jbm_dec_flush_renderer(
            set_zero( hTcBuffer->tc[ch_idx] + n_samples_to_render, hTcBuffer->n_samples_granularity - n_samples_to_render );
            mvr2r( hTcBuffer->tc[ch_idx] + hTcBuffer->n_samples_rendered + n_samples_to_render, hTcBuffer->tc[ch_idx] + hTcBuffer->n_samples_granularity, n_samples_still_available );
        }
#endif
#else
        /* render what is still there with zero padding */
        for ( ch_idx = 0; ch_idx < hTcBuffer->nchan_buffer_full; ch_idx++ )
@@ -2069,11 +2073,12 @@ static void ivas_jbm_dec_copy_tc(

    for ( ch = 0; ch < n_ch_full_copy; ch++ )
    {
#ifdef OPT_TC
        mvr2r( st_ivas->hTcBuffer->tc_buffer_old[ch], st_ivas->hTcBuffer->tc[ch] + st_ivas->hTcBuffer->n_samples_rendered, n_samples_still_available );
#endif
        set_zero( hTcBuffer->tc[ch], hTcBuffer->n_samples_discard );
#ifdef OPT_TC
        mvr2r( st_ivas->hTcBuffer->tc_buffer_old[ch], st_ivas->hTcBuffer->tc[ch] + st_ivas->hTcBuffer->n_samples_discard, n_samples_still_available );
#else
        mvr2r( hTcBuffer->tc[ch] + hTcBuffer->n_samples_rendered, hTcBuffer->tc[ch] + hTcBuffer->n_samples_discard, n_samples_still_available );
#endif
        for ( m = 0; m < nSamplesForRendering; m++ )
        {
            hTcBuffer->tc[ch][n_samples_still_available + hTcBuffer->n_samples_discard + m] = data[m * st_ivas->hTcBuffer->nchan_transport_jbm + ch];
@@ -2085,9 +2090,10 @@ static void ivas_jbm_dec_copy_tc(
        for ( ; ch < hTcBuffer->nchan_transport_jbm; ch++ )
        {
#ifdef OPT_TC
            mvr2r( st_ivas->hTcBuffer->tc_buffer_old[ch], tc_digest_f[ch], n_samples_still_available ); // VE: TBV!!!
#endif
            mvr2r( st_ivas->hTcBuffer->tc_buffer_old[ch], tc_digest_f[ch], n_samples_still_available );
#else
            mvr2r( hTcBuffer->tc[ch], tc_digest_f[ch], n_samples_still_available );
#endif
            for ( m = 0; m < nSamplesForRendering; m++ )
            {
                tc_digest_f[ch][n_samples_still_available + m] = data[m * st_ivas->hTcBuffer->nchan_transport_jbm + ch];