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