libtheora: theoraenc.h Source File

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

# 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