mirror of
https://github.com/cookiengineer/audacity
synced 2025-10-22 14:32:58 +02:00
Update libvorbis to 1.3.3.
This commit is contained in:
@@ -5,13 +5,13 @@
|
||||
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
||||
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
||||
* *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
|
||||
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
|
||||
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
||||
* *
|
||||
********************************************************************
|
||||
|
||||
function: basic shared codebook operations
|
||||
last mod: $Id: codebook.h,v 1.7 2008-02-02 15:53:51 richardash1981 Exp $
|
||||
last mod: $Id: codebook.h 17030 2010-03-25 06:52:55Z xiphmont $
|
||||
|
||||
********************************************************************/
|
||||
|
||||
@@ -40,8 +40,8 @@ typedef struct static_codebook{
|
||||
|
||||
/* mapping ***************************************************************/
|
||||
int maptype; /* 0=none
|
||||
1=implicitly populated values from map column
|
||||
2=listed arbitrary values */
|
||||
1=implicitly populated values from map column
|
||||
2=listed arbitrary values */
|
||||
|
||||
/* The below does a linear, single monotonic sequence mapping. */
|
||||
long q_min; /* packed 32 bit float; quant value 0 maps to minval */
|
||||
@@ -50,52 +50,11 @@ typedef struct static_codebook{
|
||||
int q_sequencep; /* bitflag */
|
||||
|
||||
long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map
|
||||
map == 2: list of dim*entries quantized entry vals
|
||||
*/
|
||||
|
||||
/* encode helpers ********************************************************/
|
||||
struct encode_aux_nearestmatch *nearest_tree;
|
||||
struct encode_aux_threshmatch *thresh_tree;
|
||||
struct encode_aux_pigeonhole *pigeon_tree;
|
||||
|
||||
map == 2: list of dim*entries quantized entry vals
|
||||
*/
|
||||
int allocedp;
|
||||
} static_codebook;
|
||||
|
||||
/* this structures an arbitrary trained book to quickly find the
|
||||
nearest cell match */
|
||||
typedef struct encode_aux_nearestmatch{
|
||||
/* pre-calculated partitioning tree */
|
||||
long *ptr0;
|
||||
long *ptr1;
|
||||
|
||||
long *p; /* decision points (each is an entry) */
|
||||
long *q; /* decision points (each is an entry) */
|
||||
long aux; /* number of tree entries */
|
||||
long alloc;
|
||||
} encode_aux_nearestmatch;
|
||||
|
||||
/* assumes a maptype of 1; encode side only, so that's OK */
|
||||
typedef struct encode_aux_threshmatch{
|
||||
float *quantthresh;
|
||||
long *quantmap;
|
||||
int quantvals;
|
||||
int threshvals;
|
||||
} encode_aux_threshmatch;
|
||||
|
||||
typedef struct encode_aux_pigeonhole{
|
||||
float min;
|
||||
float del;
|
||||
|
||||
int mapentries;
|
||||
int quantvals;
|
||||
long *pigeonmap;
|
||||
|
||||
long fittotal;
|
||||
long *fitlist;
|
||||
long *fitmap;
|
||||
long *fitlength;
|
||||
} encode_aux_pigeonhole;
|
||||
|
||||
typedef struct codebook{
|
||||
long dim; /* codebook dimensions (elements per vector) */
|
||||
long entries; /* codebook entries */
|
||||
@@ -105,7 +64,7 @@ typedef struct codebook{
|
||||
/* for encode, the below are entry-ordered, fully populated */
|
||||
/* for decode, the below are ordered by bitreversed codeword and only
|
||||
used entries are populated */
|
||||
float *valuelist; /* list of dim*entries actual entry values */
|
||||
float *valuelist; /* list of dim*entries actual entry values */
|
||||
ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */
|
||||
|
||||
int *dec_index; /* only used if sparseness collapsed */
|
||||
@@ -114,9 +73,12 @@ typedef struct codebook{
|
||||
int dec_firsttablen;
|
||||
int dec_maxlength;
|
||||
|
||||
/* The current encoder uses only centered, integer-only lattice books. */
|
||||
int quantvals;
|
||||
int minval;
|
||||
int delta;
|
||||
} codebook;
|
||||
|
||||
extern void vorbis_staticbook_clear(static_codebook *b);
|
||||
extern void vorbis_staticbook_destroy(static_codebook *b);
|
||||
extern int vorbis_book_init_encode(codebook *dest,const static_codebook *source);
|
||||
extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source);
|
||||
@@ -137,23 +99,20 @@ extern long vorbis_book_codelen(codebook *book,int entry);
|
||||
|
||||
|
||||
extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b);
|
||||
extern int vorbis_staticbook_unpack(oggpack_buffer *b,static_codebook *c);
|
||||
extern static_codebook *vorbis_staticbook_unpack(oggpack_buffer *b);
|
||||
|
||||
extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b);
|
||||
extern int vorbis_book_errorv(codebook *book, float *a);
|
||||
extern int vorbis_book_encodev(codebook *book, int best,float *a,
|
||||
oggpack_buffer *b);
|
||||
|
||||
extern long vorbis_book_decode(codebook *book, oggpack_buffer *b);
|
||||
extern long vorbis_book_decodevs_add(codebook *book, float *a,
|
||||
oggpack_buffer *b,int n);
|
||||
extern long vorbis_book_decodev_set(codebook *book, float *a,
|
||||
oggpack_buffer *b,int n);
|
||||
extern long vorbis_book_decodev_add(codebook *book, float *a,
|
||||
oggpack_buffer *b,int n);
|
||||
extern long vorbis_book_decodevs_add(codebook *book, float *a,
|
||||
oggpack_buffer *b,int n);
|
||||
extern long vorbis_book_decodev_set(codebook *book, float *a,
|
||||
oggpack_buffer *b,int n);
|
||||
extern long vorbis_book_decodev_add(codebook *book, float *a,
|
||||
oggpack_buffer *b,int n);
|
||||
extern long vorbis_book_decodevv_add(codebook *book, float **a,
|
||||
long off,int ch,
|
||||
oggpack_buffer *b,int n);
|
||||
long off,int ch,
|
||||
oggpack_buffer *b,int n);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user