summaryrefslogtreecommitdiff
path: root/libavcodec/libac3/ac3_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/libac3/ac3_internal.h')
-rw-r--r--libavcodec/libac3/ac3_internal.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/libavcodec/libac3/ac3_internal.h b/libavcodec/libac3/ac3_internal.h
new file mode 100644
index 0000000000..1dce513f4c
--- /dev/null
+++ b/libavcodec/libac3/ac3_internal.h
@@ -0,0 +1,51 @@
+/*
+ * ac3_internal.h
+ *
+ * Copyright (C) Aaron Holtzman - May 1999
+ *
+ * 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.
+ *
+ */
+
+#define LEVEL_PLUS3DB 1.4142135623730951
+#define LEVEL_3DB 0.7071067811865476
+#define LEVEL_45DB 0.5946035575013605
+#define LEVEL_6DB 0.5
+
+/* Exponent strategy constants */
+#define EXP_REUSE (0)
+#define EXP_D15 (1)
+#define EXP_D25 (2)
+#define EXP_D45 (3)
+
+/* Delta bit allocation constants */
+#define DELTA_BIT_REUSE (0)
+#define DELTA_BIT_NEW (1)
+#define DELTA_BIT_NONE (2)
+#define DELTA_BIT_RESERVED (3)
+
+void bit_allocate (ac3_state_t * state, ac3_ba_t * ba, int bndstart,
+ int start, int end, int fastleak, int slowleak,
+ uint8_t * exp, int8_t * bap);
+
+int downmix_init (int input, int flags, float * level, float clev, float slev);
+void downmix (float * samples, int acmod, int output, float level, float bias,
+ float clev, float slev);
+
+void imdct_init (void);
+extern void (* imdct_256) (float data[], float delay[]);
+extern void (* imdct_512) (float data[], float delay[]);