theora.h File Reference

The libtheora pre-1.0 legacy C API. More...

#include <stddef.h>
#include <ogg/ogg.h>

Go to the source code of this file.

Data Structures

struct  yuv_buffer
 A YUV buffer for passing uncompressed frames to and from the codec. More...
struct  theora_info
 Theora bitstream info. More...
struct  theora_state
 Codec internal state and context. More...
struct  theora_comment
 Comment header metadata. More...

theora_control() codes

 Get the maximum post-processing level.
 Set the post-processing level.
 Sets the maximum distance between key frames.
 Set the granule position.
 Sets the quantization parameters to use.
 Disables any encoder features that would prevent lossless transcoding back to VP3.
 Gets the maximum speed level.
#define TH_ENCCTL_SET_SPLEVEL   (14)
 Sets the speed level.


#define OC_FAULT   -1
 General failure.
#define OC_EINVAL   -10
 Library encountered invalid internal data.
#define OC_DISABLED   -11
 Requested action is disabled.
#define OC_BADHEADER   -20
 Header packet was corrupt/invalid.
#define OC_NOTFORMAT   -21
 Packet is not a theora packet.
#define OC_VERSION   -22
 Bitstream version is not handled.
#define OC_IMPL   -23
 Feature or action not implemented.
#define OC_BADPACKET   -24
 Packet is corrupt.
#define OC_NEWPACKET   -25
 Packet is an (ignorable) unhandled extension.
#define OC_DUPFRAME   1
 Packet is a dropped frame.


enum  theora_colorspace { OC_CS_UNSPECIFIED, OC_CS_ITU_REC_470M, OC_CS_ITU_REC_470BG, OC_CS_NSPACES }
 A Colorspace. More...
enum  theora_pixelformat { OC_PF_420, OC_PF_RSVD, OC_PF_422, OC_PF_444 }
 A Chroma subsampling. More...


const char * theora_version_string (void)
 Retrieve a human-readable string to identify the encoder vendor and version.
ogg_uint32_t theora_version_number (void)
 Retrieve a 32-bit version number.
int theora_encode_init (theora_state *th, theora_info *ti)
 Initialize the theora encoder.
int theora_encode_YUVin (theora_state *t, yuv_buffer *yuv)
 Submit a YUV buffer to the theora encoder.
int theora_encode_packetout (theora_state *t, int last_p, ogg_packet *op)
 Request the next packet of encoded video.
int theora_encode_header (theora_state *t, ogg_packet *op)
 Request a packet containing the initial header.
int theora_encode_comment (theora_comment *tc, ogg_packet *op)
 Request a comment header packet from provided metadata.
int theora_encode_tables (theora_state *t, ogg_packet *op)
 Request a packet containing the codebook tables for the stream.
int theora_decode_header (theora_info *ci, theora_comment *cc, ogg_packet *op)
 Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables.
int theora_decode_init (theora_state *th, theora_info *c)
 Initialize a theora_state handle for decoding.
int theora_decode_packetin (theora_state *th, ogg_packet *op)
 Input a packet containing encoded data into the theora decoder.
int theora_decode_YUVout (theora_state *th, yuv_buffer *yuv)
 Output the next available frame of decoded YUV data.
int theora_packet_isheader (ogg_packet *op)
 Report whether a theora packet is a header or not This function does no verification beyond checking the header flag bit so it should not be used for bitstream identification; use theora_decode_header() for that.
int theora_packet_iskeyframe (ogg_packet *op)
 Report whether a theora packet is a keyframe or not.
int theora_granule_shift (theora_info *ti)
 Report the granulepos shift radix.
ogg_int64_t theora_granule_frame (theora_state *th, ogg_int64_t granulepos)
 Convert a granulepos to an absolute frame index, starting at 0.
double theora_granule_time (theora_state *th, ogg_int64_t granulepos)
 Convert a granulepos to absolute time in seconds.
void theora_info_init (theora_info *c)
 Initialize a theora_info structure.
void theora_info_clear (theora_info *c)
 Clear a theora_info structure.
void theora_clear (theora_state *t)
 Free all internal data associated with a theora_state handle.
void theora_comment_init (theora_comment *tc)
 Initialize an allocated theora_comment structure.
void theora_comment_add (theora_comment *tc, char *comment)
 Add a comment to an initialized theora_comment structure.
void theora_comment_add_tag (theora_comment *tc, char *tag, char *value)
 Add a comment to an initialized theora_comment structure.
char * theora_comment_query (theora_comment *tc, char *tag, int count)
 Look up a comment value by tag.
int theora_comment_query_count (theora_comment *tc, char *tag)
 Look up the number of instances of a tag.
void theora_comment_clear (theora_comment *tc)
 Clear an allocated theora_comment struct so that it can be freed.
int theora_control (theora_state *th, int req, void *buf, size_t buf_sz)
 Encoder control function.

Detailed Description

The libtheora pre-1.0 legacy C API.

Generated on Mon Nov 3 10:42:44 2008 for libtheora by  doxygen 1.4.6