diff options
author | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-05-31 20:29:27 +0200 |
---|---|---|
committer | Diego 'Flameeyes' Pettenò <flameeyes@gmail.com> | 2007-05-31 20:29:27 +0200 |
commit | 37d4ab77290e4b906df51a7012576e6aec0fc605 (patch) | |
tree | 22603e7f58b7b98c64439035cfce98e4e70939b5 /src/libfaad/ssr_fb.c | |
parent | 0a2bd906547bf468205defb30c317fca3dac397b (diff) | |
download | xine-lib-37d4ab77290e4b906df51a7012576e6aec0fc605.tar.gz xine-lib-37d4ab77290e4b906df51a7012576e6aec0fc605.tar.bz2 |
Move libfaad in contrib/ and contextually move the plugin in src/libxineadec/.
--HG--
rename : src/libfaad/Makefile.am => contrib/libfaad/Makefile.am
rename : src/libfaad/analysis.h => contrib/libfaad/analysis.h
rename : src/libfaad/bits.c => contrib/libfaad/bits.c
rename : src/libfaad/bits.h => contrib/libfaad/bits.h
rename : src/libfaad/cfft.c => contrib/libfaad/cfft.c
rename : src/libfaad/cfft.h => contrib/libfaad/cfft.h
rename : src/libfaad/cfft_tab.h => contrib/libfaad/cfft_tab.h
rename : src/libfaad/codebook/Makefile.am => contrib/libfaad/codebook/Makefile.am
rename : src/libfaad/codebook/hcb.h => contrib/libfaad/codebook/hcb.h
rename : src/libfaad/codebook/hcb_1.h => contrib/libfaad/codebook/hcb_1.h
rename : src/libfaad/codebook/hcb_10.h => contrib/libfaad/codebook/hcb_10.h
rename : src/libfaad/codebook/hcb_11.h => contrib/libfaad/codebook/hcb_11.h
rename : src/libfaad/codebook/hcb_2.h => contrib/libfaad/codebook/hcb_2.h
rename : src/libfaad/codebook/hcb_3.h => contrib/libfaad/codebook/hcb_3.h
rename : src/libfaad/codebook/hcb_4.h => contrib/libfaad/codebook/hcb_4.h
rename : src/libfaad/codebook/hcb_5.h => contrib/libfaad/codebook/hcb_5.h
rename : src/libfaad/codebook/hcb_6.h => contrib/libfaad/codebook/hcb_6.h
rename : src/libfaad/codebook/hcb_7.h => contrib/libfaad/codebook/hcb_7.h
rename : src/libfaad/codebook/hcb_8.h => contrib/libfaad/codebook/hcb_8.h
rename : src/libfaad/codebook/hcb_9.h => contrib/libfaad/codebook/hcb_9.h
rename : src/libfaad/codebook/hcb_sf.h => contrib/libfaad/codebook/hcb_sf.h
rename : src/libfaad/common.c => contrib/libfaad/common.c
rename : src/libfaad/common.h => contrib/libfaad/common.h
rename : src/libfaad/decoder.c => contrib/libfaad/decoder.c
rename : src/libfaad/decoder.h => contrib/libfaad/decoder.h
rename : src/libfaad/diff_to_faad2_cvs.patch => contrib/libfaad/diff_to_faad2_cvs.patch
rename : src/libfaad/drc.c => contrib/libfaad/drc.c
rename : src/libfaad/drc.h => contrib/libfaad/drc.h
rename : src/libfaad/drm_dec.c => contrib/libfaad/drm_dec.c
rename : src/libfaad/drm_dec.h => contrib/libfaad/drm_dec.h
rename : src/libfaad/error.c => contrib/libfaad/error.c
rename : src/libfaad/error.h => contrib/libfaad/error.h
rename : src/libfaad/faad.h => contrib/libfaad/faad.h
rename : src/libfaad/filtbank.c => contrib/libfaad/filtbank.c
rename : src/libfaad/filtbank.h => contrib/libfaad/filtbank.h
rename : src/libfaad/fixed.h => contrib/libfaad/fixed.h
rename : src/libfaad/hcr.c => contrib/libfaad/hcr.c
rename : src/libfaad/huffman.c => contrib/libfaad/huffman.c
rename : src/libfaad/huffman.h => contrib/libfaad/huffman.h
rename : src/libfaad/ic_predict.c => contrib/libfaad/ic_predict.c
rename : src/libfaad/ic_predict.h => contrib/libfaad/ic_predict.h
rename : src/libfaad/iq_table.h => contrib/libfaad/iq_table.h
rename : src/libfaad/is.c => contrib/libfaad/is.c
rename : src/libfaad/is.h => contrib/libfaad/is.h
rename : src/libfaad/kbd_win.h => contrib/libfaad/kbd_win.h
rename : src/libfaad/lt_predict.c => contrib/libfaad/lt_predict.c
rename : src/libfaad/lt_predict.h => contrib/libfaad/lt_predict.h
rename : src/libfaad/mdct.c => contrib/libfaad/mdct.c
rename : src/libfaad/mdct.h => contrib/libfaad/mdct.h
rename : src/libfaad/mdct_tab.h => contrib/libfaad/mdct_tab.h
rename : src/libfaad/mp4.c => contrib/libfaad/mp4.c
rename : src/libfaad/mp4.h => contrib/libfaad/mp4.h
rename : src/libfaad/ms.c => contrib/libfaad/ms.c
rename : src/libfaad/ms.h => contrib/libfaad/ms.h
rename : src/libfaad/output.c => contrib/libfaad/output.c
rename : src/libfaad/output.h => contrib/libfaad/output.h
rename : src/libfaad/pns.c => contrib/libfaad/pns.c
rename : src/libfaad/pns.h => contrib/libfaad/pns.h
rename : src/libfaad/ps_dec.c => contrib/libfaad/ps_dec.c
rename : src/libfaad/ps_dec.h => contrib/libfaad/ps_dec.h
rename : src/libfaad/ps_syntax.c => contrib/libfaad/ps_syntax.c
rename : src/libfaad/ps_tables.h => contrib/libfaad/ps_tables.h
rename : src/libfaad/pulse.c => contrib/libfaad/pulse.c
rename : src/libfaad/pulse.h => contrib/libfaad/pulse.h
rename : src/libfaad/rvlc.c => contrib/libfaad/rvlc.c
rename : src/libfaad/rvlc.h => contrib/libfaad/rvlc.h
rename : src/libfaad/sbr_dct.c => contrib/libfaad/sbr_dct.c
rename : src/libfaad/sbr_dct.h => contrib/libfaad/sbr_dct.h
rename : src/libfaad/sbr_dec.c => contrib/libfaad/sbr_dec.c
rename : src/libfaad/sbr_dec.h => contrib/libfaad/sbr_dec.h
rename : src/libfaad/sbr_e_nf.c => contrib/libfaad/sbr_e_nf.c
rename : src/libfaad/sbr_e_nf.h => contrib/libfaad/sbr_e_nf.h
rename : src/libfaad/sbr_fbt.c => contrib/libfaad/sbr_fbt.c
rename : src/libfaad/sbr_fbt.h => contrib/libfaad/sbr_fbt.h
rename : src/libfaad/sbr_hfadj.c => contrib/libfaad/sbr_hfadj.c
rename : src/libfaad/sbr_hfadj.h => contrib/libfaad/sbr_hfadj.h
rename : src/libfaad/sbr_hfgen.c => contrib/libfaad/sbr_hfgen.c
rename : src/libfaad/sbr_hfgen.h => contrib/libfaad/sbr_hfgen.h
rename : src/libfaad/sbr_huff.c => contrib/libfaad/sbr_huff.c
rename : src/libfaad/sbr_huff.h => contrib/libfaad/sbr_huff.h
rename : src/libfaad/sbr_noise.h => contrib/libfaad/sbr_noise.h
rename : src/libfaad/sbr_qmf.c => contrib/libfaad/sbr_qmf.c
rename : src/libfaad/sbr_qmf.h => contrib/libfaad/sbr_qmf.h
rename : src/libfaad/sbr_qmf_c.h => contrib/libfaad/sbr_qmf_c.h
rename : src/libfaad/sbr_syntax.c => contrib/libfaad/sbr_syntax.c
rename : src/libfaad/sbr_syntax.h => contrib/libfaad/sbr_syntax.h
rename : src/libfaad/sbr_tf_grid.c => contrib/libfaad/sbr_tf_grid.c
rename : src/libfaad/sbr_tf_grid.h => contrib/libfaad/sbr_tf_grid.h
rename : src/libfaad/sine_win.h => contrib/libfaad/sine_win.h
rename : src/libfaad/specrec.c => contrib/libfaad/specrec.c
rename : src/libfaad/specrec.h => contrib/libfaad/specrec.h
rename : src/libfaad/ssr.c => contrib/libfaad/ssr.c
rename : src/libfaad/ssr.h => contrib/libfaad/ssr.h
rename : src/libfaad/ssr_fb.c => contrib/libfaad/ssr_fb.c
rename : src/libfaad/ssr_fb.h => contrib/libfaad/ssr_fb.h
rename : src/libfaad/ssr_ipqf.c => contrib/libfaad/ssr_ipqf.c
rename : src/libfaad/ssr_ipqf.h => contrib/libfaad/ssr_ipqf.h
rename : src/libfaad/ssr_win.h => contrib/libfaad/ssr_win.h
rename : src/libfaad/structs.h => contrib/libfaad/structs.h
rename : src/libfaad/syntax.c => contrib/libfaad/syntax.c
rename : src/libfaad/syntax.h => contrib/libfaad/syntax.h
rename : src/libfaad/tns.c => contrib/libfaad/tns.c
rename : src/libfaad/tns.h => contrib/libfaad/tns.h
rename : src/libfaad/xine_faad_decoder.c => src/libxineadec/xine_faad_decoder.c
Diffstat (limited to 'src/libfaad/ssr_fb.c')
-rw-r--r-- | src/libfaad/ssr_fb.c | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/src/libfaad/ssr_fb.c b/src/libfaad/ssr_fb.c deleted file mode 100644 index fb62c90c6..000000000 --- a/src/libfaad/ssr_fb.c +++ /dev/null @@ -1,182 +0,0 @@ -/* -** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding -** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com -** -** This program 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 of the License, or -** (at your option) any later version. -** -** This program 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 this program; if not, write to the Free Software -** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -** -** Any non-GPL usage of this software or parts of this software is strictly -** forbidden. -** -** Commercial non-GPL licensing of this software is possible. -** For more info contact Ahead Software through Mpeg4AAClicense@nero.com. -** -** $Id: ssr_fb.c,v 1.6 2005/10/29 23:57:07 tmmm Exp $ -**/ - -#include "common.h" -#include "structs.h" - -#ifdef SSR_DEC - -#include <string.h> -#include <stdlib.h> -#include "syntax.h" -#include "filtbank.h" -#include "mdct.h" -#include "ssr_fb.h" -#include "ssr_win.h" - -fb_info *ssr_filter_bank_init(uint16_t frame_len) -{ - uint16_t nshort = frame_len/8; - - fb_info *fb = (fb_info*)faad_malloc(sizeof(fb_info)); - memset(fb, 0, sizeof(fb_info)); - - /* normal */ - fb->mdct256 = faad_mdct_init(2*nshort); - fb->mdct2048 = faad_mdct_init(2*frame_len); - - fb->long_window[0] = sine_long_256; - fb->short_window[0] = sine_short_32; - fb->long_window[1] = kbd_long_256; - fb->short_window[1] = kbd_short_32; - - return fb; -} - -void ssr_filter_bank_end(fb_info *fb) -{ - faad_mdct_end(fb->mdct256); - faad_mdct_end(fb->mdct2048); - - if (fb) faad_free(fb); -} - -static INLINE void imdct_ssr(fb_info *fb, real_t *in_data, - real_t *out_data, uint16_t len) -{ - mdct_info *mdct; - - switch (len) - { - case 512: - mdct = fb->mdct2048; - break; - case 64: - mdct = fb->mdct256; - break; - } - - faad_imdct(mdct, in_data, out_data); -} - -/* NON-overlapping inverse filterbank for use with SSR */ -void ssr_ifilter_bank(fb_info *fb, uint8_t window_sequence, uint8_t window_shape, - uint8_t window_shape_prev, real_t *freq_in, - real_t *time_out, uint16_t frame_len) -{ - int16_t i; - real_t *transf_buf; - - real_t *window_long; - real_t *window_long_prev; - real_t *window_short; - real_t *window_short_prev; - - uint16_t nlong = frame_len; - uint16_t nshort = frame_len/8; - uint16_t trans = nshort/2; - - uint16_t nflat_ls = (nlong-nshort)/2; - - transf_buf = (real_t*)faad_malloc(2*nlong*sizeof(real_t)); - - window_long = fb->long_window[window_shape]; - window_long_prev = fb->long_window[window_shape_prev]; - window_short = fb->short_window[window_shape]; - window_short_prev = fb->short_window[window_shape_prev]; - - switch (window_sequence) - { - case ONLY_LONG_SEQUENCE: - imdct_ssr(fb, freq_in, transf_buf, 2*nlong); - for (i = nlong-1; i >= 0; i--) - { - time_out[i] = MUL_R_C(transf_buf[i],window_long_prev[i]); - time_out[nlong+i] = MUL_R_C(transf_buf[nlong+i],window_long[nlong-1-i]); - } - break; - - case LONG_START_SEQUENCE: - imdct_ssr(fb, freq_in, transf_buf, 2*nlong); - for (i = 0; i < nlong; i++) - time_out[i] = MUL_R_C(transf_buf[i],window_long_prev[i]); - for (i = 0; i < nflat_ls; i++) - time_out[nlong+i] = transf_buf[nlong+i]; - for (i = 0; i < nshort; i++) - time_out[nlong+nflat_ls+i] = MUL_R_C(transf_buf[nlong+nflat_ls+i],window_short[nshort-i-1]); - for (i = 0; i < nflat_ls; i++) - time_out[nlong+nflat_ls+nshort+i] = 0; - break; - - case EIGHT_SHORT_SEQUENCE: - imdct_ssr(fb, freq_in+0*nshort, transf_buf+2*nshort*0, 2*nshort); - imdct_ssr(fb, freq_in+1*nshort, transf_buf+2*nshort*1, 2*nshort); - imdct_ssr(fb, freq_in+2*nshort, transf_buf+2*nshort*2, 2*nshort); - imdct_ssr(fb, freq_in+3*nshort, transf_buf+2*nshort*3, 2*nshort); - imdct_ssr(fb, freq_in+4*nshort, transf_buf+2*nshort*4, 2*nshort); - imdct_ssr(fb, freq_in+5*nshort, transf_buf+2*nshort*5, 2*nshort); - imdct_ssr(fb, freq_in+6*nshort, transf_buf+2*nshort*6, 2*nshort); - imdct_ssr(fb, freq_in+7*nshort, transf_buf+2*nshort*7, 2*nshort); - for(i = nshort-1; i >= 0; i--) - { - time_out[i+0*nshort] = MUL_R_C(transf_buf[nshort*0+i],window_short_prev[i]); - time_out[i+1*nshort] = MUL_R_C(transf_buf[nshort*1+i],window_short[i]); - time_out[i+2*nshort] = MUL_R_C(transf_buf[nshort*2+i],window_short_prev[i]); - time_out[i+3*nshort] = MUL_R_C(transf_buf[nshort*3+i],window_short[i]); - time_out[i+4*nshort] = MUL_R_C(transf_buf[nshort*4+i],window_short_prev[i]); - time_out[i+5*nshort] = MUL_R_C(transf_buf[nshort*5+i],window_short[i]); - time_out[i+6*nshort] = MUL_R_C(transf_buf[nshort*6+i],window_short_prev[i]); - time_out[i+7*nshort] = MUL_R_C(transf_buf[nshort*7+i],window_short[i]); - time_out[i+8*nshort] = MUL_R_C(transf_buf[nshort*8+i],window_short_prev[i]); - time_out[i+9*nshort] = MUL_R_C(transf_buf[nshort*9+i],window_short[i]); - time_out[i+10*nshort] = MUL_R_C(transf_buf[nshort*10+i],window_short_prev[i]); - time_out[i+11*nshort] = MUL_R_C(transf_buf[nshort*11+i],window_short[i]); - time_out[i+12*nshort] = MUL_R_C(transf_buf[nshort*12+i],window_short_prev[i]); - time_out[i+13*nshort] = MUL_R_C(transf_buf[nshort*13+i],window_short[i]); - time_out[i+14*nshort] = MUL_R_C(transf_buf[nshort*14+i],window_short_prev[i]); - time_out[i+15*nshort] = MUL_R_C(transf_buf[nshort*15+i],window_short[i]); - } - break; - - case LONG_STOP_SEQUENCE: - imdct_ssr(fb, freq_in, transf_buf, 2*nlong); - for (i = 0; i < nflat_ls; i++) - time_out[i] = 0; - for (i = 0; i < nshort; i++) - time_out[nflat_ls+i] = MUL_R_C(transf_buf[nflat_ls+i],window_short_prev[i]); - for (i = 0; i < nflat_ls; i++) - time_out[nflat_ls+nshort+i] = transf_buf[nflat_ls+nshort+i]; - for (i = 0; i < nlong; i++) - time_out[nlong+i] = MUL_R_C(transf_buf[nlong+i],window_long[nlong-1-i]); - break; - } - - faad_free(transf_buf); -} - - -#endif |