dbf-halloween2015

annotate libs/vorbis/vorbisenc.h @ 1:c3f5c32cb210

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