00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00021 #if !defined(_O_THEORA_THEORAENC_H_)
00022 # define _O_THEORA_THEORAENC_H_ (1)
00023 # include <ogg/ogg.h>
00024 # include "codec.h"
00025
00026 #if defined(__cplusplus)
00027 extern "C" {
00028 #endif
00029
00030
00031
00052 #define TH_ENCCTL_SET_HUFFMAN_CODES (0)
00053
00071 #define TH_ENCCTL_SET_QUANT_PARAMS (2)
00072
00084 #define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)
00085
00112 #define TH_ENCCTL_SET_VP3_COMPATIBLE (10)
00113
00126 #define TH_ENCCTL_GET_SPLEVEL_MAX (12)
00127
00140 #define TH_ENCCTL_SET_SPLEVEL (14)
00141
00146 extern const th_quant_info TH_VP31_QUANT_INFO;
00147
00149 extern const th_huff_code
00150 TH_VP31_HUFF_CODES[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS];
00151
00152
00153
00161 typedef struct th_enc_ctx th_enc_ctx;
00191 extern th_enc_ctx *th_encode_alloc(const th_info *_info);
00200 extern int th_encode_ctl(th_enc_ctx *_enc,int _req,void *_buf,size_t _buf_sz);
00218 extern int th_encode_flushheader(th_enc_ctx *_enc,
00219 th_comment *_comments,ogg_packet *_op);
00228 extern int th_encode_ycbcr_in(th_enc_ctx *_enc,th_ycbcr_buffer _ycbcr);
00252 extern int th_encode_packetout(th_enc_ctx *_enc,int _last,ogg_packet *_op);
00255 extern void th_encode_free(th_enc_ctx *_enc);
00258
00259
00260
00261 #if defined(__cplusplus)
00262 }
00263 #endif
00264
00265 #endif