Build script now builds an oggenc binary with flac support.
[vorbis-lancer-gcc.git] / aotuv-b5_20061024 / include / vorbis / vorbisenc.h
bloba60081ac9538c30900b267d5a1c4c1164a34500b
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 XIPHOPHORUS Company http://www.xiph.org/ *
10 * *
11 ********************************************************************
13 function: vorbis encode-engine setup
14 last mod: $Id: vorbisenc.h 7485 2004-08-05 14:54:23Z thomasvs $
16 ********************************************************************/
18 #ifndef _OV_ENC_H_
19 #define _OV_ENC_H_
21 #ifdef __cplusplus
22 extern "C"
24 #endif /* __cplusplus */
26 #include "codec.h"
28 extern int vorbis_encode_init(vorbis_info *vi,
29 long channels,
30 long rate,
32 long max_bitrate,
33 long nominal_bitrate,
34 long min_bitrate);
36 extern int vorbis_encode_setup_managed(vorbis_info *vi,
37 long channels,
38 long rate,
40 long max_bitrate,
41 long nominal_bitrate,
42 long min_bitrate);
44 extern int vorbis_encode_setup_vbr(vorbis_info *vi,
45 long channels,
46 long rate,
48 float quality /* quality level from 0. (lo) to 1. (hi) */
51 extern int vorbis_encode_init_vbr(vorbis_info *vi,
52 long channels,
53 long rate,
55 float base_quality /* quality level from 0. (lo) to 1. (hi) */
58 extern int vorbis_encode_setup_init(vorbis_info *vi);
60 extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
62 /* deprecated rate management supported only for compatability */
63 #define OV_ECTL_RATEMANAGE_GET 0x10
64 #define OV_ECTL_RATEMANAGE_SET 0x11
65 #define OV_ECTL_RATEMANAGE_AVG 0x12
66 #define OV_ECTL_RATEMANAGE_HARD 0x13
68 struct ovectl_ratemanage_arg {
69 int management_active;
71 long bitrate_hard_min;
72 long bitrate_hard_max;
73 double bitrate_hard_window;
75 long bitrate_av_lo;
76 long bitrate_av_hi;
77 double bitrate_av_window;
78 double bitrate_av_window_center;
82 /* new rate setup */
83 #define OV_ECTL_RATEMANAGE2_GET 0x14
84 #define OV_ECTL_RATEMANAGE2_SET 0x15
86 struct ovectl_ratemanage2_arg {
87 int management_active;
89 long bitrate_limit_min_kbps;
90 long bitrate_limit_max_kbps;
91 long bitrate_limit_reservoir_bits;
92 double bitrate_limit_reservoir_bias;
94 long bitrate_average_kbps;
95 double bitrate_average_damping;
100 #define OV_ECTL_LOWPASS_GET 0x20
101 #define OV_ECTL_LOWPASS_SET 0x21
103 #define OV_ECTL_IBLOCK_GET 0x30
104 #define OV_ECTL_IBLOCK_SET 0x31
106 #ifdef __cplusplus
108 #endif /* __cplusplus */
110 #endif