summaryrefslogtreecommitdiff
path: root/lib/codec_internal.h
diff options
context:
space:
mode:
authorMonty <xiphmont@xiph.org>2001-08-13 01:37:17 +0000
committerMonty <xiphmont@xiph.org>2001-08-13 01:37:17 +0000
commitd59cea578a9f2b9961218e1440026715371836d8 (patch)
tree2040cd8a12d5eaa342ba09a09e54ed1239f67f00 /lib/codec_internal.h
parentf9e9af66a421be8bbdb5e0132dddc2b83174feff (diff)
downloadlibvorbis-git-d59cea578a9f2b9961218e1440026715371836d8.tar.gz
Bringing rc2 (minus the modes it needs) onto mainline.
Monty svn path=/trunk/vorbis/; revision=1815
Diffstat (limited to 'lib/codec_internal.h')
-rw-r--r--lib/codec_internal.h77
1 files changed, 34 insertions, 43 deletions
diff --git a/lib/codec_internal.h b/lib/codec_internal.h
index 3b333684..7efbb030 100644
--- a/lib/codec_internal.h
+++ b/lib/codec_internal.h
@@ -10,7 +10,7 @@
********************************************************************
function: libvorbis codec headers
- last mod: $Id: codec_internal.h,v 1.8 2001/03/26 23:27:43 xiphmont Exp $
+ last mod: $Id: codec_internal.h,v 1.9 2001/08/13 01:36:56 xiphmont Exp $
********************************************************************/
@@ -19,8 +19,6 @@
#include "envelope.h"
#include "codebook.h"
-#include "psy.h"
-#include "bitbuffer.h"
typedef struct vorbis_block_internal{
float **pcmdelay; /* this is a pointer into local storage */
@@ -33,12 +31,28 @@ 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_time;
+typedef void vorbis_info_floor;
+typedef void vorbis_info_residue;
+typedef void vorbis_info_mapping;
+
+#include "psy.h"
+
typedef struct backend_lookup_state {
/* local lookup storage */
envelope_lookup *ve; /* envelope lookup */
float **window[2][2][2]; /* block, leadin, leadout, type */
vorbis_look_transform **transform[2]; /* block, type */
codebook *fullbooks;
+ vorbis_look_psy_global *psy_g_look;
/* backend lookups are tied to the mode, not the backend or naked mapping */
int modebits;
@@ -51,24 +65,9 @@ typedef struct backend_lookup_state {
unsigned char *header;
unsigned char *header1;
unsigned char *header2;
-
- float ampmax;
-
+
} backend_lookup_state;
-/* mode ************************************************************/
-typedef struct {
- int blockflag;
- int windowtype;
- int transformtype;
- int mapping;
-} vorbis_info_mode;
-
-typedef void vorbis_info_time;
-typedef void vorbis_info_floor;
-typedef void vorbis_info_residue;
-typedef void vorbis_info_mapping;
-
/* vorbis_info contains all the setup information specific to the
specific compression/decompression mode in progress (eg,
psychoacoustic settings, channel setup, options, codebook
@@ -83,7 +82,7 @@ typedef struct codec_setup_info {
long blocksizes[2];
/* modes are the primary means of supporting on-the-fly different
- blocksizes, different channel mappings (LR or mid-side),
+ 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 */
@@ -95,30 +94,22 @@ typedef struct codec_setup_info {
int books;
int psys; /* encode only */
- vorbis_info_mode *mode_param[64];
- int map_type[64];
- vorbis_info_mapping *map_param[64];
- int time_type[64];
- vorbis_info_time *time_param[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];
- vorbis_info_psy *psy_param[64]; /* encode only */
-
- /* for block long/sort tuning; encode only */
- int envelopesa;
- float preecho_thresh[4];
- float postecho_thresh[4];
- float preecho_minenergy;
-
- float ampmax_att_per_sec;
-
- /* delay caching... how many samples to keep around prior to our
- current block to aid in analysis? */
- int delaycache;
+ vorbis_info_mode *mode_param[64];
+ int map_type[64];
+ vorbis_info_mapping *map_param[64];
+ int time_type[64];
+ vorbis_info_time *time_param[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];
+ vorbis_info_psy *psy_param[64]; /* encode only */
+ vorbis_info_psy_global *psy_g_param;
} codec_setup_info;
+extern vorbis_look_psy_global *_vp_global_look(vorbis_info *vi);
+extern void _vp_global_free(vorbis_look_psy_global *look);
+
#endif