aboutsummaryrefslogtreecommitdiffstats
path: root/Tremolo/codebook.h
diff options
context:
space:
mode:
Diffstat (limited to 'Tremolo/codebook.h')
-rw-r--r--Tremolo/codebook.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/Tremolo/codebook.h b/Tremolo/codebook.h
new file mode 100644
index 0000000..5a58bb2
--- /dev/null
+++ b/Tremolo/codebook.h
@@ -0,0 +1,69 @@
+/********************************************************************
+ * *
+ * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
+ * *
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
+ * *
+ * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
+ * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
+ * *
+ ********************************************************************
+
+ function: basic shared codebook operations
+
+ ********************************************************************/
+
+#ifndef _V_CODEBOOK_H_
+#define _V_CODEBOOK_H_
+
+#include "ogg.h"
+
+typedef struct codebook{
+ /* Top 15 used in ARM code */
+ int dec_maxlength;
+ void *dec_table;
+ int dec_method;
+ int dec_type; /* 0 = entry number
+ 1 = packed vector of values
+ 2 = packed vector of column offsets, maptype 1
+ 3 = scalar offset into value array, maptype 2 */
+ int q_bits;
+ long dim; /* codebook dimensions (elements per vector) */
+ int q_delp;
+ int q_minp;
+ ogg_int32_t q_del;
+ ogg_int32_t q_min;
+ int q_seq;
+ int q_pack;
+ void *q_val;
+ long used_entries; /* populated codebook entries */
+ ogg_int32_t *dec_buf;
+
+ /* C only */
+ int dec_nodeb;
+ int dec_leafw;
+
+ long entries; /* codebook entries */
+
+} codebook;
+
+extern void vorbis_book_clear(codebook *b);
+extern int vorbis_book_unpack(oggpack_buffer *b,codebook *c);
+
+extern long vorbis_book_decode(codebook *book, oggpack_buffer *b);
+extern long vorbis_book_decodevs_add(codebook *book, ogg_int32_t *a,
+ oggpack_buffer *b,int n,int point);
+extern long vorbis_book_decodev_set(codebook *book, ogg_int32_t *a,
+ oggpack_buffer *b,int n,int point);
+extern long vorbis_book_decodev_add(codebook *book, ogg_int32_t *a,
+ oggpack_buffer *b,int n,int point);
+extern long vorbis_book_decodevv_add(codebook *book, ogg_int32_t **a,
+ long off,int ch,
+ oggpack_buffer *b,int n,int point);
+
+extern int _ilog(unsigned int v);
+
+
+#endif