libvorbis  1.3.6
vorbisenc.h
Go to the documentation of this file.
1 /********************************************************************
2  * *
3  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7  * *
8  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 *
9  * by the Xiph.Org Foundation http://www.xiph.org/ *
10  * *
11  ********************************************************************
12 
13  function: vorbis encode-engine setup
14 
15  ********************************************************************/
16 
23 #ifndef _OV_ENC_H_
24 #define _OV_ENC_H_
25 
26 #ifdef __cplusplus
27 extern "C"
28 {
29 #endif /* __cplusplus */
30 
31 #include "codec.h"
32 
59 extern int vorbis_encode_init(vorbis_info *vi,
60  long channels,
61  long rate,
62 
63  long max_bitrate,
64  long nominal_bitrate,
65  long min_bitrate);
66 
97  long channels,
98  long rate,
99 
100  long max_bitrate,
101  long nominal_bitrate,
102  long min_bitrate);
103 
128 extern int vorbis_encode_setup_vbr(vorbis_info *vi,
129  long channels,
130  long rate,
131 
132  float quality
133  );
134 
157 extern int vorbis_encode_init_vbr(vorbis_info *vi,
158  long channels,
159  long rate,
160 
161  float base_quality
162  );
163 
191 extern int vorbis_encode_setup_init(vorbis_info *vi);
192 
219 extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
220 
258 };
259 
289 };
290 
291 
302 
312 #define OV_ECTL_RATEMANAGE2_GET 0x14
313 
323 #define OV_ECTL_RATEMANAGE2_SET 0x15
324 
331 #define OV_ECTL_LOWPASS_GET 0x20
332 
339 #define OV_ECTL_LOWPASS_SET 0x21
340 
347 #define OV_ECTL_IBLOCK_GET 0x30
348 
358 #define OV_ECTL_IBLOCK_SET 0x31
359 
366 #define OV_ECTL_COUPLING_GET 0x40
367 
378 #define OV_ECTL_COUPLING_SET 0x41
379 
380  /* deprecated rate management supported only for compatibility */
381 
392 #define OV_ECTL_RATEMANAGE_GET 0x10
393 
403 #define OV_ECTL_RATEMANAGE_SET 0x11
404 
414 #define OV_ECTL_RATEMANAGE_AVG 0x12
415 
425 #define OV_ECTL_RATEMANAGE_HARD 0x13
426 
431 #ifdef __cplusplus
432 }
433 #endif /* __cplusplus */
434 
435 #endif
int vorbis_encode_setup_init(vorbis_info *vi)
This function performs the last stage of three-step encoding setup, as described in the API overview ...
int management_active
nonzero if bitrate management is active
Definition: vorbisenc.h:270
long bitrate_limit_max_kbps
Upper allowed bitrate limit in kilobits per second.
Definition: vorbisenc.h:274
long bitrate_hard_min
hard lower limit (in kilobits per second) below which the stream bitrate will never be allowed for an...
Definition: vorbisenc.h:236
long bitrate_limit_reservoir_bits
Size of the bitrate reservoir in bits.
Definition: vorbisenc.h:275
int vorbis_encode_setup_managed(vorbis_info *vi, long channels, long rate, long max_bitrate, long nominal_bitrate, long min_bitrate)
This function performs step-one of a three-step bitrate-managed encode setup.
double bitrate_average_damping
Slew rate limit setting for average bitrate adjustment; sets the minimum time in seconds the bitrate ...
Definition: vorbisenc.h:288
int vorbis_encode_init(vorbis_info *vi, long channels, long rate, long max_bitrate, long nominal_bitrate, long min_bitrate)
This is the primary function within libvorbisenc for setting up managed bitrate modes.
int management_active
nonzero if bitrate management is active
Definition: vorbisenc.h:233
double bitrate_av_window
the window period (in seconds) used to regulate the average bitrate minimum and maximum.
Definition: vorbisenc.h:251
long bitrate_av_hi
soft upper limit (in kilobits per second) above which the average bitrate tracker will start nudging ...
Definition: vorbisenc.h:248
long bitrate_hard_max
hard upper limit (in kilobits per second) above which the stream bitrate will never be allowed for an...
Definition: vorbisenc.h:239
double bitrate_limit_reservoir_bias
Regulates the bitrate reservoir's preferred fill level in a range from 0.0 to 1.0; 0...
Definition: vorbisenc.h:281
long bitrate_average_kbps
Average bitrate setting in kilobits per second.
Definition: vorbisenc.h:283
int vorbis_encode_ctl(vorbis_info *vi, int number, void *arg)
This function implements a generic interface to miscellaneous encoder settings similar to the classic...
double bitrate_av_window_center
Regulates the relative centering of the average and hard windows; in libvorbis 1.0 and 1...
Definition: vorbisenc.h:257
long bitrate_limit_min_kbps
Lower allowed bitrate limit in kilobits per second.
Definition: vorbisenc.h:272
int vorbis_encode_setup_vbr(vorbis_info *vi, long channels, long rate, float quality)
This function performs step-one of a three-step variable bitrate (quality-based) encode setup...
Definition: vorbisenc.h:232
double bitrate_hard_window
the window period (in seconds) used to regulate the hard bitrate minimum and maximum ...
Definition: vorbisenc.h:242
int vorbis_encode_init_vbr(vorbis_info *vi, long channels, long rate, float base_quality)
This is the primary function within libvorbisenc for setting up variable bitrate ("quality" based) mo...
long bitrate_av_lo
soft lower limit (in kilobits per second) below which the average bitrate tracker will start nudging ...
Definition: vorbisenc.h:245
Definition: vorbisenc.h:269
Definition: codec.h:27