examples/sfexamples/oggvorbiscodec/src/libvorbis/include/vorbis/vorbisenc.h

00001 /********************************************************************
00002  *                                                                  *
00003  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
00004  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
00005  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
00006  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
00007  *                                                                  *
00008  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001             *
00009  * by the XIPHOPHORUS Company http://www.xiph.org/                  *
00010  *                                                                  *
00011  ********************************************************************
00012 
00013  function: vorbis encode-engine setup
00014  last mod: $Id: vorbisenc.h 7485 2004-08-05 14:54:23Z thomasvs $
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 /* __cplusplus */
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 /* quality level from 0. (lo) to 1. (hi) */
00061                                   );
00062 
00063 IMPORT_C int vorbis_encode_init_vbr(vorbis_info *vi,
00064                                   long channels,
00065                                   long rate,
00066 
00067                                   float base_quality /* quality level from 0. (lo) to 1. (hi) */
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   /* deprecated rate management supported only for compatability */
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   /* new rate setup */
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 /* __cplusplus */
00121 
00122 #endif
00123 
00124 

Generated by  doxygen 1.6.2