summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/mpegaudio.h
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-10-23 02:11:16 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2005-10-23 02:11:16 +0000
commit712a40b59a0f451a558d88db1f9f124463016f97 (patch)
tree82bc80e9b7a5ba09c01acf205c8ac1e20c44914f /src/libffmpeg/libavcodec/mpegaudio.h
parent640063a719556f8569fe848528b39660c6fc31a6 (diff)
downloadxine-lib-712a40b59a0f451a558d88db1f9f124463016f97.tar.gz
xine-lib-712a40b59a0f451a558d88db1f9f124463016f97.tar.bz2
big ffmpeg update
it is likely to break, so please keep both pieces CVS patchset: 7767 CVS date: 2005/10/23 02:11:16
Diffstat (limited to 'src/libffmpeg/libavcodec/mpegaudio.h')
-rw-r--r--src/libffmpeg/libavcodec/mpegaudio.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/libffmpeg/libavcodec/mpegaudio.h b/src/libffmpeg/libavcodec/mpegaudio.h
index 072c41bda..2bcf38eac 100644
--- a/src/libffmpeg/libavcodec/mpegaudio.h
+++ b/src/libffmpeg/libavcodec/mpegaudio.h
@@ -22,8 +22,42 @@
#define SAME_HEADER_MASK \
(0xffe00000 | (3 << 17) | (0xf << 12) | (3 << 10) | (3 << 19))
+/* define USE_HIGHPRECISION to have a bit exact (but slower) mpeg
+ audio decoder */
+
+#ifdef USE_HIGHPRECISION
+#define FRAC_BITS 23 /* fractional bits for sb_samples and dct */
+#define WFRAC_BITS 16 /* fractional bits for window */
+#else
+#define FRAC_BITS 15 /* fractional bits for sb_samples and dct */
+#define WFRAC_BITS 14 /* fractional bits for window */
+#endif
+
+#if defined(USE_HIGHPRECISION) && defined(CONFIG_AUDIO_NONSHORT)
+typedef int32_t OUT_INT;
+#define OUT_MAX INT32_MAX
+#define OUT_MIN INT32_MIN
+#define OUT_SHIFT (WFRAC_BITS + FRAC_BITS - 31)
+#else
+typedef int16_t OUT_INT;
+#define OUT_MAX INT16_MAX
+#define OUT_MIN INT16_MIN
+#define OUT_SHIFT (WFRAC_BITS + FRAC_BITS - 15)
+#endif
+
+#if FRAC_BITS <= 15
+typedef int16_t MPA_INT;
+#else
+typedef int32_t MPA_INT;
+#endif
+
int l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
int mpa_decode_header(AVCodecContext *avctx, uint32_t head);
+void ff_mpa_synth_init(MPA_INT *window);
+void ff_mpa_synth_filter(MPA_INT *synth_buf_ptr, int *synth_buf_offset,
+ MPA_INT *window, int *dither_state,
+ OUT_INT *samples, int incr,
+ int32_t sb_samples[SBLIMIT]);
extern const uint16_t mpa_bitrate_tab[2][3][15];
extern const uint16_t mpa_freq_tab[3];