libannodex  0.7.3
anx_general.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2003 Commonwealth Scientific and Industrial Research
3  Organisation (CSIRO) Australia
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions
7  are met:
8 
9  - Redistributions of source code must retain the above copyright
10  notice, this list of conditions and the following disclaimer.
11 
12  - Redistributions in binary form must reproduce the above copyright
13  notice, this list of conditions and the following disclaimer in the
14  documentation and/or other materials provided with the distribution.
15 
16  - Neither the name of CSIRO Australia nor the names of its
17  contributors may be used to endorse or promote products derived from
18  this software without specific prior written permission.
19 
20  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
23  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ORGANISATION OR
24  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33 #ifndef __ANX_GENERAL_H__
34 #define __ANX_GENERAL_H__
35 
40 #include <annodex/anx_types.h>
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
47 double anx_parse_time (const char * str);
48 
54 int anx_last_error (ANNODEX * annodex);
55 
62 const char * anx_strerror (ANNODEX * annodex);
63 
71 int anx_get_mode (ANNODEX * annodex);
72 
79 ANNODEX * anx_open (char * filename, int mode);
80 
87 ANNODEX * anx_open_stdio (FILE * file, int mode);
88 
95 ANNODEX * anx_new (int mode);
96 
102 int anx_flush (ANNODEX * annodex);
103 
110 ANNODEX * anx_close (ANNODEX * annodex);
111 
117 int anx_destroy (ANNODEX * annodex);
118 
124 int anx_ready (ANNODEX * annodex);
125 
131 int anx_eos (ANNODEX * annodex);
132 
141 AnxHead * anx_set_head (ANNODEX * annodex, AnxHead * head);
142 
148 AnxHead * anx_get_head (ANNODEX * annodex);
149 
150 #if 1
151 
157 anx_int64_t anx_tell (ANNODEX * annodex);
158 #endif
159 
160 #if 0 /* Deprecated */
161 long anx_seek (ANNODEX * annodex, long packets, int whence);
162 #endif
163 
169 int anx_seek_id (ANNODEX * annodex, const char * id);
170 
176 double anx_get_presentation_time (ANNODEX * annodex);
177 
183 double anx_set_presentation_time (ANNODEX * annodex, double seconds);
184 
190 double anx_get_basetime (ANNODEX * annodex);
191 
197 double anx_set_basetime (ANNODEX * annodex, double seconds);
198 
205 double anx_get_bitrate (ANNODEX * annodex);
206 
212 double anx_get_duration (ANNODEX * annodex);
213 
219 double anx_tell_time (ANNODEX * annodex);
220 
227 double anx_seek_time (ANNODEX * annodex, double seconds, int whence);
228 
229 
239 int anx_head_snprint (char *buf, int n, AnxHead * h);
240 
252 int anx_clip_snprint (char * buf, int n, AnxClip * a,
253  double start, double end);
254 
260 AnxHead * anx_head_free (AnxHead * head);
261 
267 AnxClip * anx_clip_free (AnxClip * clip);
268 
276 AnxHead * anx_head_clone (AnxHead * head);
277 
285 AnxClip * anx_clip_clone (AnxClip * clip);
286 
293 
300 
301 #ifdef __cplusplus
302 }
303 #endif
304 
305 #endif /* __ANX_GENERAL_H__ */
ANNODEX * anx_close(ANNODEX *annodex)
Close an annodex.
ANNODEX * anx_open(char *filename, int mode)
Open a file containing Annodex media.
Definition: anx_types.h:102
AnxHead * anx_set_head(ANNODEX *annodex, AnxHead *head)
Set the head element of the Annodex.
double anx_tell_time(ANNODEX *annodex)
Query the current offset of an annodex expressed as time in seconds.
ANNODEX * anx_new(int mode)
Create a managed Annodex handle This is an alternative interface for non-file annodexes.
Definition: anx_types.h:64
AnxHead * anx_get_head(ANNODEX *annodex)
Get a copy of the head element of an annodex.
int64_t anx_int64_t
This typedef was determined on the system on which the documentation was generated.
Definition: anx_int64.h:93
double anx_get_basetime(ANNODEX *annodex)
Query the basetime of an annodex.
int anx_flush(ANNODEX *annodex)
Flush any unwritten data associated with an annodex.
double anx_set_basetime(ANNODEX *annodex, double seconds)
Set the basetime of an annodex.
int anx_head_snprint(char *buf, int n, AnxHead *h)
Print an AnxHead structure to a memory buffer.
double anx_seek_time(ANNODEX *annodex, double seconds, int whence)
Seek to a time point in an annodex.
double anx_get_bitrate(ANNODEX *annodex)
Query the bitrate of an annodex.
const char * anx_strerror(ANNODEX *annodex)
Retrieve a printable error string corresponding to the most recent error on annodex.
Public structures and datatypes.
AnxLinkElement * anx_link_element_clone(AnxLinkElement *link)
Clone an AnxLinkElement structure.
int anx_destroy(ANNODEX *annodex)
Forcefully close an annodex without flushing any file descriptors.
AnxClip * anx_clip_free(AnxClip *clip)
Free an AnxClip structure.
AnxClip * anx_clip_clone(AnxClip *clip)
Clone an AnxClip structure.
int anx_last_error(ANNODEX *annodex)
Retrieve the error code of the most recent error on an annodex.
void ANNODEX
An ANNODEX handle.
Definition: anx_types.h:55
double anx_get_presentation_time(ANNODEX *annodex)
Query the presentation time of an annodex.
ANNODEX * anx_open_stdio(FILE *file, int mode)
Attach to an existing file descriptor.
AnxMetaElement * anx_meta_element_clone(AnxMetaElement *meta)
Clone an AnxMetaElement structure.
int anx_get_mode(ANNODEX *annodex)
Get the mode of an Annodex.
int anx_seek_id(ANNODEX *annodex, const char *id)
Seek to an anchor identified by id.
double anx_set_presentation_time(ANNODEX *annodex, double seconds)
Set the presentation time of an annodex.
Definition: anx_types.h:87
Definition: anx_types.h:73
AnxHead * anx_head_free(AnxHead *head)
Free an AnxHead structure.
double anx_get_duration(ANNODEX *annodex)
Query the duration of an annodex.
AnxHead * anx_head_clone(AnxHead *head)
Clone an AnxHead structure.
int anx_clip_snprint(char *buf, int n, AnxClip *a, double start, double end)
Print an AnxAnchor structure to a memory buffer.
int anx_eos(ANNODEX *annodex)
Query if an annodex has reached its 'End Of Stream' markers.
int anx_ready(ANNODEX *annodex)
Query if an annodex is ready.
anx_int64_t anx_tell(ANNODEX *annodex)
Query the current byte offset of an annodex.
double anx_parse_time(const char *str)
Time parsing.