Home | History | Annotate | Download | only in vorbisenc
      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/vorbisenc.h";</i></p>
     19 
     20 <p>This function implements a generic interface to miscellaneous
     21 encoder settings similar to the clasasic UNIX 'ioctl()' system call.
     22 Applications may use vorbis_encode_ctl() to query or set bitrate
     23 management or quality mode details by using one of several
     24 <i>request</i> arguments detailed below.  Vorbis_encode_ctl() must be
     25 called after one of <a
     26 href="vorbis_encode_setup_managed.html">vorbis_encode_setup_managed()</a>
     27 or <a
     28 href="vorbis_encode_setup_vbr.html">vorbis_encode_setup_vbr()</a>.
     29 When used to modify settings, vorbis_encode_ctl() must be called
     30 before <a
     31 href="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>
     39 extern 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>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
     62 ovectl_ratemanage2_arg *</a></b><br> Used to query the current
     63 encoder bitrate management setting.  Also used to initialize fields of
     64 an ovectl_ratemanage2_arg structure for use with
     65 OV_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
     69 ovectl_ratemanage2_arg *</a></b><br> Used to set the current
     70 encoder bitrate management settings to the values listed in the
     71 ovectl_ratemanage2_arg.  Passing a NULL pointer will disable bitrate
     72 management.
     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
     77 setting (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
     87 block 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
     90 the impulse block bias to the the value pointed to by arg; valid range
     91 is -15.0 to 0.0 [default].  A negative impulse block bias will direct
     92 to encoder to use more bits when incoding short blocks that contain
     93 strong impulses, thus improving the accuracy of impulse encoding.</dd><p>
     94 
     95 <dt><i>OV_ECTL_COUPLING_GET</i></dt>
     96 <dd><b>Argument: int *</b><br>
     97 Returns the current encoder coupling enabled/disabled 
     98 setting in the int pointed to by arg.
     99 </dd><p>
    100 
    101 <dt><i>OV_ECTL_COUPLING_SET</i></dt> 
    102 <dd><b>Argument: int *</b><br>
    103 Enables/disables channel coupling in multichannel encoding according to arg.
    104 *arg of zero disables all channel coupling, nonzero allows the encoder to use
    105 coupling if a coupled mode is available for the input.  At present, coupling 
    106 is available for stereo and 5.1 input modes.
    107 </dd><p>
    108 
    109 <dt><i>OV_ECTL_RATEMANAGE_GET [deprecated]</i></dt>
    110 <dd>
    111 
    112 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
    113 ovectl_ratemanage_arg *</a></b><br> Old interface to querying bitrate
    114 management settings; deprecated after move to bit-reservoir style
    115 management in 1.1 rendered this interface partially obsolete.  Please
    116 use OV_ECTL_RATEMANGE2_GET instead.
    117 
    118 </dd><p>
    119 
    120 <dt><i>OV_ECTL_RATEMANAGE_SET [deprecated]</i></dt>
    121 <dd>
    122 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
    123 ovectl_ratemanage_arg *</a></b><br> Old interface to modifying bitrate
    124 management settings; deprecated after move to bit-reservoir style
    125 management in 1.1 rendered this interface partially obsolete.  Please
    126 use OV_ECTL_RATEMANGE2_SET instead.
    127 </dd><p>
    128 
    129 <dt><i>OV_ECTL_RATEMANAGE_AVG [deprecated]</i></dt>
    130 <dd>
    131 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
    132 ovectl_ratemanage_arg *</a></b><br> Old interface to setting
    133 average-bitrate encoding mode; deprecated after move to bit-reservoir
    134 style management in 1.1 rendered this interface partially obsolete.
    135 Please use OV_ECTL_RATEMANGE2_SET instead.  
    136 </dd><p>
    137 
    138 <dt><i>OV_ECTL_RATEMANAGE_HARD [deprecated]</i></dt>
    139 <dd>
    140 <b>Argument: <a href="ovectl_ratemanage_arg.html">struct
    141 ovectl_ratemanage_arg *</a></b><br> Old interface to setting
    142 bounded-bitrate encoding modes; deprecated after move to bit-reservoir
    143 style management in 1.1 rendered this interface partially obsolete.
    144 Please use OV_ECTL_RATEMANGE2_SET instead.  
    145 </dd><p>
    146 
    147 
    148 </dl>
    149 
    150 
    151 <h3>Return Values</h3> vorbis_encode_ctl() returns zero on success,
    152 placing any further return information (such as the result of a query)
    153 into the storage pointed to by <i>*arg</i>.  On error,
    154 vorbis_encode_ctl() may return one of the following error codes:
    155 
    156 <dl>
    157 
    158 <dt>OV_EINVAL</dt><dd>Invalid argument, or an attempt to modify a
    159 setting after calling <a
    160 href="vorbis_encode_setup_init.html">vorbis_encode_setup_init()</a>.</dd><p>
    161 
    162 <dt>OV_EIMPL</dt><dd>Unimplemented or unknown request</dd><p>
    163 
    164 </dl>
    165 
    166 <p>
    167 
    168 <br><br>
    169 <hr noshade>
    170 <table border=0 width=100%>
    171 <tr valign=top>
    172 <td><p class=tiny>copyright &copy; 2004 xiph.org</p></td>
    173 <td align=right><p class=tiny><a href="http://www.xiph.org/ogg/vorbis/index.html">Ogg Vorbis</a><br><a href="mailto:team (a] vorbis.org">team (a] vorbis.org</a></p></td>
    174 </tr><tr>
    175 <td><p class=tiny>libvorbisenc documentation</p></td>
    176 <td align=right><p class=tiny>libvorbisenc release 1.1 - 20040709</p></td>
    177 </tr>
    178 </table>
    179 
    180 
    181 </body>
    182 
    183 </html>
    184