libtheora  1.1.1
theoraenc.h
Go to the documentation of this file.
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-2009                *
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 <stddef.h>
00024 # include <ogg/ogg.h>
00025 # include "codec.h"
00026 
00027 #if defined(__cplusplus)
00028 extern "C" {
00029 #endif
00030 
00031 
00032 
00053 #define TH_ENCCTL_SET_HUFFMAN_CODES (0)
00054 
00066 #define TH_ENCCTL_SET_QUANT_PARAMS (2)
00067 
00079 #define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)
00080 
00107 #define TH_ENCCTL_SET_VP3_COMPATIBLE (10)
00108 
00121 #define TH_ENCCTL_GET_SPLEVEL_MAX (12)
00122 
00135 #define TH_ENCCTL_SET_SPLEVEL (14)
00136 
00149 #define TH_ENCCTL_GET_SPLEVEL (16)
00150 
00175 #define TH_ENCCTL_SET_DUP_COUNT (18)
00176 
00195 #define TH_ENCCTL_SET_RATE_FLAGS (20)
00196 
00221 #define TH_ENCCTL_SET_RATE_BUFFER (22)
00222 
00251 #define TH_ENCCTL_2PASS_OUT (24)
00252 
00297 #define TH_ENCCTL_2PASS_IN (26)
00298 
00313 #define TH_ENCCTL_SET_QUALITY (28)
00314 
00334 #define TH_ENCCTL_SET_BITRATE (30)
00335 
00346 #define TH_RATECTL_DROP_FRAMES   (0x1)
00347 
00354 #define TH_RATECTL_CAP_OVERFLOW  (0x2)
00355 
00361 #define TH_RATECTL_CAP_UNDERFLOW (0x4)
00362 
00367 extern const th_quant_info TH_VP31_QUANT_INFO;
00368 
00370 extern const th_huff_code
00371  TH_VP31_HUFF_CODES[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS];
00372 
00373 
00374 
00382 typedef struct th_enc_ctx    th_enc_ctx;
00412 extern th_enc_ctx *th_encode_alloc(const th_info *_info);
00421 extern int th_encode_ctl(th_enc_ctx *_enc,int _req,void *_buf,size_t _buf_sz);
00439 extern int th_encode_flushheader(th_enc_ctx *_enc,
00440  th_comment *_comments,ogg_packet *_op);
00449 extern int th_encode_ycbcr_in(th_enc_ctx *_enc,th_ycbcr_buffer _ycbcr);
00473 extern int th_encode_packetout(th_enc_ctx *_enc,int _last,ogg_packet *_op);
00476 extern void th_encode_free(th_enc_ctx *_enc);
00479 
00480 
00481 
00482 #if defined(__cplusplus)
00483 }
00484 #endif
00485 
00486 #endif