Missed the encode ctl headers
[platform/upstream/libvorbis.git] / include / vorbis / vorbisenc.h
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  ********************************************************************
12
13  function: vorbis encode-engine setup
14  last mod: $Id: vorbisenc.h,v 1.9 2002/06/30 08:45:03 xiphmont Exp $
15
16  ********************************************************************/
17
18 #ifndef _OV_ENC_H_
19 #define _OV_ENC_H_
20
21 #ifdef __cplusplus
22 extern "C"
23 {
24 #endif /* __cplusplus */
25
26 #include "codec.h"
27
28 extern int vorbis_encode_init(vorbis_info *vi,
29                               long channels,
30                               long rate,
31                               
32                               long max_bitrate,
33                               long nominal_bitrate,
34                               long min_bitrate);
35
36 extern int vorbis_encode_setup_managed(vorbis_info *vi,
37                                        long channels,
38                                        long rate,
39                                        
40                                        long max_bitrate,
41                                        long nominal_bitrate,
42                                        long min_bitrate);
43   
44 extern int vorbis_encode_setup_vbr(vorbis_info *vi,
45                                   long channels,
46                                   long rate,
47                                   
48                                   float /* quality level from 0. (lo) to 1. (hi) */
49                                   );
50
51 extern int vorbis_encode_init_vbr(vorbis_info *vi,
52                                   long channels,
53                                   long rate,
54                                   
55                                   float base_quality /* quality level from 0. (lo) to 1. (hi) */
56                                   );
57
58 extern int vorbis_encode_setup_init(vorbis_info *vi);
59
60 extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
61
62 #define OV_ECTL_RATEMANAGE_GET       0x10
63
64 #define OV_ECTL_RATEMANAGE_SET       0x11
65 #define OV_ECTL_RATEMANAGE_AVG       0x12
66 #define OV_ECTL_RATEMANAGE_HARD      0x13
67
68 struct ovectl_ratemanage_arg {
69   int    management_active;
70
71   long   bitrate_hard_min;
72   long   bitrate_hard_max;
73   double bitrate_hard_window;
74
75   long   bitrate_av_lo;
76   long   bitrate_av_hi;
77   double bitrate_av_window;
78   double bitrate_av_window_center;
79 };
80
81 #ifdef __cplusplus
82 }
83 #endif /* __cplusplus */
84
85 #endif
86
87