00001 /* 00002 Copyright (C) 2003 Commonwealth Scientific and Industrial Research 00003 Organisation (CSIRO) Australia 00004 00005 Redistribution and use in source and binary forms, with or without 00006 modification, are permitted provided that the following conditions 00007 are met: 00008 00009 - Redistributions of source code must retain the above copyright 00010 notice, this list of conditions and the following disclaimer. 00011 00012 - Redistributions in binary form must reproduce the above copyright 00013 notice, this list of conditions and the following disclaimer in the 00014 documentation and/or other materials provided with the distribution. 00015 00016 - Neither the name of CSIRO Australia nor the names of its 00017 contributors may be used to endorse or promote products derived from 00018 this software without specific prior written permission. 00019 00020 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00021 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00022 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 00023 PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ORGANISATION OR 00024 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 00025 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 00026 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 00027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 00028 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 00029 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00030 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00031 */ 00032 00042 #ifndef __OGGPLAY_CALLBACK_INFO__ 00043 #define __OGGPLAY_CALLBACK_INFO__ 00044 00046 typedef struct { 00047 unsigned char * y; 00048 unsigned char * u; 00049 unsigned char * v; 00050 } OggPlayVideoData; 00051 00053 typedef struct { 00054 unsigned char * rgba; 00055 unsigned char * rgb; 00056 size_t width; 00057 size_t height; 00058 size_t stride; 00059 } OggPlayOverlayData; 00060 00062 typedef void * OggPlayAudioData; 00063 00065 typedef char OggPlayTextData; 00066 00067 struct _OggPlayDataHeader; 00069 typedef struct _OggPlayDataHeader OggPlayDataHeader; 00070 00078 OggPlayDataType 00079 oggplay_callback_info_get_type(OggPlayCallbackInfo *info); 00080 00081 int 00082 oggplay_callback_info_get_available(OggPlayCallbackInfo *info); 00083 00084 00085 int 00086 oggplay_callback_info_get_required(OggPlayCallbackInfo *info); 00087 00095 OggPlayDataHeader ** 00096 oggplay_callback_info_get_headers(OggPlayCallbackInfo *info); 00097 00104 ogg_int64_t 00105 oggplay_callback_info_get_record_size(OggPlayDataHeader *header); 00106 00114 OggPlayVideoData * 00115 oggplay_callback_info_get_video_data(OggPlayDataHeader *header); 00116 00124 OggPlayOverlayData * 00125 oggplay_callback_info_get_overlay_data(OggPlayDataHeader *header); 00126 00134 OggPlayAudioData * 00135 oggplay_callback_info_get_audio_data(OggPlayDataHeader *header); 00136 00144 OggPlayTextData * 00145 oggplay_callback_info_get_text_data(OggPlayDataHeader *header); 00146 00154 OggPlayStreamInfo 00155 oggplay_callback_info_get_stream_info(OggPlayCallbackInfo *info); 00156 00157 00158 void 00159 oggplay_callback_info_lock_item(OggPlayDataHeader *header); 00160 00161 void 00162 oggplay_callback_info_unlock_item(OggPlayDataHeader *header); 00163 00170 long 00171 oggplay_callback_info_get_presentation_time(OggPlayDataHeader *header); 00172 00173 #endif