libtheora
1.1.1
|
00001 /******************************************************************** 00002 * * 00003 * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * 00004 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 00005 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 00006 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 00007 * * 00008 * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * 00009 * by the Xiph.Org Foundation http://www.xiph.org/ * 00010 * * 00011 ******************************************************************** 00012 00013 function: 00014 last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $ 00015 00016 ********************************************************************/ 00017 00021 #if !defined(_O_THEORA_THEORADEC_H_) 00022 # define _O_THEORA_THEORADEC_H_ (1) 00023 # include <stddef.h> 00024 # include <ogg/ogg.h> 00025 # include "codec.h" 00026 00027 #if defined(__cplusplus) 00028 extern "C" { 00029 #endif 00030 00031 00032 00050 #define TH_DECCTL_GET_PPLEVEL_MAX (1) 00051 00067 #define TH_DECCTL_SET_PPLEVEL (3) 00068 00079 #define TH_DECCTL_SET_GRANPOS (5) 00080 00093 #define TH_DECCTL_SET_STRIPE_CB (7) 00094 00096 #define TH_DECCTL_SET_TELEMETRY_MBMODE (9) 00097 00098 #define TH_DECCTL_SET_TELEMETRY_MV (11) 00099 00100 #define TH_DECCTL_SET_TELEMETRY_QI (13) 00101 00102 #define TH_DECCTL_SET_TELEMETRY_BITS (15) 00103 00138 typedef void (*th_stripe_decoded_func)(void *_ctx,th_ycbcr_buffer _buf, 00139 int _yfrag0,int _yfrag_end); 00140 00142 typedef struct{ 00145 void *ctx; 00147 th_stripe_decoded_func stripe_decoded; 00148 }th_stripe_callback; 00149 00150 00151 00159 typedef struct th_dec_ctx th_dec_ctx; 00166 typedef struct th_setup_info th_setup_info; 00231 extern int th_decode_headerin(th_info *_info,th_comment *_tc, 00232 th_setup_info **_setup,ogg_packet *_op); 00255 extern th_dec_ctx *th_decode_alloc(const th_info *_info, 00256 const th_setup_info *_setup); 00262 extern void th_setup_free(th_setup_info *_setup); 00271 extern int th_decode_ctl(th_dec_ctx *_dec,int _req,void *_buf, 00272 size_t _buf_sz); 00294 extern int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op, 00295 ogg_int64_t *_granpos); 00311 extern int th_decode_ycbcr_out(th_dec_ctx *_dec, 00312 th_ycbcr_buffer _ycbcr); 00315 extern void th_decode_free(th_dec_ctx *_dec); 00318 00319 00320 00321 #if defined(__cplusplus) 00322 } 00323 #endif 00324 00325 #endif