diff options
Diffstat (limited to 'src/libac3/imdct_mlib.c')
-rw-r--r-- | src/libac3/imdct_mlib.c | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/src/libac3/imdct_mlib.c b/src/libac3/imdct_mlib.c deleted file mode 100644 index 1ba783359..000000000 --- a/src/libac3/imdct_mlib.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * imdct_mlib.c - * Copyright (C) 2001 Håkan Hjort <d95hjort@dtek.chalmers.se> - * - * This file is part of ac3dec, a free Dolby AC-3 stream decoder. - * - * ac3dec is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * ac3dec is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GNU Make; see the file COPYING. If not, write to - * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#include "config.h" - -#ifdef LIBAC3_MLIB - -#include <inttypes.h> -#include <mlib_types.h> -#include <mlib_status.h> -#include <mlib_signal.h> - -#include "ac3.h" -#include "ac3_internal.h" - -extern sample_t imdct_window[]; - -void -imdct_do_512_mlib(sample_t data[], sample_t delay[]) -{ - sample_t *buf_real; - sample_t *buf_imag; - sample_t *data_ptr; - sample_t *delay_ptr; - sample_t *window_ptr; - sample_t tmp[256] __attribute__ ((__aligned__ (16))); - int i; - - memcpy(tmp, data, 256 * sizeof(sample_t)); - if(mlib_SignalIMDCT_F32(tmp) != MLIB_SUCCESS) { - fprintf(stderr, "mediaLib failure\n"); - exit(-1); - } - - buf_real = tmp; - buf_imag = tmp + 128; - data_ptr = data; - delay_ptr = delay; - window_ptr = imdct_window; - - /* Window and convert to real valued signal */ - for(i=0; i< 64; i++) - { - *data_ptr++ = 2.0f * (-buf_imag[64+i] * *window_ptr++ + *delay_ptr++); - *data_ptr++ = 2.0f * ( buf_real[64-i-1] * *window_ptr++ + *delay_ptr++); - } - - for(i=0; i< 64; i++) - { - *data_ptr++ = 2.0f * (-buf_real[i] * *window_ptr++ + *delay_ptr++); - *data_ptr++ = 2.0f * ( buf_imag[128-i-1] * *window_ptr++ + *delay_ptr++); - } - - /* The trailing edge of the window goes into the delay line */ - delay_ptr = delay; - - for(i=0; i< 64; i++) - { - *delay_ptr++ = -buf_real[64+i] * *--window_ptr; - *delay_ptr++ = buf_imag[64-i-1] * *--window_ptr; - } - - for(i=0; i<64; i++) - { - *delay_ptr++ = buf_imag[i] * *--window_ptr; - *delay_ptr++ = -buf_real[128-i-1] * *--window_ptr; - } -} - -void -imdct_do_256_mlib(sample_t data[], sample_t delay[]) -{ - sample_t *buf1_real, *buf1_imag; - sample_t *buf2_real, *buf2_imag; - sample_t *data_ptr; - sample_t *delay_ptr; - sample_t *window_ptr; - sample_t tmp[256] __attribute__ ((__aligned__ (16))); - int i; - - memcpy(tmp, data, 256 * sizeof(sample_t)); - if(mlib_SignalIMDCT_F32(tmp) != MLIB_SUCCESS) { - fprintf(stderr, "mediaLib failure\n"); - exit(-1); - } - - buf1_real = tmp; - buf1_imag = tmp + 64; - buf2_real = tmp + 128; - buf2_imag = tmp + 128 + 64; - data_ptr = data; - delay_ptr = delay; - window_ptr = imdct_window; - - /* Window and convert to real valued signal */ - for(i=0; i< 64; i++) - { - *data_ptr++ = 2.0f * (-buf1_imag[i] * *window_ptr++ + *delay_ptr++); - *data_ptr++ = 2.0f * ( buf1_real[64-i-1] * *window_ptr++ + *delay_ptr++); - } - - for(i=0; i< 64; i++) - { - *data_ptr++ = 2.0f * (-buf1_real[i] * *window_ptr++ + *delay_ptr++); - *data_ptr++ = 2.0f * ( buf1_imag[64-i-1] * *window_ptr++ + *delay_ptr++); - } - - delay_ptr = delay; - - for(i=0; i< 64; i++) - { - *delay_ptr++ = -buf2_real[i] * *--window_ptr; - *delay_ptr++ = buf2_imag[64-i-1] * *--window_ptr; - } - - for(i=0; i< 64; i++) - { - *delay_ptr++ = buf2_imag[i] * *--window_ptr; - *delay_ptr++ = -buf2_real[64-i-1] * *--window_ptr; - } -} - -#endif |