#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... | |
Defines | |
#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. | |
theora_control() codes | |
#define | TH_DECCTL_GET_PPLEVEL_MAX (1) |
Get the maximum post-processing level. | |
#define | TH_DECCTL_SET_PPLEVEL (3) |
Set the post-processing level. | |
#define | TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4) |
Sets the maximum distance between key frames. | |
#define | TH_DECCTL_SET_GRANPOS (5) |
Set the granule position. | |
#define | TH_DECCTL_SET_TELEMETRY_MBMODE (9) |
#define | TH_DECCTL_SET_TELEMETRY_MV (11) |
#define | TH_DECCTL_SET_TELEMETRY_QI (13) |
#define | TH_DECCTL_SET_TELEMETRY_BITS (15) |
#define | TH_ENCCTL_SET_QUANT_PARAMS (2) |
Sets the quantization parameters to use. | |
#define | TH_ENCCTL_SET_VP3_COMPATIBLE (10) |
Disables any encoder features that would prevent lossless transcoding back to VP3. | |
#define | TH_ENCCTL_GET_SPLEVEL_MAX (12) |
Gets the maximum speed level. | |
#define | TH_ENCCTL_SET_SPLEVEL (14) |
Sets the speed level. | |
#define | TH_ENCCTL_SET_DUP_COUNT (18) |
Sets the number of duplicates of the next frame to produce. | |
Enumerations | |
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... | |
Functions | |
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. |