Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/libvorbis-1.2.0/include/vorbis/vorbisenc.h @ 16

Last change on this file since 16 was 16, checked in by landauf, 16 years ago

added libvorbis

File size: 2.9 KB
Line 
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 last mod: $Id: vorbisenc.h 13293 2007-07-24 00:09:47Z xiphmont $
15
16 ********************************************************************/
17
18#ifndef _OV_ENC_H_
19#define _OV_ENC_H_
20
21#ifdef __cplusplus
22extern "C"
23{
24#endif /* __cplusplus */
25
26#include "codec.h"
27
28extern 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
36extern 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
44extern int vorbis_encode_setup_vbr(vorbis_info *vi,
45                                  long channels,
46                                  long rate,
47
48                                  float quality /* quality level from 0. (lo) to 1. (hi) */
49                                  );
50
51extern 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
58extern int vorbis_encode_setup_init(vorbis_info *vi);
59
60extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
61
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
67
68struct 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
82  /* new rate setup */
83#define OV_ECTL_RATEMANAGE2_GET      0x14
84#define OV_ECTL_RATEMANAGE2_SET      0x15
85
86struct ovectl_ratemanage2_arg {
87  int    management_active;
88
89  long   bitrate_limit_min_kbps;
90  long   bitrate_limit_max_kbps;
91  long   bitrate_limit_reservoir_bits;
92  double bitrate_limit_reservoir_bias;
93
94  long   bitrate_average_kbps;
95  double bitrate_average_damping;
96};
97
98
99
100#define OV_ECTL_LOWPASS_GET          0x20
101#define OV_ECTL_LOWPASS_SET          0x21
102
103#define OV_ECTL_IBLOCK_GET           0x30
104#define OV_ECTL_IBLOCK_SET           0x31
105
106#ifdef __cplusplus
107}
108#endif /* __cplusplus */
109
110#endif
111
112
Note: See TracBrowser for help on using the repository browser.