gosu 0.8.0.pre3 → 0.8.0.pre4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gosu/Buttons.hpp +13 -11
- data/{linux → ext/gosu}/extconf.rb +25 -47
- data/{GosuImpl/RubyGosu_wrap.cxx → ext/gosu/gosu_wrap.cxx} +3 -2
- data/{GosuImpl/RubyGosu_wrap.h → ext/gosu/gosu_wrap.h} +0 -0
- data/lib/gosu.rb +6 -7
- data/lib/gosu/zen.rb +12 -0
- data/{GosuImpl → src}/Audio/ALChannelManagement.hpp +0 -0
- data/{GosuImpl → src}/Audio/AudioFile.hpp +0 -0
- data/{GosuImpl → src}/Audio/AudioOpenAL.cpp +0 -0
- data/{GosuImpl → src}/Audio/AudioOpenAL.mm +0 -0
- data/{GosuImpl → src}/Audio/AudioToolboxFile.hpp +0 -0
- data/{GosuImpl → src}/Audio/OggFile.hpp +0 -0
- data/{GosuImpl → src}/Audio/SndFile.hpp +0 -0
- data/{GosuImpl/Graphics → src/Bitmap}/Bitmap.cpp +2 -0
- data/{GosuImpl/Graphics → src/Bitmap}/BitmapApple.mm +0 -0
- data/{GosuImpl/Graphics → src/Bitmap}/BitmapBMP.cpp +0 -0
- data/{GosuImpl/Graphics → src/Bitmap}/BitmapColorKey.cpp +0 -0
- data/{GosuImpl/Graphics → src/Bitmap}/BitmapFreeImage.cpp +0 -0
- data/{GosuImpl/Graphics → src/Bitmap}/BitmapGDIplus.cpp +0 -0
- data/{GosuImpl/Graphics → src/Bitmap}/BitmapUtils.cpp +0 -0
- data/{GosuImpl → src}/DirectoriesMac.mm +0 -0
- data/{GosuImpl → src}/DirectoriesTouch.mm +0 -0
- data/{GosuImpl → src}/DirectoriesUnix.cpp +0 -0
- data/{GosuImpl → src}/DirectoriesWin.cpp +0 -0
- data/{GosuImpl → src}/FileUnix.cpp +0 -0
- data/{GosuImpl → src}/FileWin.cpp +0 -0
- data/{GosuImpl/Graphics → src}/GosuView.hpp +0 -0
- data/{GosuImpl/Graphics → src}/GosuView.mm +0 -0
- data/{GosuImpl → src}/Graphics/BlockAllocator.cpp +0 -0
- data/{GosuImpl → src}/Graphics/BlockAllocator.hpp +0 -0
- data/{GosuImpl → src}/Graphics/ClipRectStack.hpp +0 -0
- data/{GosuImpl → src}/Graphics/Color.cpp +0 -0
- data/{GosuImpl → src}/Graphics/Common.hpp +0 -0
- data/{GosuImpl → src}/Graphics/DrawOp.hpp +0 -0
- data/{GosuImpl → src}/Graphics/DrawOpQueue.hpp +0 -0
- data/{GosuImpl → src}/Graphics/Graphics.cpp +0 -0
- data/{GosuImpl → src}/Graphics/Image.cpp +0 -0
- data/{GosuImpl → src}/Graphics/LargeImageData.cpp +0 -0
- data/{GosuImpl → src}/Graphics/LargeImageData.hpp +0 -0
- data/{GosuImpl → src}/Graphics/Macro.hpp +0 -0
- data/{GosuImpl → src}/Graphics/RenderState.hpp +0 -0
- data/{GosuImpl → src}/Graphics/TexChunk.cpp +0 -0
- data/{GosuImpl → src}/Graphics/TexChunk.hpp +0 -0
- data/{GosuImpl → src}/Graphics/Texture.cpp +0 -0
- data/{GosuImpl → src}/Graphics/Texture.hpp +0 -0
- data/{GosuImpl → src}/Graphics/Transform.cpp +0 -0
- data/{GosuImpl → src}/Graphics/TransformStack.hpp +0 -0
- data/{GosuImpl → src}/IO.cpp +0 -0
- data/{GosuImpl → src}/Iconv.hpp +0 -0
- data/{GosuImpl → src}/Input/AccelerometerReader.hpp +0 -0
- data/{GosuImpl → src}/Input/AccelerometerReader.mm +0 -0
- data/{GosuImpl → src/Input}/Input.cpp +0 -0
- data/{GosuImpl → src/Input}/InputTouch.mm +0 -0
- data/{GosuImpl → src/Input}/TextInput.cpp +0 -0
- data/{GosuImpl → src/Input}/TextInputMac.mm +0 -0
- data/{GosuImpl → src}/Inspection.cpp +0 -0
- data/{GosuImpl → src}/MacUtility.hpp +0 -0
- data/{GosuImpl → src}/Math.cpp +0 -0
- data/{GosuImpl → src}/Sockets/CommSocket.cpp +0 -0
- data/{GosuImpl → src}/Sockets/ListenerSocket.cpp +0 -0
- data/{GosuImpl → src}/Sockets/MessageSocket.cpp +0 -0
- data/{GosuImpl → src}/Sockets/Socket.cpp +0 -0
- data/{GosuImpl → src}/Sockets/Socket.hpp +0 -0
- data/{GosuImpl/Graphics → src/Text}/Font.cpp +1 -1
- data/{GosuImpl/Graphics → src/Text}/FormattedString.hpp +0 -0
- data/{GosuImpl/Graphics → src/Text}/Text.cpp +1 -1
- data/{GosuImpl/Graphics/TextTouch.mm → src/Text/TextApple.mm} +0 -0
- data/{GosuImpl/Graphics → src/Text}/TextMac.cpp +1 -1
- data/{GosuImpl/Graphics → src/Text}/TextTTFWin.cpp +0 -0
- data/{GosuImpl/Graphics → src/Text}/TextUnix.cpp +0 -0
- data/{GosuImpl/Graphics → src/Text}/TextWin.cpp +0 -0
- data/{GosuImpl → src}/TimingApple.cpp +0 -0
- data/{GosuImpl → src}/TimingUnix.cpp +0 -0
- data/{GosuImpl → src}/TimingWin.cpp +0 -0
- data/{GosuImpl → src}/Utility.cpp +0 -0
- data/{GosuImpl → src}/UtilityApple.mm +0 -0
- data/{GosuImpl → src}/UtilityWin.cpp +0 -0
- data/{GosuImpl → src}/WinMain.cpp +0 -0
- data/{GosuImpl → src}/WinUtility.cpp +0 -0
- data/{GosuImpl → src}/Window.cpp +0 -0
- data/{GosuImpl → src}/WindowTouch.mm +0 -0
- data/{GosuImpl → src}/X11vroot.h +0 -0
- metadata +97 -193
- data/.yardopts +0 -1
- data/COPYING +0 -29
- data/GosuImpl/InputMac.mm +0 -733
- data/GosuImpl/InputWin.cpp +0 -483
- data/GosuImpl/InputX.cpp +0 -243
- data/GosuImpl/RubyGosu.swg +0 -821
- data/GosuImpl/RubyGosu_SWIG_GC_PATCH.patch +0 -126
- data/GosuImpl/RubyGosu_SWIG_RENAME_PATCH.patch +0 -62
- data/GosuImpl/TextInputWin.cpp +0 -211
- data/GosuImpl/TextInputX.cpp +0 -217
- data/GosuImpl/WindowWin.cpp +0 -534
- data/GosuImpl/WindowX.cpp +0 -458
- data/README.txt +0 -25
- data/dependencies/libogg/AUTHORS +0 -4
- data/dependencies/libogg/CHANGES +0 -70
- data/dependencies/libogg/COPYING +0 -28
- data/dependencies/libogg/include/ogg/ogg.h +0 -209
- data/dependencies/libogg/include/ogg/os_types.h +0 -147
- data/dependencies/libogg/src/bitwise.c +0 -857
- data/dependencies/libogg/src/framing.c +0 -2089
- data/dependencies/libvorbis/AUTHORS +0 -3
- data/dependencies/libvorbis/CHANGES +0 -126
- data/dependencies/libvorbis/COPYING +0 -28
- data/dependencies/libvorbis/include/vorbis/codec.h +0 -243
- data/dependencies/libvorbis/include/vorbis/vorbisenc.h +0 -436
- data/dependencies/libvorbis/include/vorbis/vorbisfile.h +0 -206
- data/dependencies/libvorbis/lib/analysis.c +0 -120
- data/dependencies/libvorbis/lib/backends.h +0 -144
- data/dependencies/libvorbis/lib/barkmel.c +0 -64
- data/dependencies/libvorbis/lib/bitrate.c +0 -253
- data/dependencies/libvorbis/lib/bitrate.h +0 -59
- data/dependencies/libvorbis/lib/block.c +0 -1046
- data/dependencies/libvorbis/lib/books/coupled/res_books_51.h +0 -12257
- data/dependencies/libvorbis/lib/books/coupled/res_books_stereo.h +0 -15783
- data/dependencies/libvorbis/lib/books/floor/floor_books.h +0 -1547
- data/dependencies/libvorbis/lib/books/uncoupled/res_books_uncoupled.h +0 -7758
- data/dependencies/libvorbis/lib/codebook.c +0 -479
- data/dependencies/libvorbis/lib/codebook.h +0 -119
- data/dependencies/libvorbis/lib/codec_internal.h +0 -167
- data/dependencies/libvorbis/lib/envelope.c +0 -375
- data/dependencies/libvorbis/lib/envelope.h +0 -80
- data/dependencies/libvorbis/lib/floor0.c +0 -222
- data/dependencies/libvorbis/lib/floor1.c +0 -1099
- data/dependencies/libvorbis/lib/highlevel.h +0 -58
- data/dependencies/libvorbis/lib/info.c +0 -664
- data/dependencies/libvorbis/lib/lookup.c +0 -94
- data/dependencies/libvorbis/lib/lookup.h +0 -32
- data/dependencies/libvorbis/lib/lookup_data.h +0 -192
- data/dependencies/libvorbis/lib/lpc.c +0 -160
- data/dependencies/libvorbis/lib/lpc.h +0 -29
- data/dependencies/libvorbis/lib/lsp.c +0 -456
- data/dependencies/libvorbis/lib/lsp.h +0 -28
- data/dependencies/libvorbis/lib/mapping0.c +0 -816
- data/dependencies/libvorbis/lib/masking.h +0 -785
- data/dependencies/libvorbis/lib/mdct.c +0 -563
- data/dependencies/libvorbis/lib/mdct.h +0 -71
- data/dependencies/libvorbis/lib/misc.h +0 -57
- data/dependencies/libvorbis/lib/modes/floor_all.h +0 -260
- data/dependencies/libvorbis/lib/modes/psych_11.h +0 -51
- data/dependencies/libvorbis/lib/modes/psych_16.h +0 -133
- data/dependencies/libvorbis/lib/modes/psych_44.h +0 -642
- data/dependencies/libvorbis/lib/modes/psych_8.h +0 -101
- data/dependencies/libvorbis/lib/modes/residue_16.h +0 -163
- data/dependencies/libvorbis/lib/modes/residue_44.h +0 -292
- data/dependencies/libvorbis/lib/modes/residue_44p51.h +0 -451
- data/dependencies/libvorbis/lib/modes/residue_44u.h +0 -318
- data/dependencies/libvorbis/lib/modes/residue_8.h +0 -109
- data/dependencies/libvorbis/lib/modes/setup_11.h +0 -143
- data/dependencies/libvorbis/lib/modes/setup_16.h +0 -153
- data/dependencies/libvorbis/lib/modes/setup_22.h +0 -128
- data/dependencies/libvorbis/lib/modes/setup_32.h +0 -132
- data/dependencies/libvorbis/lib/modes/setup_44.h +0 -117
- data/dependencies/libvorbis/lib/modes/setup_44p51.h +0 -74
- data/dependencies/libvorbis/lib/modes/setup_44u.h +0 -74
- data/dependencies/libvorbis/lib/modes/setup_8.h +0 -149
- data/dependencies/libvorbis/lib/modes/setup_X.h +0 -225
- data/dependencies/libvorbis/lib/os.h +0 -186
- data/dependencies/libvorbis/lib/psy.c +0 -1203
- data/dependencies/libvorbis/lib/psy.h +0 -154
- data/dependencies/libvorbis/lib/psytune.c +0 -524
- data/dependencies/libvorbis/lib/registry.c +0 -45
- data/dependencies/libvorbis/lib/registry.h +0 -32
- data/dependencies/libvorbis/lib/res0.c +0 -889
- data/dependencies/libvorbis/lib/scales.h +0 -90
- data/dependencies/libvorbis/lib/sharedbook.c +0 -579
- data/dependencies/libvorbis/lib/smallft.c +0 -1255
- data/dependencies/libvorbis/lib/smallft.h +0 -34
- data/dependencies/libvorbis/lib/synthesis.c +0 -184
- data/dependencies/libvorbis/lib/tone.c +0 -54
- data/dependencies/libvorbis/lib/vorbisenc.c +0 -1215
- data/dependencies/libvorbis/lib/vorbisfile.c +0 -2337
- data/dependencies/libvorbis/lib/window.c +0 -2135
- data/dependencies/libvorbis/lib/window.h +0 -26
- data/dependencies/ogg_vorbis.license +0 -28
- data/reference/gosu.rb +0 -1284
@@ -1,126 +0,0 @@
|
|
1
|
-
libvorbis 1.3.2 (2010-11-01) -- "Xiph.Org libVorbis I 20101101 (Schaufenugget)"
|
2
|
-
|
3
|
-
* vorbis: additional proofing against invalid/malicious
|
4
|
-
streams in floor, residue, and bos/eos packet trimming
|
5
|
-
code (see SVN for details).
|
6
|
-
* vorbis: Added programming documentation tree for the
|
7
|
-
low-level calls
|
8
|
-
* vorbisfile: Correct handling of serial numbers array
|
9
|
-
element [0] on non-seekable streams
|
10
|
-
* vorbisenc: Back out an [old] AoTuV HF weighting that was
|
11
|
-
first enabled in 1.3.0; there are a few samples where I
|
12
|
-
really don't like the effect it causes.
|
13
|
-
* vorbis: return correct timestamp for granule positions
|
14
|
-
with high bit set.
|
15
|
-
* vorbisfile: the [undocumented] half-rate decode api made no
|
16
|
-
attempt to keep the pcm offset tracking consistent in seeks.
|
17
|
-
Fix and add a testing mode to seeking_example.c to torture
|
18
|
-
test seeking in halfrate mode. Also remove requirement that
|
19
|
-
halfrate mode only work with seekable files.
|
20
|
-
* vorbisfile: Fix a chaining bug in raw_seeks where seeking
|
21
|
-
out of the current link would fail due to not
|
22
|
-
reinitializing the decode machinery.
|
23
|
-
* vorbisfile: improve seeking strategy. Reduces the
|
24
|
-
necessary number of seek callbacks in an open or seek
|
25
|
-
operation by well over 2/3.
|
26
|
-
|
27
|
-
libvorbis 1.3.1 (2010-02-26) -- "Xiph.Org libVorbis I 20100325 (Everywhere)"
|
28
|
-
|
29
|
-
* tweak + minor arithmetic fix in floor1 fit
|
30
|
-
* revert noise norm to conservative 1.2.3 behavior pending
|
31
|
-
more listening testing
|
32
|
-
|
33
|
-
libvorbis 1.3.0 (2010-02-25) -- unreleased staging snapshot
|
34
|
-
|
35
|
-
* Optimized surround support for 5.1 encoding at 44.1/48kHz
|
36
|
-
* Added encoder control call to disable channel coupling
|
37
|
-
* Correct an overflow bug in very low-bitrate encoding on 32 bit
|
38
|
-
machines that caused inflated bitrates
|
39
|
-
* Numerous API hardening, leak and build fixes
|
40
|
-
* Correct bug in 22kHz compand setup that could cause a crash
|
41
|
-
* Correct bug in 16kHz codebooks that could cause unstable pure
|
42
|
-
tones at high bitrates
|
43
|
-
|
44
|
-
libvorbis 1.2.3 (2009-07-09) -- "Xiph.Org libVorbis I 20090709"
|
45
|
-
|
46
|
-
* correct a vorbisfile bug that prevented proper playback of
|
47
|
-
Vorbis files where all audio in a logical stream is in a
|
48
|
-
single page
|
49
|
-
* Additional decode setup hardening against malicious streams
|
50
|
-
* Add 'OV_EXCLUDE_STATIC_CALLBACKS' define for developers who
|
51
|
-
wish to avoid unused symbol warnings from the static callbacks
|
52
|
-
defined in vorbisfile.h
|
53
|
-
|
54
|
-
libvorbis 1.2.2 (2009-06-24) -- "Xiph.Org libVorbis I 20090624"
|
55
|
-
|
56
|
-
* define VENDOR and ENCODER strings
|
57
|
-
* seek correctly in files bigger than 2 GB (Windows)
|
58
|
-
* fix regression from CVE-2008-1420; 1.0b1 files work again
|
59
|
-
* mark all tables as constant to reduce memory occupation
|
60
|
-
* additional decoder hardening against malicious streams
|
61
|
-
* substantially reduce amount of seeking performed by Vorbisfile
|
62
|
-
* Multichannel decode bugfix
|
63
|
-
* build system updates
|
64
|
-
* minor specification clarifications/fixes
|
65
|
-
|
66
|
-
libvorbis 1.2.1 (unreleased) -- "Xiph.Org libVorbis I 20080501"
|
67
|
-
|
68
|
-
* Improved robustness with corrupt streams.
|
69
|
-
* New ov_read_filter() vorbisfile call allows filtering decoded
|
70
|
-
audio as floats before converting to integer samples.
|
71
|
-
* Fix an encoder bug with multichannel streams.
|
72
|
-
* Replaced RTP payload format draft with RFC 5215.
|
73
|
-
* Bare bones self test under 'make check'.
|
74
|
-
* Fix a problem encoding some streams between 14 and 28 kHz.
|
75
|
-
* Fix a numerical instability in the edge extrapolation filter.
|
76
|
-
* Build system improvements.
|
77
|
-
* Specification correction.
|
78
|
-
|
79
|
-
libvorbis 1.2.0 (2007-07-25) -- "Xiph.Org libVorbis I 20070622"
|
80
|
-
|
81
|
-
* new ov_fopen() convenience call that avoids the common
|
82
|
-
stdio conflicts with ov_open() and MSVC runtimes.
|
83
|
-
* libvorbisfile now handles multiplexed streams
|
84
|
-
* improve robustness to corrupt input streams
|
85
|
-
* fix a minor encoder bug
|
86
|
-
* updated RTP draft
|
87
|
-
* build system updates
|
88
|
-
* minor corrections to the specification
|
89
|
-
|
90
|
-
libvorbis 1.1.2 (2005-11-27) -- "Xiph.Org libVorbis I 20050304"
|
91
|
-
|
92
|
-
* fix a serious encoder bug with gcc 4 optimized builds
|
93
|
-
* documentation and spec fixes
|
94
|
-
* updated VS2003 and XCode builds
|
95
|
-
* new draft RTP encapsulation spec
|
96
|
-
|
97
|
-
libvorbis 1.1.1 (2005-06-27) -- "Xiph.Org libVorbis I 20050304"
|
98
|
-
|
99
|
-
* bug fix to the bitrate management encoder interface
|
100
|
-
* bug fix to properly set packetno field in the encoder
|
101
|
-
* new draft RTP encapsulation spec
|
102
|
-
* library API documentation improvements
|
103
|
-
|
104
|
-
libvorbis 1.1.0 (2004-09-22) -- "Xiph.Org libVorbis I 20040629"
|
105
|
-
|
106
|
-
* merges tuning improvements from Aoyumi's aoTuV with fixups
|
107
|
-
* new managed bitrate (CBR) mode support
|
108
|
-
* new vorbis_encoder_ctl() interface
|
109
|
-
* extensive documentation updates
|
110
|
-
* application/ogg mimetype is now official
|
111
|
-
* autotools cleanup from Thomas Vander Stichele
|
112
|
-
* SymbianOS build support from Colin Ward at CSIRO
|
113
|
-
* various bugfixes
|
114
|
-
* various packaging improvements
|
115
|
-
|
116
|
-
libvorbis 1.0.1 (2003-11-17) -- "Xiph.Org libVorbis I 20030909"
|
117
|
-
|
118
|
-
* numerous bug fixes
|
119
|
-
* specification corrections
|
120
|
-
* new crosslap and halfrate APIs for game use
|
121
|
-
* packaging and build updates
|
122
|
-
|
123
|
-
libvorbis 1.0.0 (2002-07-19) -- "Xiph.Org libVorbis I 20020717"
|
124
|
-
|
125
|
-
* first stable release
|
126
|
-
|
@@ -1,28 +0,0 @@
|
|
1
|
-
Copyright (c) 2002-2008 Xiph.org Foundation
|
2
|
-
|
3
|
-
Redistribution and use in source and binary forms, with or without
|
4
|
-
modification, are permitted provided that the following conditions
|
5
|
-
are met:
|
6
|
-
|
7
|
-
- Redistributions of source code must retain the above copyright
|
8
|
-
notice, this list of conditions and the following disclaimer.
|
9
|
-
|
10
|
-
- Redistributions in binary form must reproduce the above copyright
|
11
|
-
notice, this list of conditions and the following disclaimer in the
|
12
|
-
documentation and/or other materials provided with the distribution.
|
13
|
-
|
14
|
-
- Neither the name of the Xiph.org Foundation nor the names of its
|
15
|
-
contributors may be used to endorse or promote products derived from
|
16
|
-
this software without specific prior written permission.
|
17
|
-
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
19
|
-
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
20
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
21
|
-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION
|
22
|
-
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
23
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
24
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
25
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
26
|
-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
27
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
28
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -1,243 +0,0 @@
|
|
1
|
-
/********************************************************************
|
2
|
-
* *
|
3
|
-
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
4
|
-
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
5
|
-
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
6
|
-
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
7
|
-
* *
|
8
|
-
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
|
9
|
-
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
10
|
-
|
11
|
-
********************************************************************
|
12
|
-
|
13
|
-
function: libvorbis codec headers
|
14
|
-
last mod: $Id: codec.h 17021 2010-03-24 09:29:41Z xiphmont $
|
15
|
-
|
16
|
-
********************************************************************/
|
17
|
-
|
18
|
-
#ifndef _vorbis_codec_h_
|
19
|
-
#define _vorbis_codec_h_
|
20
|
-
|
21
|
-
#ifdef __cplusplus
|
22
|
-
extern "C"
|
23
|
-
{
|
24
|
-
#endif /* __cplusplus */
|
25
|
-
|
26
|
-
#include <ogg/ogg.h>
|
27
|
-
|
28
|
-
typedef struct vorbis_info{
|
29
|
-
int version;
|
30
|
-
int channels;
|
31
|
-
long rate;
|
32
|
-
|
33
|
-
/* The below bitrate declarations are *hints*.
|
34
|
-
Combinations of the three values carry the following implications:
|
35
|
-
|
36
|
-
all three set to the same value:
|
37
|
-
implies a fixed rate bitstream
|
38
|
-
only nominal set:
|
39
|
-
implies a VBR stream that averages the nominal bitrate. No hard
|
40
|
-
upper/lower limit
|
41
|
-
upper and or lower set:
|
42
|
-
implies a VBR bitstream that obeys the bitrate limits. nominal
|
43
|
-
may also be set to give a nominal rate.
|
44
|
-
none set:
|
45
|
-
the coder does not care to speculate.
|
46
|
-
*/
|
47
|
-
|
48
|
-
long bitrate_upper;
|
49
|
-
long bitrate_nominal;
|
50
|
-
long bitrate_lower;
|
51
|
-
long bitrate_window;
|
52
|
-
|
53
|
-
void *codec_setup;
|
54
|
-
} vorbis_info;
|
55
|
-
|
56
|
-
/* vorbis_dsp_state buffers the current vorbis audio
|
57
|
-
analysis/synthesis state. The DSP state belongs to a specific
|
58
|
-
logical bitstream ****************************************************/
|
59
|
-
typedef struct vorbis_dsp_state{
|
60
|
-
int analysisp;
|
61
|
-
vorbis_info *vi;
|
62
|
-
|
63
|
-
float **pcm;
|
64
|
-
float **pcmret;
|
65
|
-
int pcm_storage;
|
66
|
-
int pcm_current;
|
67
|
-
int pcm_returned;
|
68
|
-
|
69
|
-
int preextrapolate;
|
70
|
-
int eofflag;
|
71
|
-
|
72
|
-
long lW;
|
73
|
-
long W;
|
74
|
-
long nW;
|
75
|
-
long centerW;
|
76
|
-
|
77
|
-
ogg_int64_t granulepos;
|
78
|
-
ogg_int64_t sequence;
|
79
|
-
|
80
|
-
ogg_int64_t glue_bits;
|
81
|
-
ogg_int64_t time_bits;
|
82
|
-
ogg_int64_t floor_bits;
|
83
|
-
ogg_int64_t res_bits;
|
84
|
-
|
85
|
-
void *backend_state;
|
86
|
-
} vorbis_dsp_state;
|
87
|
-
|
88
|
-
typedef struct vorbis_block{
|
89
|
-
/* necessary stream state for linking to the framing abstraction */
|
90
|
-
float **pcm; /* this is a pointer into local storage */
|
91
|
-
oggpack_buffer opb;
|
92
|
-
|
93
|
-
long lW;
|
94
|
-
long W;
|
95
|
-
long nW;
|
96
|
-
int pcmend;
|
97
|
-
int mode;
|
98
|
-
|
99
|
-
int eofflag;
|
100
|
-
ogg_int64_t granulepos;
|
101
|
-
ogg_int64_t sequence;
|
102
|
-
vorbis_dsp_state *vd; /* For read-only access of configuration */
|
103
|
-
|
104
|
-
/* local storage to avoid remallocing; it's up to the mapping to
|
105
|
-
structure it */
|
106
|
-
void *localstore;
|
107
|
-
long localtop;
|
108
|
-
long localalloc;
|
109
|
-
long totaluse;
|
110
|
-
struct alloc_chain *reap;
|
111
|
-
|
112
|
-
/* bitmetrics for the frame */
|
113
|
-
long glue_bits;
|
114
|
-
long time_bits;
|
115
|
-
long floor_bits;
|
116
|
-
long res_bits;
|
117
|
-
|
118
|
-
void *internal;
|
119
|
-
|
120
|
-
} vorbis_block;
|
121
|
-
|
122
|
-
/* vorbis_block is a single block of data to be processed as part of
|
123
|
-
the analysis/synthesis stream; it belongs to a specific logical
|
124
|
-
bitstream, but is independent from other vorbis_blocks belonging to
|
125
|
-
that logical bitstream. *************************************************/
|
126
|
-
|
127
|
-
struct alloc_chain{
|
128
|
-
void *ptr;
|
129
|
-
struct alloc_chain *next;
|
130
|
-
};
|
131
|
-
|
132
|
-
/* vorbis_info contains all the setup information specific to the
|
133
|
-
specific compression/decompression mode in progress (eg,
|
134
|
-
psychoacoustic settings, channel setup, options, codebook
|
135
|
-
etc). vorbis_info and substructures are in backends.h.
|
136
|
-
*********************************************************************/
|
137
|
-
|
138
|
-
/* the comments are not part of vorbis_info so that vorbis_info can be
|
139
|
-
static storage */
|
140
|
-
typedef struct vorbis_comment{
|
141
|
-
/* unlimited user comment fields. libvorbis writes 'libvorbis'
|
142
|
-
whatever vendor is set to in encode */
|
143
|
-
char **user_comments;
|
144
|
-
int *comment_lengths;
|
145
|
-
int comments;
|
146
|
-
char *vendor;
|
147
|
-
|
148
|
-
} vorbis_comment;
|
149
|
-
|
150
|
-
|
151
|
-
/* libvorbis encodes in two abstraction layers; first we perform DSP
|
152
|
-
and produce a packet (see docs/analysis.txt). The packet is then
|
153
|
-
coded into a framed OggSquish bitstream by the second layer (see
|
154
|
-
docs/framing.txt). Decode is the reverse process; we sync/frame
|
155
|
-
the bitstream and extract individual packets, then decode the
|
156
|
-
packet back into PCM audio.
|
157
|
-
|
158
|
-
The extra framing/packetizing is used in streaming formats, such as
|
159
|
-
files. Over the net (such as with UDP), the framing and
|
160
|
-
packetization aren't necessary as they're provided by the transport
|
161
|
-
and the streaming layer is not used */
|
162
|
-
|
163
|
-
/* Vorbis PRIMITIVES: general ***************************************/
|
164
|
-
|
165
|
-
extern void vorbis_info_init(vorbis_info *vi);
|
166
|
-
extern void vorbis_info_clear(vorbis_info *vi);
|
167
|
-
extern int vorbis_info_blocksize(vorbis_info *vi,int zo);
|
168
|
-
extern void vorbis_comment_init(vorbis_comment *vc);
|
169
|
-
extern void vorbis_comment_add(vorbis_comment *vc, const char *comment);
|
170
|
-
extern void vorbis_comment_add_tag(vorbis_comment *vc,
|
171
|
-
const char *tag, const char *contents);
|
172
|
-
extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count);
|
173
|
-
extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag);
|
174
|
-
extern void vorbis_comment_clear(vorbis_comment *vc);
|
175
|
-
|
176
|
-
extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb);
|
177
|
-
extern int vorbis_block_clear(vorbis_block *vb);
|
178
|
-
extern void vorbis_dsp_clear(vorbis_dsp_state *v);
|
179
|
-
extern double vorbis_granule_time(vorbis_dsp_state *v,
|
180
|
-
ogg_int64_t granulepos);
|
181
|
-
|
182
|
-
extern const char *vorbis_version_string(void);
|
183
|
-
|
184
|
-
/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/
|
185
|
-
|
186
|
-
extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi);
|
187
|
-
extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op);
|
188
|
-
extern int vorbis_analysis_headerout(vorbis_dsp_state *v,
|
189
|
-
vorbis_comment *vc,
|
190
|
-
ogg_packet *op,
|
191
|
-
ogg_packet *op_comm,
|
192
|
-
ogg_packet *op_code);
|
193
|
-
extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals);
|
194
|
-
extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals);
|
195
|
-
extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb);
|
196
|
-
extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op);
|
197
|
-
|
198
|
-
extern int vorbis_bitrate_addblock(vorbis_block *vb);
|
199
|
-
extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,
|
200
|
-
ogg_packet *op);
|
201
|
-
|
202
|
-
/* Vorbis PRIMITIVES: synthesis layer *******************************/
|
203
|
-
extern int vorbis_synthesis_idheader(ogg_packet *op);
|
204
|
-
extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,
|
205
|
-
ogg_packet *op);
|
206
|
-
|
207
|
-
extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi);
|
208
|
-
extern int vorbis_synthesis_restart(vorbis_dsp_state *v);
|
209
|
-
extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op);
|
210
|
-
extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op);
|
211
|
-
extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb);
|
212
|
-
extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm);
|
213
|
-
extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm);
|
214
|
-
extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples);
|
215
|
-
extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op);
|
216
|
-
|
217
|
-
extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag);
|
218
|
-
extern int vorbis_synthesis_halfrate_p(vorbis_info *v);
|
219
|
-
|
220
|
-
/* Vorbis ERRORS and return codes ***********************************/
|
221
|
-
|
222
|
-
#define OV_FALSE -1
|
223
|
-
#define OV_EOF -2
|
224
|
-
#define OV_HOLE -3
|
225
|
-
|
226
|
-
#define OV_EREAD -128
|
227
|
-
#define OV_EFAULT -129
|
228
|
-
#define OV_EIMPL -130
|
229
|
-
#define OV_EINVAL -131
|
230
|
-
#define OV_ENOTVORBIS -132
|
231
|
-
#define OV_EBADHEADER -133
|
232
|
-
#define OV_EVERSION -134
|
233
|
-
#define OV_ENOTAUDIO -135
|
234
|
-
#define OV_EBADPACKET -136
|
235
|
-
#define OV_EBADLINK -137
|
236
|
-
#define OV_ENOSEEK -138
|
237
|
-
|
238
|
-
#ifdef __cplusplus
|
239
|
-
}
|
240
|
-
#endif /* __cplusplus */
|
241
|
-
|
242
|
-
#endif
|
243
|
-
|
@@ -1,436 +0,0 @@
|
|
1
|
-
/********************************************************************
|
2
|
-
* *
|
3
|
-
* THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
|
4
|
-
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
5
|
-
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
6
|
-
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
7
|
-
* *
|
8
|
-
* THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
|
9
|
-
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
10
|
-
* *
|
11
|
-
********************************************************************
|
12
|
-
|
13
|
-
function: vorbis encode-engine setup
|
14
|
-
last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $
|
15
|
-
|
16
|
-
********************************************************************/
|
17
|
-
|
18
|
-
/** \file
|
19
|
-
* Libvorbisenc is a convenient API for setting up an encoding
|
20
|
-
* environment using libvorbis. Libvorbisenc encapsulates the
|
21
|
-
* actions needed to set up the encoder properly.
|
22
|
-
*/
|
23
|
-
|
24
|
-
#ifndef _OV_ENC_H_
|
25
|
-
#define _OV_ENC_H_
|
26
|
-
|
27
|
-
#ifdef __cplusplus
|
28
|
-
extern "C"
|
29
|
-
{
|
30
|
-
#endif /* __cplusplus */
|
31
|
-
|
32
|
-
#include "codec.h"
|
33
|
-
|
34
|
-
/**
|
35
|
-
* This is the primary function within libvorbisenc for setting up managed
|
36
|
-
* bitrate modes.
|
37
|
-
*
|
38
|
-
* Before this function is called, the \ref vorbis_info
|
39
|
-
* struct should be initialized by using vorbis_info_init() from the libvorbis
|
40
|
-
* API. After encoding, vorbis_info_clear() should be called.
|
41
|
-
*
|
42
|
-
* The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set
|
43
|
-
* constraints for the encoded file. This function uses these settings to
|
44
|
-
* select the appropriate encoding mode and set it up.
|
45
|
-
*
|
46
|
-
* \param vi Pointer to an initialized \ref vorbis_info struct.
|
47
|
-
* \param channels The number of channels to be encoded.
|
48
|
-
* \param rate The sampling rate of the source audio.
|
49
|
-
* \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset.
|
50
|
-
* \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset.
|
51
|
-
* \param min_bitrate Desired minimum bitrate. -1 indicates unset.
|
52
|
-
*
|
53
|
-
* \return Zero for success, and negative values for failure.
|
54
|
-
*
|
55
|
-
* \retval 0 Success.
|
56
|
-
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
|
57
|
-
* \retval OV_EINVAL Invalid setup request, eg, out of range argument.
|
58
|
-
* \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request.
|
59
|
-
*/
|
60
|
-
extern int vorbis_encode_init(vorbis_info *vi,
|
61
|
-
long channels,
|
62
|
-
long rate,
|
63
|
-
|
64
|
-
long max_bitrate,
|
65
|
-
long nominal_bitrate,
|
66
|
-
long min_bitrate);
|
67
|
-
|
68
|
-
/**
|
69
|
-
* This function performs step-one of a three-step bitrate-managed encode
|
70
|
-
* setup. It functions similarly to the one-step setup performed by \ref
|
71
|
-
* vorbis_encode_init but allows an application to make further encode setup
|
72
|
-
* tweaks using \ref vorbis_encode_ctl before finally calling \ref
|
73
|
-
* vorbis_encode_setup_init to complete the setup process.
|
74
|
-
*
|
75
|
-
* Before this function is called, the \ref vorbis_info struct should be
|
76
|
-
* initialized by using vorbis_info_init() from the libvorbis API. After
|
77
|
-
* encoding, vorbis_info_clear() should be called.
|
78
|
-
*
|
79
|
-
* The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set
|
80
|
-
* constraints for the encoded file. This function uses these settings to
|
81
|
-
* select the appropriate encoding mode and set it up.
|
82
|
-
*
|
83
|
-
* \param vi Pointer to an initialized vorbis_info struct.
|
84
|
-
* \param channels The number of channels to be encoded.
|
85
|
-
* \param rate The sampling rate of the source audio.
|
86
|
-
* \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset.
|
87
|
-
* \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset.
|
88
|
-
* \param min_bitrate Desired minimum bitrate. -1 indicates unset.
|
89
|
-
*
|
90
|
-
* \return Zero for success, and negative for failure.
|
91
|
-
*
|
92
|
-
* \retval 0 Success
|
93
|
-
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
|
94
|
-
* \retval OV_EINVAL Invalid setup request, eg, out of range argument.
|
95
|
-
* \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request.
|
96
|
-
*/
|
97
|
-
extern int vorbis_encode_setup_managed(vorbis_info *vi,
|
98
|
-
long channels,
|
99
|
-
long rate,
|
100
|
-
|
101
|
-
long max_bitrate,
|
102
|
-
long nominal_bitrate,
|
103
|
-
long min_bitrate);
|
104
|
-
|
105
|
-
/**
|
106
|
-
* This function performs step-one of a three-step variable bitrate
|
107
|
-
* (quality-based) encode setup. It functions similarly to the one-step setup
|
108
|
-
* performed by \ref vorbis_encode_init_vbr() but allows an application to
|
109
|
-
* make further encode setup tweaks using \ref vorbis_encode_ctl() before
|
110
|
-
* finally calling \ref vorbis_encode_setup_init to complete the setup
|
111
|
-
* process.
|
112
|
-
*
|
113
|
-
* Before this function is called, the \ref vorbis_info struct should be
|
114
|
-
* initialized by using \ref vorbis_info_init() from the libvorbis API. After
|
115
|
-
* encoding, vorbis_info_clear() should be called.
|
116
|
-
*
|
117
|
-
* \param vi Pointer to an initialized vorbis_info struct.
|
118
|
-
* \param channels The number of channels to be encoded.
|
119
|
-
* \param rate The sampling rate of the source audio.
|
120
|
-
* \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi).
|
121
|
-
*
|
122
|
-
* \return Zero for success, and negative values for failure.
|
123
|
-
*
|
124
|
-
* \retval 0 Success
|
125
|
-
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
|
126
|
-
* \retval OV_EINVAL Invalid setup request, eg, out of range argument.
|
127
|
-
* \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request.
|
128
|
-
*/
|
129
|
-
extern int vorbis_encode_setup_vbr(vorbis_info *vi,
|
130
|
-
long channels,
|
131
|
-
long rate,
|
132
|
-
|
133
|
-
float quality
|
134
|
-
);
|
135
|
-
|
136
|
-
/**
|
137
|
-
* This is the primary function within libvorbisenc for setting up variable
|
138
|
-
* bitrate ("quality" based) modes.
|
139
|
-
*
|
140
|
-
*
|
141
|
-
* Before this function is called, the vorbis_info struct should be
|
142
|
-
* initialized by using vorbis_info_init() from the libvorbis API. After
|
143
|
-
* encoding, vorbis_info_clear() should be called.
|
144
|
-
*
|
145
|
-
* \param vi Pointer to an initialized vorbis_info struct.
|
146
|
-
* \param channels The number of channels to be encoded.
|
147
|
-
* \param rate The sampling rate of the source audio.
|
148
|
-
* \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi).
|
149
|
-
*
|
150
|
-
*
|
151
|
-
* \return Zero for success, or a negative number for failure.
|
152
|
-
*
|
153
|
-
* \retval 0 Success
|
154
|
-
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
|
155
|
-
* \retval OV_EINVAL Invalid setup request, eg, out of range argument.
|
156
|
-
* \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request.
|
157
|
-
*/
|
158
|
-
extern int vorbis_encode_init_vbr(vorbis_info *vi,
|
159
|
-
long channels,
|
160
|
-
long rate,
|
161
|
-
|
162
|
-
float base_quality
|
163
|
-
);
|
164
|
-
|
165
|
-
/**
|
166
|
-
* This function performs the last stage of three-step encoding setup, as
|
167
|
-
* described in the API overview under managed bitrate modes.
|
168
|
-
*
|
169
|
-
* Before this function is called, the \ref vorbis_info struct should be
|
170
|
-
* initialized by using vorbis_info_init() from the libvorbis API, one of
|
171
|
-
* \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to
|
172
|
-
* initialize the high-level encoding setup, and \ref vorbis_encode_ctl()
|
173
|
-
* called if necessary to make encoding setup changes.
|
174
|
-
* vorbis_encode_setup_init() finalizes the highlevel encoding structure into
|
175
|
-
* a complete encoding setup after which the application may make no further
|
176
|
-
* setup changes.
|
177
|
-
*
|
178
|
-
* After encoding, vorbis_info_clear() should be called.
|
179
|
-
*
|
180
|
-
* \param vi Pointer to an initialized \ref vorbis_info struct.
|
181
|
-
*
|
182
|
-
* \return Zero for success, and negative values for failure.
|
183
|
-
*
|
184
|
-
* \retval 0 Success.
|
185
|
-
* \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
|
186
|
-
*
|
187
|
-
* \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first
|
188
|
-
* calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to
|
189
|
-
* initialize the high-level encoding setup
|
190
|
-
*
|
191
|
-
*/
|
192
|
-
extern int vorbis_encode_setup_init(vorbis_info *vi);
|
193
|
-
|
194
|
-
/**
|
195
|
-
* This function implements a generic interface to miscellaneous encoder
|
196
|
-
* settings similar to the classic UNIX 'ioctl()' system call. Applications
|
197
|
-
* may use vorbis_encode_ctl() to query or set bitrate management or quality
|
198
|
-
* mode details by using one of several \e request arguments detailed below.
|
199
|
-
* vorbis_encode_ctl() must be called after one of
|
200
|
-
* vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used
|
201
|
-
* to modify settings, \ref vorbis_encode_ctl() must be called before \ref
|
202
|
-
* vorbis_encode_setup_init().
|
203
|
-
*
|
204
|
-
* \param vi Pointer to an initialized vorbis_info struct.
|
205
|
-
*
|
206
|
-
* \param number Specifies the desired action; See \ref encctlcodes "the list
|
207
|
-
* of available requests".
|
208
|
-
*
|
209
|
-
* \param arg void * pointing to a data structure matching the request
|
210
|
-
* argument.
|
211
|
-
*
|
212
|
-
* \retval 0 Success. Any further return information (such as the result of a
|
213
|
-
* query) is placed into the storage pointed to by *arg.
|
214
|
-
*
|
215
|
-
* \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after
|
216
|
-
* calling vorbis_encode_setup_init().
|
217
|
-
*
|
218
|
-
* \retval OV_EIMPL Unimplemented or unknown request
|
219
|
-
*/
|
220
|
-
extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
|
221
|
-
|
222
|
-
/**
|
223
|
-
* \deprecated This is a deprecated interface. Please use vorbis_encode_ctl()
|
224
|
-
* with the \ref ovectl_ratemanage2_arg struct and \ref
|
225
|
-
* OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code.
|
226
|
-
*
|
227
|
-
* The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl()
|
228
|
-
* and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref
|
229
|
-
* OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to
|
230
|
-
* query and modify specifics of the encoder's bitrate management
|
231
|
-
* configuration.
|
232
|
-
*/
|
233
|
-
struct ovectl_ratemanage_arg {
|
234
|
-
int management_active; /**< nonzero if bitrate management is active*/
|
235
|
-
/** hard lower limit (in kilobits per second) below which the stream bitrate
|
236
|
-
will never be allowed for any given bitrate_hard_window seconds of time.*/
|
237
|
-
long bitrate_hard_min;
|
238
|
-
/** hard upper limit (in kilobits per second) above which the stream bitrate
|
239
|
-
will never be allowed for any given bitrate_hard_window seconds of time.*/
|
240
|
-
long bitrate_hard_max;
|
241
|
-
/** the window period (in seconds) used to regulate the hard bitrate minimum
|
242
|
-
and maximum*/
|
243
|
-
double bitrate_hard_window;
|
244
|
-
/** soft lower limit (in kilobits per second) below which the average bitrate
|
245
|
-
tracker will start nudging the bitrate higher.*/
|
246
|
-
long bitrate_av_lo;
|
247
|
-
/** soft upper limit (in kilobits per second) above which the average bitrate
|
248
|
-
tracker will start nudging the bitrate lower.*/
|
249
|
-
long bitrate_av_hi;
|
250
|
-
/** the window period (in seconds) used to regulate the average bitrate
|
251
|
-
minimum and maximum.*/
|
252
|
-
double bitrate_av_window;
|
253
|
-
/** Regulates the relative centering of the average and hard windows; in
|
254
|
-
libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but
|
255
|
-
followed the average window regulation. In libvorbis 1.1 a bit-reservoir
|
256
|
-
interface replaces the old windowing interface; the older windowing
|
257
|
-
interface is simulated and this field has no effect.*/
|
258
|
-
double bitrate_av_window_center;
|
259
|
-
};
|
260
|
-
|
261
|
-
/**
|
262
|
-
* \name struct ovectl_ratemanage2_arg
|
263
|
-
*
|
264
|
-
* The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and
|
265
|
-
* the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to
|
266
|
-
* query and modify specifics of the encoder's bitrate management
|
267
|
-
* configuration.
|
268
|
-
*
|
269
|
-
*/
|
270
|
-
struct ovectl_ratemanage2_arg {
|
271
|
-
int management_active; /**< nonzero if bitrate management is active */
|
272
|
-
/** Lower allowed bitrate limit in kilobits per second */
|
273
|
-
long bitrate_limit_min_kbps;
|
274
|
-
/** Upper allowed bitrate limit in kilobits per second */
|
275
|
-
long bitrate_limit_max_kbps;
|
276
|
-
long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */
|
277
|
-
/** Regulates the bitrate reservoir's preferred fill level in a range from 0.0
|
278
|
-
* to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0
|
279
|
-
* buffers against future sudden drops in instantaneous bitrate. Default is
|
280
|
-
* 0.1
|
281
|
-
*/
|
282
|
-
double bitrate_limit_reservoir_bias;
|
283
|
-
/** Average bitrate setting in kilobits per second */
|
284
|
-
long bitrate_average_kbps;
|
285
|
-
/** Slew rate limit setting for average bitrate adjustment; sets the minimum
|
286
|
-
* time in seconds the bitrate tracker may swing from one extreme to the
|
287
|
-
* other when boosting or damping average bitrate.
|
288
|
-
*/
|
289
|
-
double bitrate_average_damping;
|
290
|
-
};
|
291
|
-
|
292
|
-
|
293
|
-
/**
|
294
|
-
* \name vorbis_encode_ctl() codes
|
295
|
-
*
|
296
|
-
* \anchor encctlcodes
|
297
|
-
*
|
298
|
-
* These values are passed as the \c number parameter of vorbis_encode_ctl().
|
299
|
-
* The type of the referent of that function's \c arg pointer depends on these
|
300
|
-
* codes.
|
301
|
-
*/
|
302
|
-
/*@{*/
|
303
|
-
|
304
|
-
/**
|
305
|
-
* Query the current encoder bitrate management setting.
|
306
|
-
*
|
307
|
-
*Argument: <tt>struct ovectl_ratemanage2_arg *</tt>
|
308
|
-
*
|
309
|
-
* Used to query the current encoder bitrate management setting. Also used to
|
310
|
-
* initialize fields of an ovectl_ratemanage2_arg structure for use with
|
311
|
-
* \ref OV_ECTL_RATEMANAGE2_SET.
|
312
|
-
*/
|
313
|
-
#define OV_ECTL_RATEMANAGE2_GET 0x14
|
314
|
-
|
315
|
-
/**
|
316
|
-
* Set the current encoder bitrate management settings.
|
317
|
-
*
|
318
|
-
* Argument: <tt>struct ovectl_ratemanage2_arg *</tt>
|
319
|
-
*
|
320
|
-
* Used to set the current encoder bitrate management settings to the values
|
321
|
-
* listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable
|
322
|
-
* bitrate management.
|
323
|
-
*/
|
324
|
-
#define OV_ECTL_RATEMANAGE2_SET 0x15
|
325
|
-
|
326
|
-
/**
|
327
|
-
* Returns the current encoder hard-lowpass setting (kHz) in the double
|
328
|
-
* pointed to by arg.
|
329
|
-
*
|
330
|
-
* Argument: <tt>double *</tt>
|
331
|
-
*/
|
332
|
-
#define OV_ECTL_LOWPASS_GET 0x20
|
333
|
-
|
334
|
-
/**
|
335
|
-
* Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid
|
336
|
-
* lowpass settings range from 2 to 99.
|
337
|
-
*
|
338
|
-
* Argument: <tt>double *</tt>
|
339
|
-
*/
|
340
|
-
#define OV_ECTL_LOWPASS_SET 0x21
|
341
|
-
|
342
|
-
/**
|
343
|
-
* Returns the current encoder impulse block setting in the double pointed
|
344
|
-
* to by arg.
|
345
|
-
*
|
346
|
-
* Argument: <tt>double *</tt>
|
347
|
-
*/
|
348
|
-
#define OV_ECTL_IBLOCK_GET 0x30
|
349
|
-
|
350
|
-
/**
|
351
|
-
* Sets the impulse block bias to the the value pointed to by arg.
|
352
|
-
*
|
353
|
-
* Argument: <tt>double *</tt>
|
354
|
-
*
|
355
|
-
* Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will
|
356
|
-
* direct to encoder to use more bits when incoding short blocks that contain
|
357
|
-
* strong impulses, thus improving the accuracy of impulse encoding.
|
358
|
-
*/
|
359
|
-
#define OV_ECTL_IBLOCK_SET 0x31
|
360
|
-
|
361
|
-
/**
|
362
|
-
* Returns the current encoder coupling setting in the int pointed
|
363
|
-
* to by arg.
|
364
|
-
*
|
365
|
-
* Argument: <tt>int *</tt>
|
366
|
-
*/
|
367
|
-
#define OV_ECTL_COUPLING_GET 0x40
|
368
|
-
|
369
|
-
/**
|
370
|
-
* Enables/disables channel coupling in multichannel encoding according to arg.
|
371
|
-
*
|
372
|
-
* Argument: <tt>int *</tt>
|
373
|
-
*
|
374
|
-
* Zero disables channel coupling for multichannel inputs, nonzer enables
|
375
|
-
* channel coupling. Setting has no effect on monophonic encoding or
|
376
|
-
* multichannel counts that do not offer coupling. At present, coupling is
|
377
|
-
* available for stereo and 5.1 encoding.
|
378
|
-
*/
|
379
|
-
#define OV_ECTL_COUPLING_SET 0x41
|
380
|
-
|
381
|
-
/* deprecated rate management supported only for compatibility */
|
382
|
-
|
383
|
-
/**
|
384
|
-
* Old interface to querying bitrate management settings.
|
385
|
-
*
|
386
|
-
* Deprecated after move to bit-reservoir style management in 1.1 rendered
|
387
|
-
* this interface partially obsolete.
|
388
|
-
|
389
|
-
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead.
|
390
|
-
*
|
391
|
-
* Argument: <tt>struct ovectl_ratemanage_arg *</tt>
|
392
|
-
*/
|
393
|
-
#define OV_ECTL_RATEMANAGE_GET 0x10
|
394
|
-
/**
|
395
|
-
* Old interface to modifying bitrate management settings.
|
396
|
-
*
|
397
|
-
* deprecated after move to bit-reservoir style management in 1.1 rendered
|
398
|
-
* this interface partially obsolete.
|
399
|
-
*
|
400
|
-
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
|
401
|
-
*
|
402
|
-
* Argument: <tt>struct ovectl_ratemanage_arg *</tt>
|
403
|
-
*/
|
404
|
-
#define OV_ECTL_RATEMANAGE_SET 0x11
|
405
|
-
/**
|
406
|
-
* Old interface to setting average-bitrate encoding mode.
|
407
|
-
*
|
408
|
-
* Deprecated after move to bit-reservoir style management in 1.1 rendered
|
409
|
-
* this interface partially obsolete.
|
410
|
-
*
|
411
|
-
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
|
412
|
-
*
|
413
|
-
* Argument: <tt>struct ovectl_ratemanage_arg *</tt>
|
414
|
-
*/
|
415
|
-
#define OV_ECTL_RATEMANAGE_AVG 0x12
|
416
|
-
/**
|
417
|
-
* Old interface to setting bounded-bitrate encoding modes.
|
418
|
-
*
|
419
|
-
* deprecated after move to bit-reservoir style management in 1.1 rendered
|
420
|
-
* this interface partially obsolete.
|
421
|
-
*
|
422
|
-
* \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
|
423
|
-
*
|
424
|
-
* Argument: <tt>struct ovectl_ratemanage_arg *</tt>
|
425
|
-
*/
|
426
|
-
#define OV_ECTL_RATEMANAGE_HARD 0x13
|
427
|
-
|
428
|
-
/*@}*/
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
#ifdef __cplusplus
|
433
|
-
}
|
434
|
-
#endif /* __cplusplus */
|
435
|
-
|
436
|
-
#endif
|