Commit 7f8439dd authored by multrus's avatar multrus
Browse files

[cleanup] accept FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER

parent 38633f69
Loading
Loading
Loading
Loading
+0 −18
Original line number Diff line number Diff line
@@ -2006,37 +2006,19 @@ UWord32 ivas_syn_output_fx(
    Word16 *synth_out                                           /* o  : integer 16 bits synthesis signal            */
);

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
void ivas_buffer_interleaved_to_deinterleaved_fx(
    Word32 *audio_in,                                           /* i  : interleaved audio buffer                                */
    Word32 *audio_out[],                                        /* o  : pointers to each channel of deinterleaved audio buffer  */
    const Word16 n_channels,                                    /* i  : number of channels                                      */
    const Word16 frame_length                                   /* i  : frame length (one channel)                              */
);
#else
void ivas_buffer_interleaved_to_deinterleaved_fx(
    Word32 *audio,                                              /* i/o: audio buffer                                */
    const Word16 n_channels,                                    /* i  : number of channels                          */
    const Word16 frame_length,                                  /* i  : frame length (one channel)                  */
    const Word16 n_samp_full                                    /* i  : full frame length (one channel)             */
);
#endif

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
void ivas_buffer_deinterleaved_to_interleaved_fx(
    Word32 *audio_in[],                                         /* i  : pointers to each channel of deinterleaved audio buffer  */
    Word32 *audio_out,                                          /* o  : interleaved audio buffer                                */
    const Word16 n_channels,                                    /* i  : number of channels                                      */
    const Word16 frame_length                                   /* i  : frame length (one channel)                              */
);
#else
void ivas_buffer_deinterleaved_to_interleaved_fx(
    Word32 *audio[],                                            /* i  : deinterleaved audio buffer                  */
    const Word16 n_channels,                                    /* i  : number of channels                          */
    const Word16 frame_length,                                  /* i  : frame length (one channel)                  */
    Word32 *audio_out                                           /* o  : interleaved audio buffer                    */
);
#endif

void stereo_tcx_core_dec_fx(
    Decoder_State *st,                                          /* i/o: decoder state structure                     */
+0 −62
Original line number Diff line number Diff line
@@ -160,7 +160,6 @@ UWord32 ivas_syn_output_fx(
 * Convert an interleaved buffer of audio channels to deinterleaved one
 *-------------------------------------------------------------------*/

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
void ivas_buffer_interleaved_to_deinterleaved_fx(
    Word32 *audio_in,         /* i  : interleaved audio buffer                                */
    Word32 *audio_out[],      /* o  : pointers to each channel of deinterleaved audio buffer  */
@@ -191,37 +190,6 @@ void ivas_buffer_interleaved_to_deinterleaved_fx(

    return;
}
#else
void ivas_buffer_interleaved_to_deinterleaved_fx(
    Word32 *audio,             /* i/o: audio buffer                    */
    const Word16 n_channels,   /* i  : number of channels              */
    const Word16 frame_length, /* i  : frame length (one channel)      */
    const Word16 n_samp_full   /* i  : full frame length (one channel) */
)
{
    Word16 offset, ch, m;
    Word32 buffer[MAX_TRANSPORT_CHANNELS][MAX_JBM_L_FRAME48k];

    FOR( ch = 0; ch < n_channels; ch++ )
    {
        FOR( m = 0; m < frame_length; m++ )
        {
            buffer[ch][m] = audio[m * n_channels + ch];
            move32();
        }
    }

    offset = 0;
    move16();
    FOR( ch = 0; ch < n_channels; ch++ )
    {
        Copy32( buffer[ch], audio + offset, frame_length );
        offset = add( offset, n_samp_full );
    }

    return;
}
#endif


/*-------------------------------------------------------------------*
@@ -230,7 +198,6 @@ void ivas_buffer_interleaved_to_deinterleaved_fx(
 * Convert a deinterleaved buffer of audio channels to interleaved one
 *-------------------------------------------------------------------*/

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
void ivas_buffer_deinterleaved_to_interleaved_fx(
    Word32 *audio_in[],       /* i  : pointers to each channel of deinterleaved audio buffer  */
    Word32 *audio_out,        /* o  : interleaved audio buffer                                */
@@ -261,35 +228,6 @@ void ivas_buffer_deinterleaved_to_interleaved_fx(

    return;
}
#else
void ivas_buffer_deinterleaved_to_interleaved_fx(
    Word32 *audio[],           /* i/o: deinterleaved audio buffer      */
    const Word16 n_channels,   /* i  : number of channels              */
    const Word16 frame_length, /* i  : frame length (one channel)      */
    Word32 *audio_out          /* o  : interleaved audio buffer        */
)
{
    Word16 ch, m;
    Word32 buffer[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS][L_FRAME48k]; /* temp buffer needed when "*audio[]" and "*audio_out[]" are the same */

    FOR( ch = 0; ch < n_channels; ch++ )
    {
        Copy32( audio[ch], buffer[ch], frame_length );
    }


    FOR( ch = 0; ch < n_channels; ch++ )
    {
        FOR( m = 0; m < frame_length; m++ )
        {
            audio_out[m * n_channels + ch] = buffer[ch][m];
            move32();
        }
    }

    return;
}
#endif


/*-------------------------------------------------------------------*
+0 −1
Original line number Diff line number Diff line
@@ -98,7 +98,6 @@
/* #################### Start NON-BE switches ############################ */
/* any switch which is non-be wrt. TS 26.251 V3.0 */

#define FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER           /* FhG/VA: basop issue 2396: keep TC channel pointers in one constant place during decoding and rendering */
#define FIX_2408_FD_BWE_UPDATE                          /* VA: basop issue 2408: bug-fix in the FD BWE memory updates in wb_pre_proc_ivas_fx()  */
#define FIX_2380_HARM_GSC_GAIN_COMP_FX                  /* VA: basop issue 2380 & 2381: Fix issue when switching from CNG low energy to active content with high energy */
#define FIX_2406_FIX_GAIN_ON_INACTIVE                   /* VA: basop issue 2406: gain between 6.4 and 8kHz was too weak during inactive content with Fs=16kHz  */
+0 −23
Original line number Diff line number Diff line
@@ -83,12 +83,7 @@ void ivas_dec_feed_tc_to_renderer_fx(
{
    Word32 tmp_buf_fx[MAX_JBM_L_FRAME48k];
    Word32 *p_data_fx[FOA_CHANNELS + MAX_NUM_OBJECTS];
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
    Word16 n, n_render_timeslots, n_ch_cldfb, ch;
#else
    Word16 n, n_render_timeslots, n_ch_cldfb;
    Word16 ch, offset, len_offset;
#endif
    DECODER_TC_BUFFER_HANDLE hTcBuffer;

    hTcBuffer = st_ivas->hTcBuffer;
@@ -113,24 +108,6 @@ void ivas_dec_feed_tc_to_renderer_fx(
        n_ch_full_copy = s_min( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full );
        n_ch_res_copy = sub( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full );

#ifndef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
        /* buffers are shared between 'hTcBuffer->tc[]' and 'p_output_f[]':
           in case of 'length(hTcBuffer->tc[]) < length(p_output_f[])', reset of TC buffer
           pointers is needed after ivas_buffer_interleaved_to_deinterleaved() */
        len_offset = NS2SA_FX2( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS );
        IF( LT_16( len_offset, L_FRAME48k ) )
        {
            offset = 0;
            move16();
            FOR( ch = 0; ch < s_max( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full ); ch++ )
            {
                hTcBuffer->tc_fx[ch] = &hTcBuffer->tc_buffer_fx[offset];
                st_ivas->p_output_fx[ch] = hTcBuffer->tc_fx[ch];
                offset = add( offset, len_offset );
            }
        }

#endif
        FOR( ch = 0; ch < n_ch_full_copy; ch++ )
        {
            Copy32( hTcBuffer->tc_fx[ch], tmp_buf_fx, nSamplesForRendering );
+0 −8
Original line number Diff line number Diff line
@@ -3930,11 +3930,7 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
            }

            /* convert deinterleaved decoded TC audio channels buffer to an interleaved one */
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
            ivas_buffer_deinterleaved_to_interleaved_fx( st_ivas->p_output_fx, st_ivas->hTcBuffer->tc_buffer_fx, nTransportChannels, hIvasDec->nSamplesFrame );
#else
            ivas_buffer_deinterleaved_to_interleaved_fx( st_ivas->p_output_fx, nTransportChannels, hIvasDec->nSamplesFrame, st_ivas->hTcBuffer->tc_buffer_fx );
#endif

            IF( EQ_16( (Word16) hIvasDec->mode, IVAS_DEC_MODE_EVS ) )
            {
@@ -3954,11 +3950,7 @@ ivas_error IVAS_DEC_GetSamplesDecoder(
            move16();

            /* convert interleaved time-scaled TC audio channels buffer to deinterleaved one */
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
            ivas_buffer_interleaved_to_deinterleaved_fx( st_ivas->hTcBuffer->tc_buffer_fx, st_ivas->p_output_fx, nTransportChannels, nSamplesTcsScaled );
#else
            ivas_buffer_interleaved_to_deinterleaved_fx( st_ivas->hTcBuffer->tc_buffer_fx, nTransportChannels, nSamplesTcsScaled, NS2SA( st_ivas->hDecoderConfig->output_Fs, MAX_JBM_L_FRAME_NS ) );
#endif
        }
        else
        {