vorbis.h
来自「从FFMPEG转换而来的H264解码程序,VC下编译..」· C头文件 代码 · 共 1,129 行 · 第 1/5 页
H
1,129 行
#define ALT_BITSTREAM_READER_LE
#include "avcodec.h"
#include "bitstream.h"
#include "dsputil.h"
typedef struct {
uint_fast8_t dimensions;
uint_fast8_t lookup_type;
uint_fast8_t maxdepth;
VLC vlc;
float *codevectors;
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[2];
uint_fast32_t map_size[2];
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];
uint_fast8_t class_dimensions[16];
uint_fast8_t class_subclasses[16];
uint_fast8_t class_masterbook[16];
int_fast16_t subclass_books[16][8];
uint_fast8_t multiplier;
uint_fast16_t x_list_dim;
uint_fast16_t *x_list;
uint_fast16_t *x_list_order;
uint_fast16_t *low_neighbour;
uint_fast16_t *high_neighbour;
} t1;
} data;
} vorbis_floor;
typedef struct {
uint_fast16_t type;
uint_fast32_t begin;
uint_fast32_t end;
uint_fast32_t partition_size;
uint_fast8_t classifications;
uint_fast8_t classbook;
int_fast16_t books[64][8];
uint_fast8_t maxpass;
} vorbis_residue;
typedef struct {
uint_fast8_t submaps;
uint_fast16_t coupling_steps;
uint_fast8_t *magnitude;
uint_fast8_t *angle;
uint_fast8_t *mux;
uint_fast8_t submap_floor[16];
uint_fast8_t submap_residue[16];
} vorbis_mapping;
typedef struct {
uint_fast8_t blockflag;
uint_fast16_t windowtype;
uint_fast16_t transformtype;
uint_fast8_t mapping;
} vorbis_mode;
typedef struct vorbis_context_s {
AVCodecContext *avccontext;
GetBitContext gb;
int inited;
MDCTContext mdct0;
MDCTContext mdct1;
uint_fast8_t first_frame;
uint_fast32_t version;
uint_fast8_t audio_channels;
uint_fast32_t audio_samplerate;
uint_fast32_t bitrate_maximum;
uint_fast32_t bitrate_nominal;
uint_fast32_t bitrate_minimum;
uint_fast32_t blocksize_0;
uint_fast32_t blocksize_1;
const float * swin;
const float * lwin;
uint_fast16_t codebook_count;
vorbis_codebook *codebooks;
uint_fast8_t floor_count;
vorbis_floor *floors;
uint_fast8_t residue_count;
vorbis_residue *residues;
uint_fast8_t mapping_count;
vorbis_mapping *mappings;
uint_fast8_t mode_count;
vorbis_mode *modes;
uint_fast8_t mode_number; // mode number for the current packet
float *channel_residues;
float *channel_floors;
float *saved;
uint_fast16_t saved_start;
float *ret;
float *buf;
float *buf_tmp;
char *vendor;
int comments;
char **user_comments;
int *comment_lengths;
} vorbis_context;
static const float vwin64[32] = {
0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F,
0.0753351908F, 0.1115073077F, 0.1539457973F, 0.2020557475F,
0.2551056759F, 0.3122276645F, 0.3724270287F, 0.4346027792F,
0.4975789974F, 0.5601459521F, 0.6211085051F, 0.6793382689F,
0.7338252629F, 0.7837245849F, 0.8283939355F, 0.8674186656F,
0.9006222429F, 0.9280614787F, 0.9500073081F, 0.9669131782F,
0.9793740220F, 0.9880792941F, 0.9937636139F, 0.9971582668F,
0.9989462667F, 0.9997230082F, 0.9999638688F, 0.9999995525F,
};
static const float vwin128[64] = {
0.0002365472F, 0.0021280687F, 0.0059065254F, 0.0115626550F,
0.0190823442F, 0.0284463735F, 0.0396300935F, 0.0526030430F,
0.0673285281F, 0.0837631763F, 0.1018564887F, 0.1215504095F,
0.1427789367F, 0.1654677960F, 0.1895342001F, 0.2148867160F,
0.2414252576F, 0.2690412240F, 0.2976177952F, 0.3270303960F,
0.3571473350F, 0.3878306189F, 0.4189369387F, 0.4503188188F,
0.4818259135F, 0.5133064334F, 0.5446086751F, 0.5755826278F,
0.6060816248F, 0.6359640047F, 0.6650947483F, 0.6933470543F,
0.7206038179F, 0.7467589810F, 0.7717187213F, 0.7954024542F,
0.8177436264F, 0.8386902831F, 0.8582053981F, 0.8762669622F,
0.8928678298F, 0.9080153310F, 0.9217306608F, 0.9340480615F,
0.9450138200F, 0.9546851041F, 0.9631286621F, 0.9704194171F,
0.9766389810F, 0.9818741197F, 0.9862151938F, 0.9897546035F,
0.9925852598F, 0.9947991032F, 0.9964856900F, 0.9977308602F,
0.9986155015F, 0.9992144193F, 0.9995953200F, 0.9998179155F,
0.9999331503F, 0.9999825563F, 0.9999977357F, 0.9999999720F,
};
static const float vwin256[128] = {
0.0000591390F, 0.0005321979F, 0.0014780301F, 0.0028960636F,
0.0047854363F, 0.0071449926F, 0.0099732775F, 0.0132685298F,
0.0170286741F, 0.0212513119F, 0.0259337111F, 0.0310727950F,
0.0366651302F, 0.0427069140F, 0.0491939614F, 0.0561216907F,
0.0634851102F, 0.0712788035F, 0.0794969160F, 0.0881331402F,
0.0971807028F, 0.1066323515F, 0.1164803426F, 0.1267164297F,
0.1373318534F, 0.1483173323F, 0.1596630553F, 0.1713586755F,
0.1833933062F, 0.1957555184F, 0.2084333404F, 0.2214142599F,
0.2346852280F, 0.2482326664F, 0.2620424757F, 0.2761000481F,
0.2903902813F, 0.3048975959F, 0.3196059553F, 0.3344988887F,
0.3495595160F, 0.3647705766F, 0.3801144597F, 0.3955732382F,
0.4111287047F, 0.4267624093F, 0.4424557009F, 0.4581897696F,
0.4739456913F, 0.4897044744F, 0.5054471075F, 0.5211546088F,
0.5368080763F, 0.5523887395F, 0.5678780103F, 0.5832575361F,
0.5985092508F, 0.6136154277F, 0.6285587300F, 0.6433222619F,
0.6578896175F, 0.6722449294F, 0.6863729144F, 0.7002589187F,
0.7138889597F, 0.7272497662F, 0.7403288154F, 0.7531143679F,
0.7655954985F, 0.7777621249F, 0.7896050322F, 0.8011158947F,
0.8122872932F, 0.8231127294F, 0.8335866365F, 0.8437043850F,
0.8534622861F, 0.8628575905F, 0.8718884835F, 0.8805540765F,
0.8888543947F, 0.8967903616F, 0.9043637797F, 0.9115773078F,
0.9184344360F, 0.9249394562F, 0.9310974312F, 0.9369141608F,
0.9423961446F, 0.9475505439F, 0.9523851406F, 0.9569082947F,
0.9611289005F, 0.9650563408F, 0.9687004405F, 0.9720714191F,
0.9751798427F, 0.9780365753F, 0.9806527301F, 0.9830396204F,
0.9852087111F, 0.9871715701F, 0.9889398207F, 0.9905250941F,
0.9919389832F, 0.9931929973F, 0.9942985174F, 0.9952667537F,
0.9961087037F, 0.9968351119F, 0.9974564312F, 0.9979827858F,
0.9984239359F, 0.9987892441F, 0.9990876435F, 0.9993276081F,
0.9995171241F, 0.9996636648F, 0.9997741654F, 0.9998550016F,
0.9999119692F, 0.9999502656F, 0.9999744742F, 0.9999885497F,
0.9999958064F, 0.9999989077F, 0.9999998584F, 0.9999999983F,
};
static const float vwin512[256] = {
0.0000147849F, 0.0001330607F, 0.0003695946F, 0.0007243509F,
0.0011972759F, 0.0017882983F, 0.0024973285F, 0.0033242588F,
0.0042689632F, 0.0053312973F, 0.0065110982F, 0.0078081841F,
0.0092223540F, 0.0107533880F, 0.0124010466F, 0.0141650703F,
0.0160451800F, 0.0180410758F, 0.0201524373F, 0.0223789233F,
0.0247201710F, 0.0271757958F, 0.0297453914F, 0.0324285286F,
0.0352247556F, 0.0381335972F, 0.0411545545F, 0.0442871045F,
0.0475306997F, 0.0508847676F, 0.0543487103F, 0.0579219038F,
0.0616036982F, 0.0653934164F, 0.0692903546F, 0.0732937809F,
0.0774029356F, 0.0816170305F, 0.0859352485F, 0.0903567428F,
0.0948806375F, 0.0995060259F, 0.1042319712F, 0.1090575056F,
0.1139816300F, 0.1190033137F, 0.1241214941F, 0.1293350764F,
0.1346429333F, 0.1400439046F, 0.1455367974F, 0.1511203852F,
0.1567934083F, 0.1625545735F, 0.1684025537F, 0.1743359881F,
0.1803534820F, 0.1864536069F, 0.1926349000F, 0.1988958650F,
0.2052349715F, 0.2116506555F, 0.2181413191F, 0.2247053313F,
0.2313410275F, 0.2380467105F, 0.2448206500F, 0.2516610835F,
0.2585662164F, 0.2655342226F, 0.2725632448F, 0.2796513950F,
0.2867967551F, 0.2939973773F, 0.3012512852F, 0.3085564739F,
0.3159109111F, 0.3233125375F, 0.3307592680F, 0.3382489922F,
0.3457795756F, 0.3533488602F, 0.3609546657F, 0.3685947904F,
0.3762670121F, 0.3839690896F, 0.3916987634F, 0.3994537572F,
0.4072317788F, 0.4150305215F, 0.4228476653F, 0.4306808783F,
0.4385278181F, 0.4463861329F, 0.4542534630F, 0.4621274424F,
0.4700057001F, 0.4778858615F, 0.4857655502F, 0.4936423891F,
0.5015140023F, 0.5093780165F, 0.5172320626F, 0.5250737772F,
0.5329008043F, 0.5407107971F, 0.5485014192F, 0.5562703465F,
0.5640152688F, 0.5717338914F, 0.5794239366F, 0.5870831457F,
0.5947092801F, 0.6023001235F, 0.6098534829F, 0.6173671907F,
0.6248391059F, 0.6322671161F, 0.6396491384F, 0.6469831217F,
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?