summaryrefslogtreecommitdiff
path: root/libavcodec/vorbis.h
diff options
context:
space:
mode:
authorAlexander Strasser <eclipse7@gmx.net>2006-02-04 08:55:34 +0000
committerAlexander Strasser <eclipse7@gmx.net>2006-02-04 08:55:34 +0000
commit43eb59087bf4c61434dd64e5d14dc9c0741ce9b5 (patch)
tree16c08d1ba16c64e09144c1fe04c497c8eed40364 /libavcodec/vorbis.h
parentefac2613e71dd99446c858c987625b6a09864cf9 (diff)
Added support for vorbis files containing floor type 0.
Originally committed as revision 4933 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/vorbis.h')
-rw-r--r--libavcodec/vorbis.h29
1 files changed, 28 insertions, 1 deletions
diff --git a/libavcodec/vorbis.h b/libavcodec/vorbis.h
index 27274a126e..5247d3414b 100644
--- a/libavcodec/vorbis.h
+++ b/libavcodec/vorbis.h
@@ -12,8 +12,33 @@ typedef struct {
unsigned int nb_bits;
} vorbis_codebook;
+typedef union vorbis_floor_u vorbis_floor_data;
+typedef struct vorbis_floor0_s vorbis_floor0;
+typedef struct vorbis_floor1_s vorbis_floor1;
+struct vorbis_context_s;
+typedef
+uint_fast8_t (* vorbis_floor_decode_func)
+ (struct vorbis_context_s *, vorbis_floor_data *, float *);
typedef struct {
uint_fast8_t floor_type;
+ vorbis_floor_decode_func decode;
+ union vorbis_floor_u
+ {
+ struct vorbis_floor0_s
+ {
+ uint_fast8_t order;
+ uint_fast16_t rate;
+ uint_fast16_t bark_map_size;
+ int_fast32_t * map;
+ uint_fast32_t map_size;
+ uint_fast8_t amplitude_bits;
+ uint_fast8_t amplitude_offset;
+ uint_fast8_t num_books;
+ uint_fast8_t * book_list;
+ float * lsp;
+ } t0;
+ struct vorbis_floor1_s
+ {
uint_fast8_t partitions;
uint_fast8_t maximum_class;
uint_fast8_t partition_class[32];
@@ -27,6 +52,8 @@ typedef struct {
uint_fast16_t *x_list_order;
uint_fast16_t *low_neighbour;
uint_fast16_t *high_neighbour;
+ } t1;
+ } data;
} vorbis_floor;
typedef struct {
@@ -57,7 +84,7 @@ typedef struct {
uint_fast8_t mapping;
} vorbis_mode;
-typedef struct {
+typedef struct vorbis_context_s {
AVCodecContext *avccontext;
GetBitContext gb;