Chris@1
|
1 <html>
|
Chris@1
|
2
|
Chris@1
|
3 <head>
|
Chris@1
|
4 <title>libvorbisenc - function - vorbis_encode_ctl</title>
|
Chris@1
|
5 <link rel=stylesheet href="style.css" type="text/css">
|
Chris@1
|
6 </head>
|
Chris@1
|
7
|
Chris@1
|
8 <body bgcolor=white text=black link="#5555ff" alink="#5555ff" vlink="#5555ff">
|
Chris@1
|
9 <table border=0 width=100%>
|
Chris@1
|
10 <tr>
|
Chris@1
|
11 <td><p class=tiny>libvorbisenc documentation</p></td>
|
Chris@1
|
12 <td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
|
Chris@1
|
13 </tr>
|
Chris@1
|
14 </table>
|
Chris@1
|
15
|
Chris@1
|
16 <h1>vorbis_encode_ctl</h1>
|
Chris@1
|
17
|
Chris@1
|
18 <p><i>declared in "vorbis/vorbisenc.h";</i></p>
|
Chris@1
|
19
|
Chris@1
|
20 <p>This function implements a generic interface to miscellaneous
|
Chris@1
|
21 encoder settings similar to the clasasic UNIX 'ioctl()' system call.
|
Chris@1
|
22 Applications may use vorbis_encode_ctl() to query or set bitrate
|
Chris@1
|
23 management or quality mode details by using one of several
|
Chris@1
|
24 <i>request</i> arguments detailed below. Vorbis_encode_ctl() must be
|
Chris@1
|
25 called after one of <a
|
Chris@1
|
26 href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
|
Chris@1
|
27 or <a
|
Chris@1
|
28 href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a>.
|
Chris@1
|
29 When used to modify settings, vorbis_encode_ctl() must be called
|
Chris@1
|
30 before <a
|
Chris@1
|
31 href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a>.
|
Chris@1
|
32
|
Chris@1
|
33 <p>
|
Chris@1
|
34 <br><br>
|
Chris@1
|
35 <table border=0 color=black cellspacing=0 cellpadding=7>
|
Chris@1
|
36 <tr bgcolor=#cccccc>
|
Chris@1
|
37 <td>
|
Chris@1
|
38 <pre><b>
|
Chris@1
|
39 extern int vorbis_encode_ctl(vorbis_info *vi,int request,void *arg);
|
Chris@1
|
40
|
Chris@1
|
41 </b></pre>
|
Chris@1
|
42 </td>
|
Chris@1
|
43 </tr>
|
Chris@1
|
44 </table>
|
Chris@1
|
45
|
Chris@1
|
46 <h3>Parameters</h3>
|
Chris@1
|
47 <dl>
|
Chris@1
|
48 <dt><i>vi</i></dt>
|
Chris@1
|
49 <dd>Pointer to an initialized <a href="../libvorbis/vorbis_info.html">vorbis_info</a> struct.</dd><p>
|
Chris@1
|
50 <dt><i>request</i></dt>
|
Chris@1
|
51 <dd>Specifies the desired action; possible request fields are detailed below.</dd><p>
|
Chris@1
|
52 <dt><i>arg</i></dt>
|
Chris@1
|
53 <dd>void * pointing to a data structure matching the request argument.</dd><p>
|
Chris@1
|
54 </dl><p>
|
Chris@1
|
55
|
Chris@1
|
56 <h3>Requests</h3>
|
Chris@1
|
57 <dl>
|
Chris@1
|
58
|
Chris@1
|
59 <dt><i>OV_ECTL_RATEMANAGE2_GET</i></dt>
|
Chris@1
|
60
|
Chris@1
|
61 <dd><b>Argument: <a href="ovectl_ratemanage2_arg.html">struct
|
Chris@1
|
62 ovectl_ratemanage2_arg *</a></b><br> Used to query the current
|
Chris@1
|
63 encoder bitrate management setting. Also used to initialize fields of
|
Chris@1
|
64 an ovectl_ratemanage2_arg structure for use with
|
Chris@1
|
65 OV_ECTL_RATEMANAGE2_SET.</dd><p>
|
Chris@1
|
66
|
Chris@1
|
67 <dt><i>OV_ECTL_RATEMANAGE2_SET</i></dt>
|
Chris@1
|
68 <dd><b>Argument: <a href="ovectl_ratemanage2_arg.html">struct
|
Chris@1
|
69 ovectl_ratemanage2_arg *</a></b><br> Used to set the current
|
Chris@1
|
70 encoder bitrate management settings to the values listed in the
|
Chris@1
|
71 ovectl_ratemanage2_arg. Passing a NULL pointer will disable bitrate
|
Chris@1
|
72 management.
|
Chris@1
|
73 </dd><p>
|
Chris@1
|
74
|
Chris@1
|
75 <dt><i>OV_ECTL_LOWPASS_GET</i></dt>
|
Chris@1
|
76 <dd><b>Argument: double *</b><br> Returns the current encoder hard-lowpass
|
Chris@1
|
77 setting (kHz) in the double pointed to by arg.
|
Chris@1
|
78 </dd><p>
|
Chris@1
|
79
|
Chris@1
|
80 <dt><i>OV_ECTL_LOWPASS_SET</i></dt>
|
Chris@1
|
81 <dd><b>Argument: double *</b><br> Sets the encoder hard-lowpass to the value
|
Chris@1
|
82 (kHz) pointed to by arg. Valid lowpass settings range from 2 to 99.
|
Chris@1
|
83 </dd><p>
|
Chris@1
|
84
|
Chris@1
|
85 <dt><i>OV_ECTL_IBLOCK_GET</i></dt>
|
Chris@1
|
86 <dd><b>Argument: double *</b><br> Returns the current encoder impulse
|
Chris@1
|
87 block setting in the double pointed to by arg.</dd><p>
|
Chris@1
|
88
|
Chris@1
|
89 <dt><i>OV_ECTL_IBLOCK_SET</i></dt> <dd><b>Argument: double *</b><br> Sets
|
Chris@1
|
90 the impulse block bias to the the value pointed to by arg; valid range
|
Chris@1
|
91 is -15.0 to 0.0 [default]. A negative impulse block bias will direct
|
Chris@1
|
92 to encoder to use more bits when incoding short blocks that contain
|
Chris@1
|
93 strong impulses, thus improving the accuracy of impulse encoding.</dd><p>
|
Chris@1
|
94
|
Chris@1
|
95 <dt><i>OV_ECTL_COUPLING_GET</i></dt>
|
Chris@1
|
96 <dd><b>Argument: int *</b><br>
|
Chris@1
|
97 Returns the current encoder coupling enabled/disabled
|
Chris@1
|
98 setting in the int pointed to by arg.
|
Chris@1
|
99 </dd><p>
|
Chris@1
|
100
|
Chris@1
|
101 <dt><i>OV_ECTL_COUPLING_SET</i></dt>
|
Chris@1
|
102 <dd><b>Argument: int *</b><br>
|
Chris@1
|
103 Enables/disables channel coupling in multichannel encoding according to arg.
|
Chris@1
|
104 *arg of zero disables all channel coupling, nonzero allows the encoder to use
|
Chris@1
|
105 coupling if a coupled mode is available for the input. At present, coupling
|
Chris@1
|
106 is available for stereo and 5.1 input modes.
|
Chris@1
|
107 </dd><p>
|
Chris@1
|
108
|
Chris@1
|
109 <dt><i>OV_ECTL_RATEMANAGE_GET [deprecated]</i></dt>
|
Chris@1
|
110 <dd>
|
Chris@1
|
111
|
Chris@1
|
112 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
|
Chris@1
|
113 ovectl_ratemanage_arg *</a></b><br> Old interface to querying bitrate
|
Chris@1
|
114 management settings; deprecated after move to bit-reservoir style
|
Chris@1
|
115 management in 1.1 rendered this interface partially obsolete. Please
|
Chris@1
|
116 use OV_ECTL_RATEMANGE2_GET instead.
|
Chris@1
|
117
|
Chris@1
|
118 </dd><p>
|
Chris@1
|
119
|
Chris@1
|
120 <dt><i>OV_ECTL_RATEMANAGE_SET [deprecated]</i></dt>
|
Chris@1
|
121 <dd>
|
Chris@1
|
122 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
|
Chris@1
|
123 ovectl_ratemanage_arg *</a></b><br> Old interface to modifying bitrate
|
Chris@1
|
124 management settings; deprecated after move to bit-reservoir style
|
Chris@1
|
125 management in 1.1 rendered this interface partially obsolete. Please
|
Chris@1
|
126 use OV_ECTL_RATEMANGE2_SET instead.
|
Chris@1
|
127 </dd><p>
|
Chris@1
|
128
|
Chris@1
|
129 <dt><i>OV_ECTL_RATEMANAGE_AVG [deprecated]</i></dt>
|
Chris@1
|
130 <dd>
|
Chris@1
|
131 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
|
Chris@1
|
132 ovectl_ratemanage_arg *</a></b><br> Old interface to setting
|
Chris@1
|
133 average-bitrate encoding mode; deprecated after move to bit-reservoir
|
Chris@1
|
134 style management in 1.1 rendered this interface partially obsolete.
|
Chris@1
|
135 Please use OV_ECTL_RATEMANGE2_SET instead.
|
Chris@1
|
136 </dd><p>
|
Chris@1
|
137
|
Chris@1
|
138 <dt><i>OV_ECTL_RATEMANAGE_HARD [deprecated]</i></dt>
|
Chris@1
|
139 <dd>
|
Chris@1
|
140 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
|
Chris@1
|
141 ovectl_ratemanage_arg *</a></b><br> Old interface to setting
|
Chris@1
|
142 bounded-bitrate encoding modes; deprecated after move to bit-reservoir
|
Chris@1
|
143 style management in 1.1 rendered this interface partially obsolete.
|
Chris@1
|
144 Please use OV_ECTL_RATEMANGE2_SET instead.
|
Chris@1
|
145 </dd><p>
|
Chris@1
|
146
|
Chris@1
|
147
|
Chris@1
|
148 </dl>
|
Chris@1
|
149
|
Chris@1
|
150
|
Chris@1
|
151 <h3>Return Values</h3> vorbis_encode_ctl() returns zero on success,
|
Chris@1
|
152 placing any further return information (such as the result of a query)
|
Chris@1
|
153 into the storage pointed to by <i>*arg</i>. On error,
|
Chris@1
|
154 vorbis_encode_ctl() may return one of the following error codes:
|
Chris@1
|
155
|
Chris@1
|
156 <dl>
|
Chris@1
|
157
|
Chris@1
|
158 <dt>OV_EINVAL</dt><dd>Invalid argument, or an attempt to modify a
|
Chris@1
|
159 setting after calling <a
|
Chris@1
|
160 href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a>.</dd><p>
|
Chris@1
|
161
|
Chris@1
|
162 <dt>OV_EIMPL</dt><dd>Unimplemented or unknown request</dd><p>
|
Chris@1
|
163
|
Chris@1
|
164 </dl>
|
Chris@1
|
165
|
Chris@1
|
166 <p>
|
Chris@1
|
167
|
Chris@1
|
168 <br><br>
|
Chris@1
|
169 <hr noshade>
|
Chris@1
|
170 <table border=0 width=100%>
|
Chris@1
|
171 <tr valign=top>
|
Chris@1
|
172 <td><p class=tiny>copyright © 2000-2010 Xiph.Org</p></td>
|
Chris@1
|
173 <td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a></p></td>
|
Chris@1
|
174 </tr><tr>
|
Chris@1
|
175 <td><p class=tiny>libvorbisenc documentation</p></td>
|
Chris@1
|
176 <td align=right><p class=tiny>libvorbisenc version 1.3.2 - 20101101</p></td>
|
Chris@1
|
177 </tr>
|
Chris@1
|
178 </table>
|
Chris@1
|
179
|
Chris@1
|
180
|
Chris@1
|
181 </body>
|
Chris@1
|
182
|
Chris@1
|
183 </html>
|