17#ifndef OGG_THEORA_HEADER
18#define OGG_THEORA_HEADER
305#define TH_DECCTL_GET_PPLEVEL_MAX (1)
312#define TH_DECCTL_SET_PPLEVEL (3)
326#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)
335#define TH_DECCTL_SET_GRANPOS (5)
352#define TH_ENCCTL_SET_QUANT_PARAMS (2)
381#define TH_ENCCTL_SET_VP3_COMPATIBLE (10)
396#define TH_ENCCTL_GET_SPLEVEL_MAX (12)
411#define TH_ENCCTL_SET_SPLEVEL (14)
417#define OC_DISABLED -11
418#define OC_BADHEADER -20
419#define OC_NOTFORMAT -21
420#define OC_VERSION -22
422#define OC_BADPACKET -24
423#define OC_NEWPACKET -25
734 char *tag,
char *value);
Theora bitstream info.
Definition: theora.h:205
ogg_uint32_t keyframe_frequency
Definition: theora.h:231
int target_bitrate
nominal bitrate in bits per second
Definition: theora.h:217
ogg_uint32_t width
encoded frame width
Definition: theora.h:206
int keyframe_auto_p
Definition: theora.h:230
ogg_uint32_t frame_height
display frame height
Definition: theora.h:209
int quick_p
Quick encode/decode.
Definition: theora.h:219
ogg_uint32_t fps_numerator
frame rate numerator
Definition: theora.h:212
ogg_int32_t sharpness
Definition: theora.h:238
ogg_uint32_t keyframe_data_target_bitrate
Definition: theora.h:234
ogg_uint32_t aspect_numerator
pixel aspect ratio numerator
Definition: theora.h:214
theora_colorspace colorspace
colorspace
Definition: theora.h:216
theora_pixelformat pixelformat
chroma subsampling mode to expect
Definition: theora.h:240
void * codec_setup
Definition: theora.h:226
int quality
Nominal quality setting, 0-63.
Definition: theora.h:218
unsigned char version_minor
Definition: theora.h:223
unsigned char version_major
Definition: theora.h:222
ogg_uint32_t frame_width
display frame width
Definition: theora.h:208
ogg_uint32_t offset_y
vertical offset of the displayed frame
Definition: theora.h:211
ogg_int32_t keyframe_auto_threshold
Definition: theora.h:235
ogg_uint32_t fps_denominator
frame rate denominator
Definition: theora.h:213
unsigned char version_subminor
Definition: theora.h:224
ogg_uint32_t keyframe_mindistance
Definition: theora.h:236
ogg_int32_t noise_sensitivity
Definition: theora.h:237
ogg_uint32_t keyframe_frequency_force
Definition: theora.h:232
ogg_uint32_t height
encoded frame height
Definition: theora.h:207
int dropframes_p
Definition: theora.h:229
ogg_uint32_t offset_x
horizontal offset of the displayed frame
Definition: theora.h:210
ogg_uint32_t aspect_denominator
pixel aspect ratio denominator
Definition: theora.h:215
Codec internal state and context.
Definition: theora.h:246
theora_info * i
Definition: theora.h:247
void * internal_encode
Definition: theora.h:250
ogg_int64_t granulepos
Definition: theora.h:248
void * internal_decode
Definition: theora.h:251
A YUV buffer for passing uncompressed frames to and from the codec.
Definition: theora.h:146
int y_height
Height of the luminance plane.
Definition: theora.h:148
int uv_height
Height of the chroma planes.
Definition: theora.h:152
unsigned char * y
Pointer to start of luminance data.
Definition: theora.h:154
unsigned char * u
Pointer to start of Cb data.
Definition: theora.h:155
int uv_width
Width of the Cb and Cr chroma planes.
Definition: theora.h:151
int y_stride
Offset in bytes between successive rows.
Definition: theora.h:149
unsigned char * v
Pointer to start of Cr data.
Definition: theora.h:156
int y_width
Width of the Y' luminance plane.
Definition: theora.h:147
int uv_stride
Offset between successive chroma rows.
Definition: theora.h:153
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,...
void theora_comment_clear(theora_comment *tc)
Clear an allocated theora_comment struct so that it can be freed.
int theora_decode_YUVout(theora_state *th, yuv_buffer *yuv)
Output the next available frame of decoded YUV data.
int theora_encode_init(theora_state *th, theora_info *ti)
Initialize the theora encoder.
int theora_comment_query_count(theora_comment *tc, char *tag)
Look up the number of instances of a tag.
int theora_control(theora_state *th, int req, void *buf, size_t buf_sz)
Encoder control function.
int theora_decode_init(theora_state *th, theora_info *c)
Initialize a theora_state handle for decoding.
void theora_info_init(theora_info *c)
Initialize a theora_info structure.
void theora_comment_add_tag(theora_comment *tc, char *tag, char *value)
Add a comment to an initialized theora_comment structure.
int theora_packet_iskeyframe(ogg_packet *op)
Report whether a theora packet is a keyframe or not.
double theora_granule_time(theora_state *th, ogg_int64_t granulepos)
Convert a granulepos to absolute time in seconds.
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_encode_packetout(theora_state *t, int last_p, ogg_packet *op)
Request the next packet of encoded video.
void theora_comment_add(theora_comment *tc, char *comment)
Add a comment to an initialized theora_comment structure.
ogg_int64_t theora_granule_frame(theora_state *th, ogg_int64_t granulepos)
Convert a granulepos to an absolute frame index, starting at 0.
void theora_comment_init(theora_comment *tc)
Initialize an allocated theora_comment structure.
theora_colorspace
A Colorspace.
Definition: theora.h:163
@ OC_CS_ITU_REC_470BG
This is the best option for 'PAL' content.
Definition: theora.h:166
@ OC_CS_NSPACES
This marks the end of the defined colorspaces.
Definition: theora.h:167
@ OC_CS_ITU_REC_470M
This is the best option for 'NTSC' content.
Definition: theora.h:165
@ OC_CS_UNSPECIFIED
The colorspace is unknown or unspecified.
Definition: theora.h:164
int theora_decode_packetin(theora_state *th, ogg_packet *op)
Input a packet containing encoded data into the theora decoder.
void theora_clear(theora_state *t)
Free all internal data associated with a theora_state handle.
int theora_packet_isheader(ogg_packet *op)
Report whether a theora packet is a header or not This function does no verification beyond checking ...
void theora_info_clear(theora_info *c)
Clear a theora_info structure.
int theora_encode_YUVin(theora_state *t, yuv_buffer *yuv)
Submit a YUV buffer to the theora encoder.
const char * theora_version_string(void)
Retrieve a human-readable string to identify the encoder vendor and version.
char * theora_comment_query(theora_comment *tc, char *tag, int count)
Look up a comment value by tag.
struct theora_comment theora_comment
Comment header metadata.
int theora_granule_shift(theora_info *ti)
Report the granulepos shift radix.
ogg_uint32_t theora_version_number(void)
Retrieve a 32-bit version number.
theora_pixelformat
A Chroma subsampling.
Definition: theora.h:177
@ OC_PF_444
No chroma subsampling at all (4:4:4)
Definition: theora.h:181
@ OC_PF_422
Horizonatal chroma subsampling by 2 (4:2:2)
Definition: theora.h:180
@ OC_PF_420
Chroma subsampling by 2 in each direction (4:2:0)
Definition: theora.h:178
@ OC_PF_RSVD
Reserved value.
Definition: theora.h:179