#include <ogg/ogg.h>
Go to the source code of this file.
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. | |
Typedefs | |
typedef theora_comment | theora_comment |
Comment header metadata. | |
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 number. | |
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. |
|
Comment header metadata. This structure holds the in-stream metadata corresponding to the 'comment' header packet. Meta data is stored as a series of (tag, value) pairs, in length-encoded string vectors. The first occurence of the '=' character delimits the tag and value. A particular tag may occur more than once. The character set encoding for the strings is always utf-8, but the tag names are limited to case-insensitive ascii. See the spec for details. In filling in this structure, theora_decode_header() will null-terminate the user_comment strings for safety. However, the bitstream format itself treats them as 8-bit clean, and so the length array should be treated as authoritative for their length. |
|
A Colorspace.
|
|
A Chroma subsampling. These enumerate the available chroma subsampling options supported by the theora format. See Section 4.4 of the specification for exact definitions. |
|
Free all internal data associated with a theora_state handle.
|
|
Add a comment to an initialized theora_comment structure.
|
|
Add a comment to an initialized theora_comment structure.
|
|
Clear an allocated theora_comment struct so that it can be freed.
|
|
Initialize an allocated theora_comment structure.
|
|
Look up a comment value by tag.
|
|
Look up the number of instances of a tag.
|
|
Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables.
|
|
Initialize a theora_state handle for decoding.
|
|
Input a packet containing encoded data into the theora decoder.
|
|
Output the next available frame of decoded YUV data.
|
|
Request a comment header packet from provided metadata. A pointer to the comment data is placed in a user-provided ogg_packet structure.
|
|
Request a packet containing the initial header. A pointer to the header data is placed in a user-provided ogg_packet structure.
|
|
Initialize the theora encoder.
|
|
Request the next packet of encoded video. The encoded data is placed in a user-provided ogg_packet structure.
|
|
Request a packet containing the codebook tables for the stream. A pointer to the codebook data is placed in a user-provided ogg_packet structure.
|
|
Submit a YUV buffer to the theora encoder.
|
|
Convert a granulepos to an absolute frame number. The granulepos is interpreted in the context of a given theora_state handle.
|
|
Report the granulepos shift radix. When embedded in Ogg, Theora uses a two-part granulepos, splitting the 64-bit field into two pieces. The more-significant section represents the frame count at the last keyframe, and the less-significant section represents the count of frames since the last keyframe. In this way the overall field is still non-decreasing with time, but usefully encodes a pointer to the last keyframe, which is necessary for correctly restarting decode after a seek. This function reports the number of bits used to represent the distance to the last keyframe, and thus how the granulepos field must be shifted or masked to obtain the two parts. Since libtheora returns compressed data in an ogg_packet structure, this may be generally useful even if the Theora packets are not being used in an Ogg container.
|
|
Convert a granulepos to absolute time in seconds. The granulepos is interpreted in the context of a given theora_state handle.
|
|
Clear a theora_info structure. All values within the given theora_info structure are cleared, and associated internal codec setup data is freed.
|
|
Initialize a theora_info structure. All values within the given theora_info structure are initialized, and space is allocated within libtheora for internal codec setup data.
|
|
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.
|
|
Report whether a theora packet is a keyframe or not.
|
|
Retrieve a 32-bit version number. This number is composed of a 16-bit major version, 8-bit minor version and 8 bit sub-version, composed as follows: (VERSION_MAJOR<<16) + (VERSION_MINOR<<8) + (VERSION_SUB)
|
|
Retrieve a human-readable string to identify the encoder vendor and version.
|