libtheora: theoraenc.h Source File

libtheora 1.1.1

theoraenc.h
Go to the documentation of this file.
1 /********************************************************************
2 * *
3 * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7 * *
8 * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 *
9 * by the Xiph.Org Foundation http://www.xiph.org/ *
10 * *
11 ********************************************************************
12
13 function:
14 last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $
15
16 ********************************************************************/
17
21 #if !defined(_O_THEORA_THEORAENC_H_)
22 # define _O_THEORA_THEORAENC_H_ (1)
23 # include <stddef.h>
24 # include <ogg/ogg.h>
25 # include "codec.h"
26
27 #if defined(__cplusplus)
28 extern "C" {
29 #endif
30
31
32
53 #define TH_ENCCTL_SET_HUFFMAN_CODES (0)
54
66 #define TH_ENCCTL_SET_QUANT_PARAMS (2)
67
79 #define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)
80
107 #define TH_ENCCTL_SET_VP3_COMPATIBLE (10)
108
121 #define TH_ENCCTL_GET_SPLEVEL_MAX (12)
122
135 #define TH_ENCCTL_SET_SPLEVEL (14)
136
149 #define TH_ENCCTL_GET_SPLEVEL (16)
150
175 #define TH_ENCCTL_SET_DUP_COUNT (18)
176
195 #define TH_ENCCTL_SET_RATE_FLAGS (20)
196
221 #define TH_ENCCTL_SET_RATE_BUFFER (22)
222
251 #define TH_ENCCTL_2PASS_OUT (24)
252
297 #define TH_ENCCTL_2PASS_IN (26)
298
313 #define TH_ENCCTL_SET_QUALITY (28)
314
334 #define TH_ENCCTL_SET_BITRATE (30)
335
346 #define TH_RATECTL_DROP_FRAMES (0x1)
347
354 #define TH_RATECTL_CAP_OVERFLOW (0x2)
355
361 #define TH_RATECTL_CAP_UNDERFLOW (0x4)
362
367 extern const th_quant_info TH_VP31_QUANT_INFO;
368
370 extern const th_huff_code
371 TH_VP31_HUFF_CODES[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS];
372
373
374
382 typedef struct th_enc_ctx th_enc_ctx;
412 extern th_enc_ctx *th_encode_alloc(const th_info *_info);
421 extern int th_encode_ctl(th_enc_ctx *_enc,int _req,void *_buf,size_t _buf_sz);
439 extern int th_encode_flushheader(th_enc_ctx *_enc,
440 th_comment *_comments,ogg_packet *_op);
449 extern int th_encode_ycbcr_in(th_enc_ctx *_enc,th_ycbcr_buffer _ycbcr);
473 extern int th_encode_packetout(th_enc_ctx *_enc,int _last,ogg_packet *_op);
476 extern void th_encode_free(th_enc_ctx *_enc);
479
480
481
482 #if defined(__cplusplus)
483 }
484 #endif
485
486 #endif
th_encode_flushheader
int th_encode_flushheader(th_enc_ctx *_enc, th_comment *_comments, ogg_packet *_op)
Outputs the next header packet.
th_info
Theora bitstream information.
Definition: codec.h:204
TH_VP31_QUANT_INFO
const th_quant_info TH_VP31_QUANT_INFO
The quantization parameters used by VP3.
th_encode_alloc
th_enc_ctx * th_encode_alloc(const th_info *_info)
Allocates an encoder instance.
codec.h
th_ycbcr_buffer
th_img_plane th_ycbcr_buffer[3]
A complete image buffer for an uncompressed frame.
Definition: codec.h:168
th_encode_packetout
int th_encode_packetout(th_enc_ctx *_enc, int _last, ogg_packet *_op)
Retrieves encoded video data packets.
th_encode_ycbcr_in
int th_encode_ycbcr_in(th_enc_ctx *_enc, th_ycbcr_buffer _ycbcr)
Submits an uncompressed frame to the encoder.
TH_NHUFFMAN_TABLES
#define TH_NHUFFMAN_TABLES
The number of Huffman tables used by Theora.
Definition: codec.h:423
th_quant_info
A complete set of quantization parameters.
Definition: codec.h:409
th_enc_ctx
struct th_enc_ctx th_enc_ctx
The encoder context.
Definition: theoraenc.h:382
th_comment
The comment information.
Definition: codec.h:323
th_encode_ctl
int th_encode_ctl(th_enc_ctx *_enc, int _req, void *_buf, size_t _buf_sz)
Encoder control function.
TH_NDCT_TOKENS
#define TH_NDCT_TOKENS
The number of DCT token values in each table.
Definition: codec.h:425
th_encode_free
void th_encode_free(th_enc_ctx *_enc)
Frees an allocated encoder instance.
TH_VP31_HUFF_CODES
const th_huff_code TH_VP31_HUFF_CODES[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS]
The Huffman tables used by VP3.
th_huff_code
A Huffman code for a Theora DCT token.
Definition: codec.h:438