diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-11-04 02:40:09 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2003-11-04 02:40:09 +0000 |
commit | f8c39a08f6ff651221ff896f8a174abf635f3a0a (patch) | |
tree | ac950750c9c1b65bb563df9c6506858c7f8f30c1 /codecs/mp3/src/isbt.c | |
parent | ad46ab972ccf439d1dd3a533335b54089c53e431 (diff) |
Remove really broke MP3 stuff in favor of G.726 in the near future
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1689 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'codecs/mp3/src/isbt.c')
-rwxr-xr-x | codecs/mp3/src/isbt.c | 457 |
1 files changed, 0 insertions, 457 deletions
diff --git a/codecs/mp3/src/isbt.c b/codecs/mp3/src/isbt.c deleted file mode 100755 index 7bd456653..000000000 --- a/codecs/mp3/src/isbt.c +++ /dev/null @@ -1,457 +0,0 @@ -/*____________________________________________________________________________ - - FreeAmp - The Free MP3 Player - - MP3 Decoder originally Copyright (C) 1995-1997 Xing Technology - Corp. http://www.xingtech.com - - Portions Copyright (C) 1998-1999 EMusic.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., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id$ -____________________________________________________________________________*/ - -/**** isbt.c *************************************************** - -MPEG audio decoder, dct and window -portable C integer version of csbt.c - -mods 11/15/95 for Layer I - -mods 1/7/97 warnings - -******************************************************************/ - -#include <stdlib.h> -#include <stdio.h> -#include <float.h> -#include <math.h> -#include "itype.h" - - -#ifdef _MSC_VER -#pragma warning(disable: 4244) -#pragma warning(disable: 4056) -#endif - - - -/* asm is quick only, c code does not need separate window for right */ -/* full is opposite of quick */ -#ifdef FULL_INTEGER -#define i_window_dual_right i_window_dual -#define i_window16_dual_right i_window16_dual -#define i_window8_dual_right i_window8_dual -#endif - - -void i_dct32(SAMPLEINT * sample, WININT * vbuf); -void i_dct32_dual(SAMPLEINT * sample, WININT * vbuf); -void i_dct32_dual_mono(SAMPLEINT * sample, WININT * vbuf); - -void i_dct16(SAMPLEINT * sample, WININT * vbuf); -void i_dct16_dual(SAMPLEINT * sample, WININT * vbuf); -void i_dct16_dual_mono(SAMPLEINT * sample, WININT * vbuf); - -void i_dct8(SAMPLEINT * sample, WININT * vbuf); -void i_dct8_dual(SAMPLEINT * sample, WININT * vbuf); -void i_dct8_dual_mono(SAMPLEINT * sample, WININT * vbuf); - - -void i_window(WININT * vbuf, int vb_ptr, short *pcm); -void i_window_dual(WININT * vbuf, int vb_ptr, short *pcm); -void i_window_dual_right(WININT * vbuf, int vb_ptr, short *pcm); - -void i_window16(WININT * vbuf, int vb_ptr, short *pcm); -void i_window16_dual(WININT * vbuf, int vb_ptr, short *pcm); -void i_window16_dual_right(WININT * vbuf, int vb_ptr, short *pcm); - -void i_window8(WININT * vbuf, int vb_ptr, short *pcm); -void i_window8_dual(WININT * vbuf, int vb_ptr, short *pcm); -void i_window8_dual_right(WININT * vbuf, int vb_ptr, short *pcm); - -/*--------------------------------------------------------------------*/ -/*-- floating point window coefs ---*/ -/*-- for integer-quick window, table used to generate integer coefs --*/ -static float wincoef[264] = -{ -#include "tableawd.h" -}; - -/* circular window buffers */ -/* extern windows because of asm */ -static signed int vb_ptr; - -// static WININT vbuf[512]; -//static WININT vbuf2[512]; -extern WININT vbuf[512]; -extern WININT vbuf2[512]; - -DCTCOEF *i_dct_coef_addr(void); - -/*======================================================================*/ -static void gencoef(void) /* gen coef for N=32 */ -{ - int p, n, i, k; - double t, pi; - DCTCOEF *coef32; - - coef32 = i_dct_coef_addr(); - - - pi = 4.0 * atan(1.0); - n = 16; - k = 0; - for (i = 0; i < 5; i++, n = n / 2) - { - for (p = 0; p < n; p++, k++) - { - t = (pi / (4 * n)) * (2 * p + 1); - coef32[k] = (1 << DCTBITS) * (0.50 / cos(t)) + 0.5; - } - } -} -/*------------------------------------------------------------*/ -WINCOEF *i_wincoef_addr(void); -static void genwincoef_q(void) /* gen int window coefs from floating table */ -{ - int i, j, k, m; - float x; - WINCOEF *iwincoef; - - iwincoef = i_wincoef_addr(); - - -/*--- coefs generated inline for quick window ---*/ -/*-- quick uses only 116 coefs --*/ - - k = 0; - m = 0; - for (i = 0; i < 16; i++) - { - k += 5; - for (j = 0; j < 7; j++) - { - x = (1 << WINBITS) * wincoef[k++]; - if (x > 0.0) - x += 0.5; - else - x -= 0.5; - iwincoef[m++] = x; - } - k += 4; - } - k++; - for (j = 0; j < 4; j++) - { - x = (1 << WINBITS) * wincoef[k++]; - if (x > 0.0) - x += 0.5; - else - x -= 0.5; - iwincoef[m++] = x; - } -} -/*------------------------------------------------------------*/ -static void genwincoef(void) /* gen int window coefs from floating table */ -{ - int i; - float x; - WINCOEF *iwincoef; - - iwincoef = i_wincoef_addr(); - - for (i = 0; i < 264; i++) - { - x = (1 << WINBITS) * wincoef[i]; - if (x > 0.0) - x += 0.5; - else - x -= 0.5; - iwincoef[i] = x; - } -} -/*------------------------------------------------------------*/ -void i_sbt_init(void) -{ - int i; - static int first_pass = 1; - -#ifdef FULL_INTEGER - static int full_integer = 1; - -#else - static int full_integer = 0; - -#endif - - if (first_pass) - { - gencoef(); - if (full_integer) - genwincoef(); - else - genwincoef_q(); - first_pass = 0; - } - -/* clear window vbuf */ - for (i = 0; i < 512; i++) - vbuf[i] = vbuf2[i] = 0; - vb_ptr = 0; - -} -/*==============================================================*/ -/*==============================================================*/ -/*==============================================================*/ -void i_sbt_mono(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct32(sample, vbuf + vb_ptr); - i_window(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 32) & 511; - pcm += 32; - } - -} -/*------------------------------------------------------------*/ -void i_sbt_dual(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct32_dual(sample, vbuf + vb_ptr); - i_dct32_dual(sample + 1, vbuf2 + vb_ptr); - i_window_dual(vbuf, vb_ptr, pcm); - i_window_dual_right(vbuf2, vb_ptr, pcm + 1); - sample += 64; - vb_ptr = (vb_ptr - 32) & 511; - pcm += 64; - } -} -/*------------------------------------------------------------*/ -/* convert dual to mono */ -void i_sbt_dual_mono(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct32_dual_mono(sample, vbuf + vb_ptr); - i_window(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 32) & 511; - pcm += 32; - } -} -/*------------------------------------------------------------*/ -/* convert dual to left */ -void i_sbt_dual_left(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct32_dual(sample, vbuf + vb_ptr); - i_window(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 32) & 511; - pcm += 32; - } -} -/*------------------------------------------------------------*/ -/* convert dual to right */ -void i_sbt_dual_right(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - sample++; /* point to right chan */ - for (i = 0; i < n; i++) - { - i_dct32_dual(sample, vbuf + vb_ptr); - i_window(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 32) & 511; - pcm += 32; - } -} -/*------------------------------------------------------------*/ -/*---------------- 16 pt sbt's -------------------------------*/ -/*------------------------------------------------------------*/ -void i_sbt16_mono(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct16(sample, vbuf + vb_ptr); - i_window16(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 16) & 255; - pcm += 16; - } - -} -/*------------------------------------------------------------*/ -void i_sbt16_dual(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct16_dual(sample, vbuf + vb_ptr); - i_dct16_dual(sample + 1, vbuf2 + vb_ptr); - i_window16_dual(vbuf, vb_ptr, pcm); - i_window16_dual_right(vbuf2, vb_ptr, pcm + 1); - sample += 64; - vb_ptr = (vb_ptr - 16) & 255; - pcm += 32; - } - -} -/*------------------------------------------------------------*/ -void i_sbt16_dual_mono(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct16_dual_mono(sample, vbuf + vb_ptr); - i_window16(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 16) & 255; - pcm += 16; - } -} -/*------------------------------------------------------------*/ -void i_sbt16_dual_left(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct16_dual(sample, vbuf + vb_ptr); - i_window16(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 16) & 255; - pcm += 16; - } -} -/*------------------------------------------------------------*/ -void i_sbt16_dual_right(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - sample++; - for (i = 0; i < n; i++) - { - i_dct16_dual(sample, vbuf + vb_ptr); - i_window16(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 16) & 255; - pcm += 16; - } -} -/*------------------------------------------------------------*/ -/*---------------- 8 pt sbt's -------------------------------*/ -/*------------------------------------------------------------*/ -void i_sbt8_mono(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct8(sample, vbuf + vb_ptr); - i_window8(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 8) & 127; - pcm += 8; - } - -} -/*------------------------------------------------------------*/ -void i_sbt8_dual(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct8_dual(sample, vbuf + vb_ptr); - i_dct8_dual(sample + 1, vbuf2 + vb_ptr); - i_window8_dual(vbuf, vb_ptr, pcm); - i_window8_dual_right(vbuf2, vb_ptr, pcm + 1); - sample += 64; - vb_ptr = (vb_ptr - 8) & 127; - pcm += 16; - } -} -/*------------------------------------------------------------*/ -void i_sbt8_dual_mono(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct8_dual_mono(sample, vbuf + vb_ptr); - i_window8(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 8) & 127; - pcm += 8; - } -} -/*------------------------------------------------------------*/ -void i_sbt8_dual_left(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - for (i = 0; i < n; i++) - { - i_dct8_dual(sample, vbuf + vb_ptr); - i_window8(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 8) & 127; - pcm += 8; - } -} -/*------------------------------------------------------------*/ -void i_sbt8_dual_right(SAMPLEINT * sample, short *pcm, int n) -{ - int i; - - sample++; - for (i = 0; i < n; i++) - { - i_dct8_dual(sample, vbuf + vb_ptr); - i_window8(vbuf, vb_ptr, pcm); - sample += 64; - vb_ptr = (vb_ptr - 8) & 127; - pcm += 8; - } -} -/*------------------------------------------------------------*/ -/*--- 8 bit output ----------------*/ -#include "isbtb.c" -/*----------------------------------*/ - -#ifdef _MSC_VER -#pragma warning(default: 4244) -#pragma warning(default: 4056) -#endif |