/usr/src/castle-game-engine-5.2.0/audio/castlevorbiscodec.pas is in castle-game-engine-src 5.2.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | { Minimal translation of C /usr/include/vorbis/codec.h header.
@exclude (This is only a C header translation --- no nice PasDoc docs.) }
unit CastleVorbisCodec;
{$packrecords C}
interface
uses CTypes, CastleOgg;
type
Tvorbis_info = record
version: CInt;
channels: CInt;
rate: CLong;
{* The below bitrate declarations are *hints*.
Combinations of the three values carry the following implications:
all three set to the same value:
implies a fixed rate bitstream
only nominal set:
implies a VBR stream that averages the nominal bitrate. No hard
upper/lower limit
upper and or lower set:
implies a VBR bitstream that obeys the bitrate limits. nominal
may also be set to give a nominal rate.
none set:
the coder does not care to speculate.
*}
bitrate_upper: CLong;
bitrate_nominal: CLong;
bitrate_lower: CLong;
bitrate_window: CLong;
codec_setup: Pointer;
end;
Pvorbis_info = ^Tvorbis_info;
{* vorbis_dsp_state buffers the current vorbis audio
analysis/synthesis state. The DSP state belongs to a specific
logical bitstream ****************************************************}
Tvorbis_dsp_state = record
analysisp: Cint;
vi: Pvorbis_info;
pcm: Pointer;
pcmret: Pointer;
pcm_storage: CInt;
pcm_current: Cint;
pcm_returned: Cint;
preextrapolate: Cint;
eofflag: Cint;
lW: Clong;
W: Clong;
nW: Clong;
centerW: Clong;
granulepos: Int64;
sequence: Int64;
glue_bits: Int64;
time_bits: Int64;
floor_bits: Int64;
res_bits: Int64;
backend_state: Pointer;
end;
Pvorbis_dsp_state = ^Tvorbis_dsp_state;
Tvorbis_block = record
{* necessary stream state for linking to the framing abstraction *}
pcm: Pointer; {* this is a pointer into local storage *}
opb: Toggpack_buffer;
lW: Clong;
W: Clong;
nW: Clong;
pcmend: Cint;
mode: Cint;
eofflag: Cint;
granulepos: Int64;
sequence: Int64;
vd: Pvorbis_dsp_state; {* For read-only access of configuration *}
{* local storage to avoid remallocing; it's up to the mapping to
structure it *}
localstore: Pointer;
localtop: Clong;
localalloc: Clong;
totaluse: Clong;
reap: Pointer;
{* bitmetrics for the frame *}
glue_bits: Clong;
time_bits: Clong;
floor_bits: Clong;
res_bits: Clong;
internal: Pointer;
end;
{* vorbis_info contains all the setup information specific to the
specific compression/decompression mode in progress (eg,
psychoacoustic settings, channel setup, options, codebook
etc). vorbis_info and substructures are in backends.h.
*********************************************************************/
/* the comments are not part of vorbis_info so that vorbis_info can be
static storage *}
Tvorbis_comment = record
{* unlimited user comment fields. libvorbis writes 'libvorbis'
whatever vendor is set to in encode *}
user_comments: Pointer;
comment_lengths: PCInt;
comments: CInt;
vendor: PChar;
end;
Pvorbis_comment = ^Tvorbis_comment;
const
{* Vorbis ERRORS and return codes ***********************************}
OV_FALSE = -1;
OV_EOF = -2;
OV_HOLE = -3;
OV_EREAD = -128;
OV_EFAULT = -129;
OV_EIMPL = -130;
OV_EINVAL = -131;
OV_ENOTVORBIS = -132;
OV_EBADHEADER = -133;
OV_EVERSION = -134;
OV_ENOTAUDIO = -135;
OV_EBADPACKET = -136;
OV_EBADLINK = -137;
OV_ENOSEEK = -138;
implementation
end.
|