Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
alexbevi
GitHub Repository: alexbevi/BizHawk
Path: blob/master/genplus-gx/core/tremor/codec_internal.h
2 views
1
/********************************************************************
2
* *
3
* THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
4
* *
5
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
6
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
7
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
8
* *
9
* THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
10
* BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
11
* *
12
********************************************************************
13
14
function: libvorbis codec headers
15
16
********************************************************************/
17
18
#ifndef _V_CODECI_H_
19
#define _V_CODECI_H_
20
21
#include "codebook.h"
22
23
typedef void vorbis_look_mapping;
24
typedef void vorbis_look_floor;
25
typedef void vorbis_look_residue;
26
typedef void vorbis_look_transform;
27
28
/* mode ************************************************************/
29
typedef struct {
30
int blockflag;
31
int windowtype;
32
int transformtype;
33
int mapping;
34
} vorbis_info_mode;
35
36
typedef void vorbis_info_floor;
37
typedef void vorbis_info_residue;
38
typedef void vorbis_info_mapping;
39
40
typedef struct private_state {
41
/* local lookup storage */
42
const void *window[2];
43
44
/* backend lookups are tied to the mode, not the backend or naked mapping */
45
int modebits;
46
vorbis_look_mapping **mode;
47
48
ogg_int64_t sample_count;
49
50
} private_state;
51
52
/* codec_setup_info contains all the setup information specific to the
53
specific compression/decompression mode in progress (eg,
54
psychoacoustic settings, channel setup, options, codebook
55
etc).
56
*********************************************************************/
57
58
typedef struct codec_setup_info {
59
60
/* Vorbis supports only short and long blocks, but allows the
61
encoder to choose the sizes */
62
63
long blocksizes[2];
64
65
/* modes are the primary means of supporting on-the-fly different
66
blocksizes, different channel mappings (LR or M/A),
67
different residue backends, etc. Each mode consists of a
68
blocksize flag and a mapping (along with the mapping setup */
69
70
int modes;
71
int maps;
72
int times;
73
int floors;
74
int residues;
75
int books;
76
77
vorbis_info_mode *mode_param[64];
78
int map_type[64];
79
vorbis_info_mapping *map_param[64];
80
int time_type[64];
81
int floor_type[64];
82
vorbis_info_floor *floor_param[64];
83
int residue_type[64];
84
vorbis_info_residue *residue_param[64];
85
static_codebook *book_param[256];
86
codebook *fullbooks;
87
88
int passlimit[32]; /* iteration limit per couple/quant pass */
89
int coupling_passes;
90
} codec_setup_info;
91
92
#endif
93
94