#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_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. | |
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. | |
1.5.8