00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00021 #if !defined(_O_THEORA_THEORADEC_H_)
00022 # define _O_THEORA_THEORADEC_H_ (1)
00023 # include <ogg/ogg.h>
00024 # include "codec.h"
00025
00026 #if defined(__cplusplus)
00027 extern "C" {
00028 #endif
00029
00030
00031
00045 #define TH_DECCTL_GET_PPLEVEL_MAX (1)
00046
00058 #define TH_DECCTL_SET_PPLEVEL (3)
00059
00070 #define TH_DECCTL_SET_GRANPOS (5)
00071
00084 #define TH_DECCTL_SET_STRIPE_CB (7)
00085
00120 typedef void (*th_stripe_decoded_func)(void *_ctx,th_ycbcr_buffer _buf,
00121 int _yfrag0,int _yfrag_end);
00122
00124 typedef struct{
00127 void *ctx;
00129 th_stripe_decoded_func stripe_decoded;
00130 }th_stripe_callback;
00131
00132
00133
00141 typedef struct th_dec_ctx th_dec_ctx;
00148 typedef struct th_setup_info th_setup_info;
00213 extern int th_decode_headerin(th_info *_info,th_comment *_tc,
00214 th_setup_info **_setup,ogg_packet *_op);
00221 extern th_dec_ctx *th_decode_alloc(const th_info *_info,
00222 const th_setup_info *_setup);
00228 extern void th_setup_free(th_setup_info *_setup);
00237 extern int th_decode_ctl(th_dec_ctx *_dec,int _req,void *_buf,
00238 size_t _buf_sz);
00260 extern int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op,
00261 ogg_int64_t *_granpos);
00276 extern int th_decode_ycbcr_out(th_dec_ctx *_dec,
00277 th_ycbcr_buffer _ycbcr);
00280 extern void th_decode_free(th_dec_ctx *_dec);
00283
00284
00285
00286 #if defined(__cplusplus)
00287 }
00288 #endif
00289
00290 #endif