summaryrefslogtreecommitdiff
path: root/core/multimedia/opieplayer/libmpeg3/audio/mpeg3audio.h
Side-by-side diff
Diffstat (limited to 'core/multimedia/opieplayer/libmpeg3/audio/mpeg3audio.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/multimedia/opieplayer/libmpeg3/audio/mpeg3audio.h144
1 files changed, 144 insertions, 0 deletions
diff --git a/core/multimedia/opieplayer/libmpeg3/audio/mpeg3audio.h b/core/multimedia/opieplayer/libmpeg3/audio/mpeg3audio.h
new file mode 100644
index 0000000..2117be7
--- a/dev/null
+++ b/core/multimedia/opieplayer/libmpeg3/audio/mpeg3audio.h
@@ -0,0 +1,144 @@
+/**********************************************************************
+** Copyright (C) 2000 Trolltech AS. All rights reserved.
+**
+** This file is part of Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+#ifndef MPEG3AUDIO_H
+#define MPEG3AUDIO_H
+
+#include "ac3.h"
+#include "../bitstream.h"
+typedef struct mpeg3_atrack_rec mpeg3_atrack_t;
+
+#define MAXFRAMESIZE 1792
+#define HDRCMPMASK 0xfffffd00
+#define SBLIMIT 32
+#define SSLIMIT 18
+#define SCALE_BLOCK 12
+#define MPEG3AUDIO_PADDING 1024
+
+/* Values for mode */
+#define MPG_MD_STEREO 0
+#define MPG_MD_JOINT_STEREO 1
+#define MPG_MD_DUAL_CHANNEL 2
+#define MPG_MD_MONO 3
+
+/* IMDCT variables */
+typedef struct
+{
+ mpeg3_real_t real;
+ mpeg3_real_t imag;
+} mpeg3_complex_t;
+
+#define AC3_N 512
+
+struct al_table
+{
+ short bits;
+ short d;
+};
+
+typedef struct
+{
+ struct mpeg3_rec* file;
+ mpeg3_atrack_t* track;
+ mpeg3_bits_t *astream;
+
+/* In order of importance */
+ int format; /* format of audio */
+ int layer; /* layer if mpeg */
+ int channels;
+ long outscale;
+ long framenum;
+ long prev_framesize;
+ long framesize; /* For mp3 current framesize without header. For AC3 current framesize with header. */
+ int avg_framesize; /* Includes the 4 byte header */
+ mpeg3_real_t *pcm_sample; /* Interlaced output from synthesizer in floats */
+ int pcm_point; /* Float offset in pcm_sample to write to */
+ long pcm_position; /* Sample start of pcm_samples in file */
+ long pcm_size; /* Number of pcm samples in the buffer */
+ long pcm_allocated; /* Allocated number of samples in pcm_samples */
+ int sample_seek;
+ double percentage_seek;
+ unsigned long oldhead;
+ unsigned long newhead;
+ unsigned long firsthead;
+ int bsnum;
+ int lsf;
+ int mpeg35;
+ int sampling_frequency_code;
+ int bitrate_index;
+ int bitrate;
+ int samples_per_frame;
+ int padding;
+ int extension;
+ int mode;
+ int mode_ext;
+ int copyright;
+ int original;
+ int emphasis;
+ int error_protection;
+
+/* Back step buffers for mp3 */
+ unsigned char bsspace[2][MAXFRAMESIZE + 512]; /* MAXFRAMESIZE */
+ unsigned char *bsbuf, *bsbufold;
+ long ssize;
+ int init;
+ int single;
+ struct al_table *alloc;
+ int II_sblimit;
+ int jsbound;
+ int bo; /* Static variable in synthesizer */
+
+/* MP3 Static arrays here */
+ mpeg3_real_t synth_stereo_buffs[2][2][0x110];
+ mpeg3_real_t synth_mono_buff[64];
+ unsigned int layer2_scfsi_buf[64];
+
+ mpeg3_real_t mp3_block[2][2][SBLIMIT * SSLIMIT];
+ int mp3_blc[2];
+
+/* AC3 specific stuff. AC3 also shares objects with MPEG */
+ unsigned int ac3_framesize_code;
+ mpeg3_ac3bsi_t ac3_bsi;
+ mpeg3_ac3audblk_t ac3_audblk;
+ mpeg3_ac3_bitallocation_t ac3_bit_allocation;
+ mpeg3_ac3_mantissa_t ac3_mantissa;
+ mpeg3_complex_t ac3_imdct_buf[AC3_N / 4];
+
+/* Delay buffer for DCT interleaving */
+ mpeg3_real_t ac3_delay[6][AC3_N / 2];
+/* Twiddle factor LUT */
+ mpeg3_complex_t *ac3_w[7];
+#if !defined(USE_FIXED_POINT) || defined(PRINT_FIXED_POINT_TABLES)
+ /* Just for allocated memory */
+ mpeg3_complex_t ac3_w_1[1];
+ mpeg3_complex_t ac3_w_2[2];
+ mpeg3_complex_t ac3_w_4[4];
+ mpeg3_complex_t ac3_w_8[8];
+ mpeg3_complex_t ac3_w_16[16];
+ mpeg3_complex_t ac3_w_32[32];
+ mpeg3_complex_t ac3_w_64[64];
+#endif
+ int ac3_lfsr_state;
+ unsigned char ac3_buffer[MAX_AC3_FRAMESIZE];
+ mpeg3ac3_stream_samples_t ac3_samples;
+} mpeg3audio_t;
+
+
+
+#endif