Main Page | Modules | Data Structures | Directories | File List | Globals | Related Pages

anx_read.h

Go to the documentation of this file.
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__ */

Generated on Tue Feb 7 13:35:30 2006 for libannodex by  doxygen 1.4.4