summaryrefslogtreecommitdiffstats
path: root/tremor/codec_internal.h
diff options
context:
space:
mode:
authorhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-12-30 12:11:32 +0000
committerhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-12-30 12:11:32 +0000
commitfc91fed21ea71c50273c7c09f88e8d634c1e444e (patch)
treea4b1344270267c9d16eef135488049bd4e9a96f9 /tremor/codec_internal.h
parentdbbe18f4500c2707f2e9c0967c7b79312edecd3d (diff)
downloadmpv-fc91fed21ea71c50273c7c09f88e8d634c1e444e.tar.bz2
mpv-fc91fed21ea71c50273c7c09f88e8d634c1e444e.tar.xz
internal Tremor decoder for Ogg/Vorbis
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14281 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'tremor/codec_internal.h')
-rw-r--r--tremor/codec_internal.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/tremor/codec_internal.h b/tremor/codec_internal.h
new file mode 100644
index 0000000000..5580164dba
--- /dev/null
+++ b/tremor/codec_internal.h
@@ -0,0 +1,87 @@
+/********************************************************************
+ * *
+ * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
+ * *
+ * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
+ * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
+ * ALL REDISTRIBUTION RIGHTS RESERVED. *
+ * *
+ ********************************************************************
+
+ function: libvorbis codec headers
+
+ ********************************************************************/
+
+#ifndef _V_CODECI_H_
+#define _V_CODECI_H_
+
+#include "codebook.h"
+
+typedef void vorbis_look_mapping;
+typedef void vorbis_look_floor;
+typedef void vorbis_look_residue;
+typedef void vorbis_look_transform;
+
+/* mode ************************************************************/
+typedef struct {
+ int blockflag;
+ int windowtype;
+ int transformtype;
+ int mapping;
+} vorbis_info_mode;
+
+typedef void vorbis_info_floor;
+typedef void vorbis_info_residue;
+typedef void vorbis_info_mapping;
+
+typedef struct backend_lookup_state {
+ /* local lookup storage */
+ ogg_int32_t *window[2];
+
+ /* backend lookups are tied to the mode, not the backend or naked mapping */
+ int modebits;
+ vorbis_look_mapping **mode;
+
+} backend_lookup_state;
+
+/* codec_setup_info contains all the setup information specific to the
+ specific compression/decompression mode in progress (eg,
+ psychoacoustic settings, channel setup, options, codebook
+ etc).
+*********************************************************************/
+
+typedef struct codec_setup_info {
+
+ /* Vorbis supports only short and long blocks, but allows the
+ encoder to choose the sizes */
+
+ long blocksizes[2];
+
+ /* modes are the primary means of supporting on-the-fly different
+ blocksizes, different channel mappings (LR or M/A),
+ different residue backends, etc. Each mode consists of a
+ blocksize flag and a mapping (along with the mapping setup */
+
+ int modes;
+ int maps;
+ int times;
+ int floors;
+ int residues;
+ int books;
+
+ vorbis_info_mode *mode_param[64];
+ int map_type[64];
+ vorbis_info_mapping *map_param[64];
+ int time_type[64];
+ int floor_type[64];
+ vorbis_info_floor *floor_param[64];
+ int residue_type[64];
+ vorbis_info_residue *residue_param[64];
+ static_codebook *book_param[256];
+ codebook *fullbooks;
+
+ int passlimit[32]; /* iteration limit per couple/quant pass */
+ int coupling_passes;
+} codec_setup_info;
+
+#endif