00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
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 
00254 int anx_set_user_data (ANNODEX * annodex, void * user_data);
00255 
00265 long anx_read (ANNODEX * annodex, long n);
00266 
00278 long anx_read_input (ANNODEX * annodex, unsigned char * buf, long n);
00279 
00280 #ifdef __cplusplus
00281 }
00282 #endif
00283 
00284 #endif