00001 /******************************************************************** 00002 * * 00003 * THIS FILE IS PART OF THE OggTheora 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 Theora SOURCE CODE IS COPYRIGHT (C) 2002-2003 * 00009 * by the Xiph.Org Foundation http://www.xiph.org/ * 00010 * * 00011 ******************************************************************** 00012 00013 function: 00014 last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $ 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