libannodex 0.7.3
|
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 00033 #ifndef __ANX_READ_H__ 00034 #define __ANX_READ_H__ 00035 00052 #include <annodex/anx_types.h> 00053 00054 #ifdef __cplusplus 00055 extern "C" { 00056 #endif 00057 00072 typedef int (*AnxReadStream) (ANNODEX * annodex, double timebase, 00073 char * utc, void * user_data); 00074 00094 typedef int (*AnxReadTrack) (ANNODEX * annodex, long serialno, 00095 char * id, char * content_type, 00096 anx_int64_t granule_rate_n, 00097 anx_int64_t granule_rate_d, 00098 int nr_header_packets, 00099 void * user_data); 00113 typedef int (*AnxReadHead) (ANNODEX * annodex, const AnxHead * head, 00114 void * user_data); 00115 00129 typedef int (*AnxReadClip) (ANNODEX * annodex, const AnxClip * clip, 00130 void * user_data); 00131 00148 typedef int (*AnxReadRaw) (ANNODEX * annodex, unsigned char * data, long n, 00149 long serialno, anx_int64_t granulepos, 00150 void * user_data); 00151 00159 int 00160 anx_set_read_stream_callback (ANNODEX * annodex, AnxReadStream read_stream, 00161 void * user_data); 00162 00168 void * 00169 anx_get_read_stream_user_data (ANNODEX * annodex); 00170 00178 int 00179 anx_set_read_track_callback (ANNODEX * annodex, AnxReadTrack read_track, 00180 void * user_data); 00181 00187 void * 00188 anx_get_read_track_user_data (ANNODEX * annodex); 00189 00197 int 00198 anx_set_read_head_callback (ANNODEX * annodex, AnxReadHead read_head, 00199 void * user_data); 00200 00206 void * 00207 anx_get_read_head_user_data (ANNODEX * annodex); 00208 00216 int 00217 anx_set_read_clip_callback (ANNODEX * annodex, AnxReadClip read_clip, 00218 void * user_data); 00219 00225 void * 00226 anx_get_read_clip_user_data (ANNODEX * annodex); 00227 00235 int 00236 anx_set_read_raw_callback (ANNODEX * annodex, AnxReadRaw read_raw, 00237 void * user_data); 00238 00244 void * 00245 anx_get_read_raw_user_data (ANNODEX * annodex); 00246 00256 long anx_read (ANNODEX * annodex, long n); 00257 00269 long anx_read_input (ANNODEX * annodex, unsigned char * buf, long n); 00270 00271 #ifdef __cplusplus 00272 } 00273 #endif 00274 00275 #endif /* __ANX_READ_H__ */