2008-07-29 23:38:23 -07:00
|
|
|
/********************************************************************
|
|
|
|
* *
|
|
|
|
* THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
|
|
|
|
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
|
|
|
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
|
|
|
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
|
|
|
* *
|
|
|
|
* THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2007 *
|
2009-01-21 16:00:49 -08:00
|
|
|
* by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
|
2008-07-29 23:38:23 -07:00
|
|
|
* *
|
|
|
|
********************************************************************
|
|
|
|
|
|
|
|
function:
|
|
|
|
last mod: $Id: apiwrapper.h 13596 2007-08-23 20:05:38Z tterribe $
|
|
|
|
|
|
|
|
********************************************************************/
|
|
|
|
|
|
|
|
#if !defined(_apiwrapper_H)
|
|
|
|
# define _apiwrapper_H (1)
|
|
|
|
# include <ogg/ogg.h>
|
|
|
|
# include <theora/theora.h>
|
|
|
|
# include "theora/theoradec.h"
|
|
|
|
/*# include "theora/theoraenc.h"*/
|
|
|
|
typedef struct th_enc_ctx th_enc_ctx;
|
|
|
|
# include "../internal.h"
|
|
|
|
|
|
|
|
typedef struct th_api_wrapper th_api_wrapper;
|
|
|
|
typedef struct th_api_info th_api_info;
|
|
|
|
|
|
|
|
/*Provide an entry point for the codec setup to clear itself in case we ever
|
|
|
|
want to break pieces off into a common base library shared by encoder and
|
|
|
|
decoder.
|
|
|
|
In addition, this makes several other pieces of the API wrapper cleaner.*/
|
|
|
|
typedef void (*oc_setup_clear_func)(void *_ts);
|
|
|
|
|
|
|
|
/*Generally only one of these pointers will be non-NULL in any given instance.
|
|
|
|
Technically we do not even really need this struct, since we should be able
|
|
|
|
to figure out which one from "context", but doing it this way makes sure we
|
|
|
|
don't flub it up.*/
|
|
|
|
struct th_api_wrapper{
|
|
|
|
oc_setup_clear_func clear;
|
|
|
|
th_setup_info *setup;
|
|
|
|
th_dec_ctx *decode;
|
|
|
|
th_enc_ctx *encode;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct th_api_info{
|
|
|
|
th_api_wrapper api;
|
|
|
|
theora_info info;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
void oc_theora_info2th_info(th_info *_info,const theora_info *_ci);
|
|
|
|
|
|
|
|
#endif
|