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__ */
anx_get_mode
int anx_get_mode(ANNODEX *annodex)
Get the mode of an Annodex.
anx_set_basetime
double anx_set_basetime(ANNODEX *annodex, double seconds)
Set the basetime of an annodex.
anx_seek_time
double anx_seek_time(ANNODEX *annodex, double seconds, int whence)
Seek to a time point in an annodex.
_AnxLinkElement
Definition: anx_types.h:73
anx_get_bitrate
double anx_get_bitrate(ANNODEX *annodex)
Query the bitrate of an annodex.
_AnxHead
Definition: anx_types.h:87
anx_head_free
AnxHead * anx_head_free(AnxHead *head)
Free an AnxHead structure.
anx_types.h
anx_clip_snprint
int anx_clip_snprint(char *buf, int n, AnxClip *a, double start, double end)
Print an AnxAnchor structure to a memory buffer.
anx_eos
int anx_eos(ANNODEX *annodex)
Query if an annodex has reached its 'End Of Stream' markers.
anx_clip_clone
AnxClip * anx_clip_clone(AnxClip *clip)
Clone an AnxClip structure.
anx_tell
anx_int64_t anx_tell(ANNODEX *annodex)
Query the current byte offset of an annodex.
anx_link_element_clone
AnxLinkElement * anx_link_element_clone(AnxLinkElement *link)
Clone an AnxLinkElement structure.
anx_head_clone
AnxHead * anx_head_clone(AnxHead *head)
Clone an AnxHead structure.
anx_destroy
int anx_destroy(ANNODEX *annodex)
Forcefully close an annodex without flushing any file descriptors.
_AnxMetaElement
Definition: anx_types.h:64
anx_parse_time
double anx_parse_time(const char *str)
Time parsing.
anx_clip_free
AnxClip * anx_clip_free(AnxClip *clip)
Free an AnxClip structure.
anx_ready
int anx_ready(ANNODEX *annodex)
Query if an annodex is ready.
ANNODEX
void ANNODEX
An ANNODEX handle.
Definition: anx_types.h:55
anx_seek_id
int anx_seek_id(ANNODEX *annodex, const char *id)
Seek to an anchor identified by id.
anx_open
ANNODEX * anx_open(char *filename, int mode)
Open a file containing Annodex media.
anx_tell_time
double anx_tell_time(ANNODEX *annodex)
Query the current offset of an annodex expressed as time in seconds.
_AnxClip
Definition: anx_types.h:102
anx_new
ANNODEX * anx_new(int mode)
Create a managed Annodex handle This is an alternative interface for non-file annodexes.
anx_int64_t
int64_t anx_int64_t
This typedef was determined on the system on which the documentation was generated.
Definition: anx_int64.h:93
anx_set_presentation_time
double anx_set_presentation_time(ANNODEX *annodex, double seconds)
Set the presentation time of an annodex.
anx_flush
int anx_flush(ANNODEX *annodex)
Flush any unwritten data associated with an annodex.
anx_get_duration
double anx_get_duration(ANNODEX *annodex)
Query the duration of an annodex.
anx_close
ANNODEX * anx_close(ANNODEX *annodex)
Close an annodex.
anx_head_snprint
int anx_head_snprint(char *buf, int n, AnxHead *h)
Print an AnxHead structure to a memory buffer.
anx_get_head
AnxHead * anx_get_head(ANNODEX *annodex)
Get a copy of the head element of an annodex.
anx_strerror
const char * anx_strerror(ANNODEX *annodex)
Retrieve a printable error string corresponding to the most recent error on annodex.
anx_set_head
AnxHead * anx_set_head(ANNODEX *annodex, AnxHead *head)
Set the head element of the Annodex.
anx_get_presentation_time
double anx_get_presentation_time(ANNODEX *annodex)
Query the presentation time of an annodex.
anx_open_stdio
ANNODEX * anx_open_stdio(FILE *file, int mode)
Attach to an existing file descriptor.
anx_last_error
int anx_last_error(ANNODEX *annodex)
Retrieve the error code of the most recent error on an annodex.
anx_get_basetime
double anx_get_basetime(ANNODEX *annodex)
Query the basetime of an annodex.
anx_meta_element_clone
AnxMetaElement * anx_meta_element_clone(AnxMetaElement *meta)
Clone an AnxMetaElement structure.