Commit cad35b81 authored by sagnowski's avatar sagnowski
Browse files

Align fix with float repo

parent 6941a77d
Loading
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -2060,23 +2060,28 @@ 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)                  */
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
    const Word16 deinterleaved_stride                           /* i  : offset between subsequent channels in deinterleaved layout */
#else
    const Word16 n_samp_full                                    /* i  : full frame length (one channel)             */
#endif
);
#endif

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
void ivas_buffer_deinterleaved_to_interleaved_fx(
    Word32 *audio,                                              /* i/o: audio buffer                                */
    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)                  */
    const Word16 deinterleaved_stride                           /* i  : offset between subsequent channels in deinterleaved layout */
    const Word16 frame_length                                   /* i  : frame length (one channel)                              */
);
#else
void ivas_buffer_deinterleaved_to_interleaved_fx(
+47 −21
Original line number Diff line number Diff line
@@ -160,15 +160,43 @@ 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  */
    const Word16 n_channels,  /* i  : number of channels                                      */
    const Word16 frame_length /* i  : frame length (one channel)                              */
)
{
    Word16 ch, s;
    Word32 buffer[MAX_TRANSPORT_CHANNELS][MAX_JBM_L_FRAME48k]; /* temp buffer needed when "*audio_in" and "*audio_out[]" point to the same memory */

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

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

    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)      */
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
    const Word16 deinterleaved_stride /* i  : offset between subsequent channels in deinterleaved layout */
#else
    const Word16 n_samp_full   /* i  : full frame length (one channel) */
#endif
)
{
    Word16 offset, ch, m;
@@ -188,15 +216,12 @@ void ivas_buffer_interleaved_to_deinterleaved_fx(
    FOR( ch = 0; ch < n_channels; ch++ )
    {
        Copy32( buffer[ch], audio + offset, frame_length );
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
        offset = add( offset, deinterleaved_stride );
#else
        offset = add( offset, n_samp_full );
#endif
    }

    return;
}
#endif


/*-------------------------------------------------------------------*
@@ -207,28 +232,29 @@ void ivas_buffer_interleaved_to_deinterleaved_fx(

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
void ivas_buffer_deinterleaved_to_interleaved_fx(
    Word32 *audio,                    /* i/o: audio buffer                    */
    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)      */
    const Word16 deinterleaved_stride /* i  : offset between subsequent channels in deinterleaved layout */
    const Word16 frame_length /* i  : frame length (one channel)                              */
)
{
    Word16 offset, ch, m;
    Word32 buffer[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS][L_FRAME48k];
    Word16 ch, s;
    Word32 buffer[MAX_OUTPUT_CHANNELS + MAX_NUM_OBJECTS][L_FRAME48k]; /* temp buffer needed when "*audio_in[]" and "*audio_out" point to the same memory */

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

    FOR( ch = 0; ch < n_channels; ch++ )
    {
        FOR( m = 0; m < frame_length; m++ )
        FOR( s = 0; s < frame_length; s++ )
        {
            audio[m * n_channels + ch] = buffer[ch][m];
            audio_out[s * n_channels + ch] = buffer[ch][s];
            move32();
        }
    }
+0 −4
Original line number Diff line number Diff line
@@ -1262,10 +1262,6 @@ static ivas_error ivas_dec_tc_audio_allocate_fx(
        move16();
    }

#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
    hTcBuffer->tc_stride = n_samp_full;
    move16();
#endif
    nsamp_to_allocate = imult1616( s_max( hTcBuffer->nchan_transport_rend, hTcBuffer->nchan_buffer_full ), n_samp_full );

    IF( Opt_tsm )
+9 −12
Original line number Diff line number Diff line
@@ -1001,9 +1001,6 @@ typedef struct decoder_tc_buffer_structure
    Word32 *tc_buffer_old_fx[MAX_INTERN_CHANNELS]; /* TC audio samples not rendered in the previous frame                      */
    Word32 *tc_buffer_fx;                          /* the buffer itself                                                        */
    Word32 *tc_fx[MAX_INTERN_CHANNELS];            /* pointers into the buffer to the beginning of each tc                     */
#ifdef FIX_2396_CONSTANT_STRIDE_IN_TC_BUFFER
    Word16 tc_stride; /* Stride (offset) between subsequent channel pointers in tc_fx             */
#endif
    Word16 q_tc_fx;                                /* TC channels Q-factor                                                     */
    TC_BUFFER_MODE tc_buffer_mode;                 /* mode of the buffer (no buffering, render buffering, out buffering)       */
    Word16 nchan_transport_rend;                   /* number of TCs provided to the renderer                                   */
+2 −2
Original line number Diff line number Diff line
@@ -3935,7 +3935,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->hTcBuffer->tc_buffer_fx, nTransportChannels, hIvasDec->nSamplesFrame, st_ivas->hTcBuffer->tc_stride );
            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
@@ -3959,7 +3959,7 @@ ivas_error IVAS_DEC_GetSamplesDecoder(

            /* 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, nTransportChannels, nSamplesTcsScaled, st_ivas->hTcBuffer->tc_stride );
            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