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_WRITE_H__
00034 #define __ANX_WRITE_H__
00035
00061 #include <annodex/anx_types.h>
00062
00063 #ifdef __cplusplus
00064 extern "C" {
00065 #endif
00066
00071 void anx_init_importers (char * content_type_pattern);
00072
00077 long anx_write_get_next_page_size (ANNODEX * annodex);
00078
00089 int
00090 anx_write_import (ANNODEX * annodex, char * filename,
00091 char * id, char * content_type,
00092 double seek_offset, double seek_end, int flags);
00093
00100 int
00101 anx_write_set_anno_callbacks (ANNODEX * annodex,
00102 AnxImportHead import_head_callback,
00103 AnxImportClip import_clip_callback,
00104 void * user_data);
00105
00111 void *
00112 anx_write_get_anno_user_data (ANNODEX * annodex);
00113
00121 int
00122 anx_write_set_ii_callback (ANNODEX * annodex,
00123 AnxImportImport import_import_callback,
00124 void * user_data);
00125
00131 void *
00132 anx_write_get_ii_user_data (ANNODEX * annodex);
00133
00140 int
00141 anx_insert_clip (ANNODEX * annodex, double at_time, AnxClip * clip);
00142
00143 double anx_writer_get_end (ANNODEX * annodex);
00144 int anx_writer_set_end (ANNODEX * annodex, double end_time);
00145
00152 long anx_write (ANNODEX * annodex, long n);
00153
00162 long anx_write_output (ANNODEX * annodex, unsigned char * buf, long n);
00163
00164 int anx_request_header (ANNODEX * annodex);
00165 int anx_request_media_sync (ANNODEX * annodex);
00166
00167 #ifdef _UNIMPLEMENTED_
00168
00169
00170
00171 typedef struct _AnxSchedule AnxSchedule;
00172 typedef struct _AnxImport AnxImport;
00173
00174 typedef enum _AnxSchedType {
00175 ANX_SCHED_CLIP,
00176 ANX_SCHED_IMPORT
00177 } AnxSchedType;
00178
00179 struct _AnxImport {
00180 char * location;
00181 char * content_type;
00182 int flags;
00183 };
00184
00185 struct _AnxSchedule {
00186 double start_time;
00187 AnxSchedType type;
00188 union {
00189 AnxClip * clip;
00190 AnxImport * import;
00191 } data;
00192 };
00193
00194 AnxSchedule *
00195 anx_schedule_query (ANNODEX * annodex, double at_time, AnxSchedType type);
00196
00197 int
00198 anx_schedule_remove (ANNODEX * annodex, double at_time, AnxSchedType type);
00199
00200 AnxSchedule *
00201 anx_schedule_first (ANNODEX * annodex);
00202
00203 AnxSchedule *
00204 anx_schedule_next (ANNODEX * annodex, AnxSchedule * schedule);
00205
00206 AnxSchedule *
00207 anx_schedule_prev (ANNODEX * annodex, AnxSchedule * schedule);
00208
00209 #endif
00210
00211 #ifdef __cplusplus
00212 }
00213 #endif
00214
00215 #endif