diff options
Diffstat (limited to 'libavcodec/vorbis.h')
-rw-r--r-- | libavcodec/vorbis.h | 29 |
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; |