00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _OV_ENC_H_
00019 #define _OV_ENC_H_
00020
00021 #ifdef __cplusplus
00022 extern "C"
00023 {
00024 #endif
00025
00026 #include "codec.h"
00027
00028 extern int vorbis_encode_init(vorbis_info *vi,
00029 long channels,
00030 long rate,
00031
00032 long max_bitrate,
00033 long nominal_bitrate,
00034 long min_bitrate);
00035
00036 extern int vorbis_encode_setup_managed(vorbis_info *vi,
00037 long channels,
00038 long rate,
00039
00040 long max_bitrate,
00041 long nominal_bitrate,
00042 long min_bitrate);
00043
00044 extern int vorbis_encode_setup_vbr(vorbis_info *vi,
00045 long channels,
00046 long rate,
00047
00048 float
00049 );
00050
00051 extern int vorbis_encode_init_vbr(vorbis_info *vi,
00052 long channels,
00053 long rate,
00054
00055 float base_quality
00056 );
00057
00058 extern int vorbis_encode_setup_init(vorbis_info *vi);
00059
00060 extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
00061
00062 #define OV_ECTL_RATEMANAGE_GET 0x10
00063
00064 #define OV_ECTL_RATEMANAGE_SET 0x11
00065 #define OV_ECTL_RATEMANAGE_AVG 0x12
00066 #define OV_ECTL_RATEMANAGE_HARD 0x13
00067
00068 #define OV_ECTL_LOWPASS_GET 0x20
00069 #define OV_ECTL_LOWPASS_SET 0x21
00070
00071 #define OV_ECTL_IBLOCK_GET 0x30
00072 #define OV_ECTL_IBLOCK_SET 0x31
00073
00074 struct ovectl_ratemanage_arg {
00075 int management_active;
00076
00077 long bitrate_hard_min;
00078 long bitrate_hard_max;
00079 double bitrate_hard_window;
00080
00081 long bitrate_av_lo;
00082 long bitrate_av_hi;
00083 double bitrate_av_window;
00084 double bitrate_av_window_center;
00085 };
00086
00087 #ifdef __cplusplus
00088 }
00089 #endif
00090
00091 #endif
00092
00093