vrshoot

annotate libs/vorbis/vorbisenc.h @ 2:334d17aed7de

visual studio project files
author John Tsiombikas <nuclear@member.fsf.org>
date Sun, 02 Feb 2014 18:36:38 +0200
parents
children
rev   line source
nuclear@0 1 /********************************************************************
nuclear@0 2 * *
nuclear@0 3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
nuclear@0 4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
nuclear@0 5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
nuclear@0 6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
nuclear@0 7 * *
nuclear@0 8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
nuclear@0 9 * by the Xiph.Org Foundation http://www.xiph.org/ *
nuclear@0 10 * *
nuclear@0 11 ********************************************************************
nuclear@0 12
nuclear@0 13 function: vorbis encode-engine setup
nuclear@0 14 last mod: $Id: vorbisenc.h 17021 2010-03-24 09:29:41Z xiphmont $
nuclear@0 15
nuclear@0 16 ********************************************************************/
nuclear@0 17
nuclear@0 18 /** \file
nuclear@0 19 * Libvorbisenc is a convenient API for setting up an encoding
nuclear@0 20 * environment using libvorbis. Libvorbisenc encapsulates the
nuclear@0 21 * actions needed to set up the encoder properly.
nuclear@0 22 */
nuclear@0 23
nuclear@0 24 #ifndef _OV_ENC_H_
nuclear@0 25 #define _OV_ENC_H_
nuclear@0 26
nuclear@0 27 #ifdef __cplusplus
nuclear@0 28 extern "C"
nuclear@0 29 {
nuclear@0 30 #endif /* __cplusplus */
nuclear@0 31
nuclear@0 32 #include "codec.h"
nuclear@0 33
nuclear@0 34 /**
nuclear@0 35 * This is the primary function within libvorbisenc for setting up managed
nuclear@0 36 * bitrate modes.
nuclear@0 37 *
nuclear@0 38 * Before this function is called, the \ref vorbis_info
nuclear@0 39 * struct should be initialized by using vorbis_info_init() from the libvorbis
nuclear@0 40 * API. After encoding, vorbis_info_clear() should be called.
nuclear@0 41 *
nuclear@0 42 * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set
nuclear@0 43 * constraints for the encoded file. This function uses these settings to
nuclear@0 44 * select the appropriate encoding mode and set it up.
nuclear@0 45 *
nuclear@0 46 * \param vi Pointer to an initialized \ref vorbis_info struct.
nuclear@0 47 * \param channels The number of channels to be encoded.
nuclear@0 48 * \param rate The sampling rate of the source audio.
nuclear@0 49 * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset.
nuclear@0 50 * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset.
nuclear@0 51 * \param min_bitrate Desired minimum bitrate. -1 indicates unset.
nuclear@0 52 *
nuclear@0 53 * \return Zero for success, and negative values for failure.
nuclear@0 54 *
nuclear@0 55 * \retval 0 Success.
nuclear@0 56 * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
nuclear@0 57 * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
nuclear@0 58 * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request.
nuclear@0 59 */
nuclear@0 60 extern int vorbis_encode_init(vorbis_info *vi,
nuclear@0 61 long channels,
nuclear@0 62 long rate,
nuclear@0 63
nuclear@0 64 long max_bitrate,
nuclear@0 65 long nominal_bitrate,
nuclear@0 66 long min_bitrate);
nuclear@0 67
nuclear@0 68 /**
nuclear@0 69 * This function performs step-one of a three-step bitrate-managed encode
nuclear@0 70 * setup. It functions similarly to the one-step setup performed by \ref
nuclear@0 71 * vorbis_encode_init but allows an application to make further encode setup
nuclear@0 72 * tweaks using \ref vorbis_encode_ctl before finally calling \ref
nuclear@0 73 * vorbis_encode_setup_init to complete the setup process.
nuclear@0 74 *
nuclear@0 75 * Before this function is called, the \ref vorbis_info struct should be
nuclear@0 76 * initialized by using vorbis_info_init() from the libvorbis API. After
nuclear@0 77 * encoding, vorbis_info_clear() should be called.
nuclear@0 78 *
nuclear@0 79 * The max_bitrate, nominal_bitrate, and min_bitrate settings are used to set
nuclear@0 80 * constraints for the encoded file. This function uses these settings to
nuclear@0 81 * select the appropriate encoding mode and set it up.
nuclear@0 82 *
nuclear@0 83 * \param vi Pointer to an initialized vorbis_info struct.
nuclear@0 84 * \param channels The number of channels to be encoded.
nuclear@0 85 * \param rate The sampling rate of the source audio.
nuclear@0 86 * \param max_bitrate Desired maximum bitrate (limit). -1 indicates unset.
nuclear@0 87 * \param nominal_bitrate Desired average, or central, bitrate. -1 indicates unset.
nuclear@0 88 * \param min_bitrate Desired minimum bitrate. -1 indicates unset.
nuclear@0 89 *
nuclear@0 90 * \return Zero for success, and negative for failure.
nuclear@0 91 *
nuclear@0 92 * \retval 0 Success
nuclear@0 93 * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
nuclear@0 94 * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
nuclear@0 95 * \retval OV_EIMPL Unimplemented mode; unable to comply with bitrate request.
nuclear@0 96 */
nuclear@0 97 extern int vorbis_encode_setup_managed(vorbis_info *vi,
nuclear@0 98 long channels,
nuclear@0 99 long rate,
nuclear@0 100
nuclear@0 101 long max_bitrate,
nuclear@0 102 long nominal_bitrate,
nuclear@0 103 long min_bitrate);
nuclear@0 104
nuclear@0 105 /**
nuclear@0 106 * This function performs step-one of a three-step variable bitrate
nuclear@0 107 * (quality-based) encode setup. It functions similarly to the one-step setup
nuclear@0 108 * performed by \ref vorbis_encode_init_vbr() but allows an application to
nuclear@0 109 * make further encode setup tweaks using \ref vorbis_encode_ctl() before
nuclear@0 110 * finally calling \ref vorbis_encode_setup_init to complete the setup
nuclear@0 111 * process.
nuclear@0 112 *
nuclear@0 113 * Before this function is called, the \ref vorbis_info struct should be
nuclear@0 114 * initialized by using \ref vorbis_info_init() from the libvorbis API. After
nuclear@0 115 * encoding, vorbis_info_clear() should be called.
nuclear@0 116 *
nuclear@0 117 * \param vi Pointer to an initialized vorbis_info struct.
nuclear@0 118 * \param channels The number of channels to be encoded.
nuclear@0 119 * \param rate The sampling rate of the source audio.
nuclear@0 120 * \param quality Desired quality level, currently from -0.1 to 1.0 (lo to hi).
nuclear@0 121 *
nuclear@0 122 * \return Zero for success, and negative values for failure.
nuclear@0 123 *
nuclear@0 124 * \retval 0 Success
nuclear@0 125 * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
nuclear@0 126 * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
nuclear@0 127 * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request.
nuclear@0 128 */
nuclear@0 129 extern int vorbis_encode_setup_vbr(vorbis_info *vi,
nuclear@0 130 long channels,
nuclear@0 131 long rate,
nuclear@0 132
nuclear@0 133 float quality
nuclear@0 134 );
nuclear@0 135
nuclear@0 136 /**
nuclear@0 137 * This is the primary function within libvorbisenc for setting up variable
nuclear@0 138 * bitrate ("quality" based) modes.
nuclear@0 139 *
nuclear@0 140 *
nuclear@0 141 * Before this function is called, the vorbis_info struct should be
nuclear@0 142 * initialized by using vorbis_info_init() from the libvorbis API. After
nuclear@0 143 * encoding, vorbis_info_clear() should be called.
nuclear@0 144 *
nuclear@0 145 * \param vi Pointer to an initialized vorbis_info struct.
nuclear@0 146 * \param channels The number of channels to be encoded.
nuclear@0 147 * \param rate The sampling rate of the source audio.
nuclear@0 148 * \param base_quality Desired quality level, currently from -0.1 to 1.0 (lo to hi).
nuclear@0 149 *
nuclear@0 150 *
nuclear@0 151 * \return Zero for success, or a negative number for failure.
nuclear@0 152 *
nuclear@0 153 * \retval 0 Success
nuclear@0 154 * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
nuclear@0 155 * \retval OV_EINVAL Invalid setup request, eg, out of range argument.
nuclear@0 156 * \retval OV_EIMPL Unimplemented mode; unable to comply with quality level request.
nuclear@0 157 */
nuclear@0 158 extern int vorbis_encode_init_vbr(vorbis_info *vi,
nuclear@0 159 long channels,
nuclear@0 160 long rate,
nuclear@0 161
nuclear@0 162 float base_quality
nuclear@0 163 );
nuclear@0 164
nuclear@0 165 /**
nuclear@0 166 * This function performs the last stage of three-step encoding setup, as
nuclear@0 167 * described in the API overview under managed bitrate modes.
nuclear@0 168 *
nuclear@0 169 * Before this function is called, the \ref vorbis_info struct should be
nuclear@0 170 * initialized by using vorbis_info_init() from the libvorbis API, one of
nuclear@0 171 * \ref vorbis_encode_setup_managed() or \ref vorbis_encode_setup_vbr() called to
nuclear@0 172 * initialize the high-level encoding setup, and \ref vorbis_encode_ctl()
nuclear@0 173 * called if necessary to make encoding setup changes.
nuclear@0 174 * vorbis_encode_setup_init() finalizes the highlevel encoding structure into
nuclear@0 175 * a complete encoding setup after which the application may make no further
nuclear@0 176 * setup changes.
nuclear@0 177 *
nuclear@0 178 * After encoding, vorbis_info_clear() should be called.
nuclear@0 179 *
nuclear@0 180 * \param vi Pointer to an initialized \ref vorbis_info struct.
nuclear@0 181 *
nuclear@0 182 * \return Zero for success, and negative values for failure.
nuclear@0 183 *
nuclear@0 184 * \retval 0 Success.
nuclear@0 185 * \retval OV_EFAULT Internal logic fault; indicates a bug or heap/stack corruption.
nuclear@0 186 *
nuclear@0 187 * \retval OV_EINVAL Attempt to use vorbis_encode_setup_init() without first
nuclear@0 188 * calling one of vorbis_encode_setup_managed() or vorbis_encode_setup_vbr() to
nuclear@0 189 * initialize the high-level encoding setup
nuclear@0 190 *
nuclear@0 191 */
nuclear@0 192 extern int vorbis_encode_setup_init(vorbis_info *vi);
nuclear@0 193
nuclear@0 194 /**
nuclear@0 195 * This function implements a generic interface to miscellaneous encoder
nuclear@0 196 * settings similar to the classic UNIX 'ioctl()' system call. Applications
nuclear@0 197 * may use vorbis_encode_ctl() to query or set bitrate management or quality
nuclear@0 198 * mode details by using one of several \e request arguments detailed below.
nuclear@0 199 * vorbis_encode_ctl() must be called after one of
nuclear@0 200 * vorbis_encode_setup_managed() or vorbis_encode_setup_vbr(). When used
nuclear@0 201 * to modify settings, \ref vorbis_encode_ctl() must be called before \ref
nuclear@0 202 * vorbis_encode_setup_init().
nuclear@0 203 *
nuclear@0 204 * \param vi Pointer to an initialized vorbis_info struct.
nuclear@0 205 *
nuclear@0 206 * \param number Specifies the desired action; See \ref encctlcodes "the list
nuclear@0 207 * of available requests".
nuclear@0 208 *
nuclear@0 209 * \param arg void * pointing to a data structure matching the request
nuclear@0 210 * argument.
nuclear@0 211 *
nuclear@0 212 * \retval 0 Success. Any further return information (such as the result of a
nuclear@0 213 * query) is placed into the storage pointed to by *arg.
nuclear@0 214 *
nuclear@0 215 * \retval OV_EINVAL Invalid argument, or an attempt to modify a setting after
nuclear@0 216 * calling vorbis_encode_setup_init().
nuclear@0 217 *
nuclear@0 218 * \retval OV_EIMPL Unimplemented or unknown request
nuclear@0 219 */
nuclear@0 220 extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
nuclear@0 221
nuclear@0 222 /**
nuclear@0 223 * \deprecated This is a deprecated interface. Please use vorbis_encode_ctl()
nuclear@0 224 * with the \ref ovectl_ratemanage2_arg struct and \ref
nuclear@0 225 * OV_ECTL_RATEMANAGE2_GET and \ref OV_ECTL_RATEMANAGE2_SET calls in new code.
nuclear@0 226 *
nuclear@0 227 * The \ref ovectl_ratemanage_arg structure is used with vorbis_encode_ctl()
nuclear@0 228 * and the \ref OV_ECTL_RATEMANAGE_GET, \ref OV_ECTL_RATEMANAGE_SET, \ref
nuclear@0 229 * OV_ECTL_RATEMANAGE_AVG, \ref OV_ECTL_RATEMANAGE_HARD calls in order to
nuclear@0 230 * query and modify specifics of the encoder's bitrate management
nuclear@0 231 * configuration.
nuclear@0 232 */
nuclear@0 233 struct ovectl_ratemanage_arg {
nuclear@0 234 int management_active; /**< nonzero if bitrate management is active*/
nuclear@0 235 /** hard lower limit (in kilobits per second) below which the stream bitrate
nuclear@0 236 will never be allowed for any given bitrate_hard_window seconds of time.*/
nuclear@0 237 long bitrate_hard_min;
nuclear@0 238 /** hard upper limit (in kilobits per second) above which the stream bitrate
nuclear@0 239 will never be allowed for any given bitrate_hard_window seconds of time.*/
nuclear@0 240 long bitrate_hard_max;
nuclear@0 241 /** the window period (in seconds) used to regulate the hard bitrate minimum
nuclear@0 242 and maximum*/
nuclear@0 243 double bitrate_hard_window;
nuclear@0 244 /** soft lower limit (in kilobits per second) below which the average bitrate
nuclear@0 245 tracker will start nudging the bitrate higher.*/
nuclear@0 246 long bitrate_av_lo;
nuclear@0 247 /** soft upper limit (in kilobits per second) above which the average bitrate
nuclear@0 248 tracker will start nudging the bitrate lower.*/
nuclear@0 249 long bitrate_av_hi;
nuclear@0 250 /** the window period (in seconds) used to regulate the average bitrate
nuclear@0 251 minimum and maximum.*/
nuclear@0 252 double bitrate_av_window;
nuclear@0 253 /** Regulates the relative centering of the average and hard windows; in
nuclear@0 254 libvorbis 1.0 and 1.0.1, the hard window regulation overlapped but
nuclear@0 255 followed the average window regulation. In libvorbis 1.1 a bit-reservoir
nuclear@0 256 interface replaces the old windowing interface; the older windowing
nuclear@0 257 interface is simulated and this field has no effect.*/
nuclear@0 258 double bitrate_av_window_center;
nuclear@0 259 };
nuclear@0 260
nuclear@0 261 /**
nuclear@0 262 * \name struct ovectl_ratemanage2_arg
nuclear@0 263 *
nuclear@0 264 * The ovectl_ratemanage2_arg structure is used with vorbis_encode_ctl() and
nuclear@0 265 * the OV_ECTL_RATEMANAGE2_GET and OV_ECTL_RATEMANAGE2_SET calls in order to
nuclear@0 266 * query and modify specifics of the encoder's bitrate management
nuclear@0 267 * configuration.
nuclear@0 268 *
nuclear@0 269 */
nuclear@0 270 struct ovectl_ratemanage2_arg {
nuclear@0 271 int management_active; /**< nonzero if bitrate management is active */
nuclear@0 272 /** Lower allowed bitrate limit in kilobits per second */
nuclear@0 273 long bitrate_limit_min_kbps;
nuclear@0 274 /** Upper allowed bitrate limit in kilobits per second */
nuclear@0 275 long bitrate_limit_max_kbps;
nuclear@0 276 long bitrate_limit_reservoir_bits; /**<Size of the bitrate reservoir in bits */
nuclear@0 277 /** Regulates the bitrate reservoir's preferred fill level in a range from 0.0
nuclear@0 278 * to 1.0; 0.0 tries to bank bits to buffer against future bitrate spikes, 1.0
nuclear@0 279 * buffers against future sudden drops in instantaneous bitrate. Default is
nuclear@0 280 * 0.1
nuclear@0 281 */
nuclear@0 282 double bitrate_limit_reservoir_bias;
nuclear@0 283 /** Average bitrate setting in kilobits per second */
nuclear@0 284 long bitrate_average_kbps;
nuclear@0 285 /** Slew rate limit setting for average bitrate adjustment; sets the minimum
nuclear@0 286 * time in seconds the bitrate tracker may swing from one extreme to the
nuclear@0 287 * other when boosting or damping average bitrate.
nuclear@0 288 */
nuclear@0 289 double bitrate_average_damping;
nuclear@0 290 };
nuclear@0 291
nuclear@0 292
nuclear@0 293 /**
nuclear@0 294 * \name vorbis_encode_ctl() codes
nuclear@0 295 *
nuclear@0 296 * \anchor encctlcodes
nuclear@0 297 *
nuclear@0 298 * These values are passed as the \c number parameter of vorbis_encode_ctl().
nuclear@0 299 * The type of the referent of that function's \c arg pointer depends on these
nuclear@0 300 * codes.
nuclear@0 301 */
nuclear@0 302 /*@{*/
nuclear@0 303
nuclear@0 304 /**
nuclear@0 305 * Query the current encoder bitrate management setting.
nuclear@0 306 *
nuclear@0 307 *Argument: <tt>struct ovectl_ratemanage2_arg *</tt>
nuclear@0 308 *
nuclear@0 309 * Used to query the current encoder bitrate management setting. Also used to
nuclear@0 310 * initialize fields of an ovectl_ratemanage2_arg structure for use with
nuclear@0 311 * \ref OV_ECTL_RATEMANAGE2_SET.
nuclear@0 312 */
nuclear@0 313 #define OV_ECTL_RATEMANAGE2_GET 0x14
nuclear@0 314
nuclear@0 315 /**
nuclear@0 316 * Set the current encoder bitrate management settings.
nuclear@0 317 *
nuclear@0 318 * Argument: <tt>struct ovectl_ratemanage2_arg *</tt>
nuclear@0 319 *
nuclear@0 320 * Used to set the current encoder bitrate management settings to the values
nuclear@0 321 * listed in the ovectl_ratemanage2_arg. Passing a NULL pointer will disable
nuclear@0 322 * bitrate management.
nuclear@0 323 */
nuclear@0 324 #define OV_ECTL_RATEMANAGE2_SET 0x15
nuclear@0 325
nuclear@0 326 /**
nuclear@0 327 * Returns the current encoder hard-lowpass setting (kHz) in the double
nuclear@0 328 * pointed to by arg.
nuclear@0 329 *
nuclear@0 330 * Argument: <tt>double *</tt>
nuclear@0 331 */
nuclear@0 332 #define OV_ECTL_LOWPASS_GET 0x20
nuclear@0 333
nuclear@0 334 /**
nuclear@0 335 * Sets the encoder hard-lowpass to the value (kHz) pointed to by arg. Valid
nuclear@0 336 * lowpass settings range from 2 to 99.
nuclear@0 337 *
nuclear@0 338 * Argument: <tt>double *</tt>
nuclear@0 339 */
nuclear@0 340 #define OV_ECTL_LOWPASS_SET 0x21
nuclear@0 341
nuclear@0 342 /**
nuclear@0 343 * Returns the current encoder impulse block setting in the double pointed
nuclear@0 344 * to by arg.
nuclear@0 345 *
nuclear@0 346 * Argument: <tt>double *</tt>
nuclear@0 347 */
nuclear@0 348 #define OV_ECTL_IBLOCK_GET 0x30
nuclear@0 349
nuclear@0 350 /**
nuclear@0 351 * Sets the impulse block bias to the the value pointed to by arg.
nuclear@0 352 *
nuclear@0 353 * Argument: <tt>double *</tt>
nuclear@0 354 *
nuclear@0 355 * Valid range is -15.0 to 0.0 [default]. A negative impulse block bias will
nuclear@0 356 * direct to encoder to use more bits when incoding short blocks that contain
nuclear@0 357 * strong impulses, thus improving the accuracy of impulse encoding.
nuclear@0 358 */
nuclear@0 359 #define OV_ECTL_IBLOCK_SET 0x31
nuclear@0 360
nuclear@0 361 /**
nuclear@0 362 * Returns the current encoder coupling setting in the int pointed
nuclear@0 363 * to by arg.
nuclear@0 364 *
nuclear@0 365 * Argument: <tt>int *</tt>
nuclear@0 366 */
nuclear@0 367 #define OV_ECTL_COUPLING_GET 0x40
nuclear@0 368
nuclear@0 369 /**
nuclear@0 370 * Enables/disables channel coupling in multichannel encoding according to arg.
nuclear@0 371 *
nuclear@0 372 * Argument: <tt>int *</tt>
nuclear@0 373 *
nuclear@0 374 * Zero disables channel coupling for multichannel inputs, nonzer enables
nuclear@0 375 * channel coupling. Setting has no effect on monophonic encoding or
nuclear@0 376 * multichannel counts that do not offer coupling. At present, coupling is
nuclear@0 377 * available for stereo and 5.1 encoding.
nuclear@0 378 */
nuclear@0 379 #define OV_ECTL_COUPLING_SET 0x41
nuclear@0 380
nuclear@0 381 /* deprecated rate management supported only for compatibility */
nuclear@0 382
nuclear@0 383 /**
nuclear@0 384 * Old interface to querying bitrate management settings.
nuclear@0 385 *
nuclear@0 386 * Deprecated after move to bit-reservoir style management in 1.1 rendered
nuclear@0 387 * this interface partially obsolete.
nuclear@0 388
nuclear@0 389 * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_GET instead.
nuclear@0 390 *
nuclear@0 391 * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
nuclear@0 392 */
nuclear@0 393 #define OV_ECTL_RATEMANAGE_GET 0x10
nuclear@0 394 /**
nuclear@0 395 * Old interface to modifying bitrate management settings.
nuclear@0 396 *
nuclear@0 397 * deprecated after move to bit-reservoir style management in 1.1 rendered
nuclear@0 398 * this interface partially obsolete.
nuclear@0 399 *
nuclear@0 400 * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
nuclear@0 401 *
nuclear@0 402 * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
nuclear@0 403 */
nuclear@0 404 #define OV_ECTL_RATEMANAGE_SET 0x11
nuclear@0 405 /**
nuclear@0 406 * Old interface to setting average-bitrate encoding mode.
nuclear@0 407 *
nuclear@0 408 * Deprecated after move to bit-reservoir style management in 1.1 rendered
nuclear@0 409 * this interface partially obsolete.
nuclear@0 410 *
nuclear@0 411 * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
nuclear@0 412 *
nuclear@0 413 * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
nuclear@0 414 */
nuclear@0 415 #define OV_ECTL_RATEMANAGE_AVG 0x12
nuclear@0 416 /**
nuclear@0 417 * Old interface to setting bounded-bitrate encoding modes.
nuclear@0 418 *
nuclear@0 419 * deprecated after move to bit-reservoir style management in 1.1 rendered
nuclear@0 420 * this interface partially obsolete.
nuclear@0 421 *
nuclear@0 422 * \deprecated Please use \ref OV_ECTL_RATEMANAGE2_SET instead.
nuclear@0 423 *
nuclear@0 424 * Argument: <tt>struct ovectl_ratemanage_arg *</tt>
nuclear@0 425 */
nuclear@0 426 #define OV_ECTL_RATEMANAGE_HARD 0x13
nuclear@0 427
nuclear@0 428 /*@}*/
nuclear@0 429
nuclear@0 430
nuclear@0 431
nuclear@0 432 #ifdef __cplusplus
nuclear@0 433 }
nuclear@0 434 #endif /* __cplusplus */
nuclear@0 435
nuclear@0 436 #endif