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 #ifndef __SYMBIAN32__
00022 # define IMPORT_C extern
00023 # define EXPORT_C
00024 #else
00025 # ifndef __cplusplus
00026 #ifndef __X86GCC__
00027 # undef IMPORT_C
00028 # define IMPORT_C __declspec(dllexport)
00029 # define EXPORT_C __declspec(dllexport)
00030 #endif
00031 # endif
00032 #endif
00033 #ifdef __cplusplus
00034 extern "C"
00035 {
00036 #endif
00037
00038 #include "vorbis/codec.h"
00039
00040 IMPORT_C int vorbis_encode_init(vorbis_info *vi,
00041 long channels,
00042 long rate,
00043
00044 long max_bitrate,
00045 long nominal_bitrate,
00046 long min_bitrate);
00047
00048 IMPORT_C int vorbis_encode_setup_managed(vorbis_info *vi,
00049 long channels,
00050 long rate,
00051
00052 long max_bitrate,
00053 long nominal_bitrate,
00054 long min_bitrate);
00055
00056 IMPORT_C int vorbis_encode_setup_vbr(vorbis_info *vi,
00057 long channels,
00058 long rate,
00059
00060 float quality
00061 );
00062
00063 IMPORT_C int vorbis_encode_init_vbr(vorbis_info *vi,
00064 long channels,
00065 long rate,
00066
00067 float base_quality
00068 );
00069
00070 IMPORT_C int vorbis_encode_setup_init(vorbis_info *vi);
00071
00072 IMPORT_C int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
00073
00074
00075 #define OV_ECTL_RATEMANAGE_GET 0x10
00076 #define OV_ECTL_RATEMANAGE_SET 0x11
00077 #define OV_ECTL_RATEMANAGE_AVG 0x12
00078 #define OV_ECTL_RATEMANAGE_HARD 0x13
00079
00080 struct ovectl_ratemanage_arg {
00081 int management_active;
00082
00083 long bitrate_hard_min;
00084 long bitrate_hard_max;
00085 double bitrate_hard_window;
00086
00087 long bitrate_av_lo;
00088 long bitrate_av_hi;
00089 double bitrate_av_window;
00090 double bitrate_av_window_center;
00091 };
00092
00093
00094
00095 #define OV_ECTL_RATEMANAGE2_GET 0x14
00096 #define OV_ECTL_RATEMANAGE2_SET 0x15
00097
00098 struct ovectl_ratemanage2_arg {
00099 int management_active;
00100
00101 long bitrate_limit_min_kbps;
00102 long bitrate_limit_max_kbps;
00103 long bitrate_limit_reservoir_bits;
00104 double bitrate_limit_reservoir_bias;
00105
00106 long bitrate_average_kbps;
00107 double bitrate_average_damping;
00108 };
00109
00110
00111
00112 #define OV_ECTL_LOWPASS_GET 0x20
00113 #define OV_ECTL_LOWPASS_SET 0x21
00114
00115 #define OV_ECTL_IBLOCK_GET 0x30
00116 #define OV_ECTL_IBLOCK_SET 0x31
00117
00118 #ifdef __cplusplus
00119 }
00120 #endif
00121
00122 #endif
00123
00124