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
00037 #ifndef __ANX_TYPES_H__
00038 #define __ANX_TYPES_H__
00039
00040 #include <stdio.h>
00041 #include <annodex/anx_int64.h>
00042 #include <annodex/anx_list.h>
00043
00044 #ifndef _ANX_PRIVATE
00045
00048 typedef void ANNODEX;
00049 #endif
00050
00052 typedef struct _AnxTrack AnxTrack;
00053
00057 struct _AnxTrack {
00059 long serialno;
00060
00062 char * id;
00063
00065 char * content_type;
00066
00068 long nr_header_packets;
00069
00071 anx_int64_t granule_rate_n;
00072
00074 anx_int64_t granule_rate_d;
00075 };
00076
00077
00078
00079 typedef struct _AnxHead AnxHead;
00080 typedef struct _AnxClip AnxClip;
00081 typedef struct _AnxMetaElement AnxMetaElement;
00082 typedef struct _AnxDescElement AnxDescElement;
00083
00084 struct _AnxMetaElement {
00085 char *id;
00086 char *lang;
00087 char *dir;
00088 char *name;
00089 char *content;
00090 char *scheme;
00091 };
00092
00093 struct _AnxDescElement {
00094 char *id;
00095 char *lang;
00096 char *dir;
00097 char *desc;
00098 };
00099
00100 struct _AnxHead {
00101 char *head_id;
00102 char *lang;
00103 char *dir;
00104 char *defltlang;
00105 char *defltdir;
00106 char *profile;
00107 char *title;
00108 char *title_id;
00109 char *title_lang;
00110 char *title_dir;
00111 char *base_id;
00112 char *base_href;
00113 AnxList * meta;
00114 };
00115
00116 struct _AnxClip {
00117 char *clip_id;
00118 char *lang;
00119 char *dir;
00120 char *track;
00121 char *anchor_id;
00122 char *anchor_lang;
00123 char *anchor_dir;
00124 char *anchor_class;
00125 char *anchor_href;
00126 char *anchor_text;
00127 char *img_id;
00128 char *img_lang;
00129 char *img_dir;
00130 char *img_src;
00131 char *img_alt;
00132 char *desc_id;
00133 char *desc_lang;
00134 char *desc_dir;
00135 char *desc_text;
00136 AnxList * meta;
00137 };
00138
00139
00140
00141 typedef int (*AnxImportStream) (double timebase, char * utc, void * user_data);
00142 typedef int (*AnxImportHead) (AnxHead * head, void * user_data);
00143 typedef int (*AnxImportClip) (AnxClip * clip, double time_offset,
00144 void * user_data);
00145
00146 typedef int (*AnxImportImport) (double start_time, char * filename,
00147 char * id, char * content_type,
00148 double seek_offset, double seek_end,
00149 void * user_data);
00150
00151 typedef struct _AnxImportCallbacks AnxImportCallbacks;
00152
00153 struct _AnxImportCallbacks {
00154 AnxImportStream import_stream;
00155 AnxImportHead import_head;
00156 AnxImportClip import_clip;
00157 void * import_user_data;
00158 AnxImportImport import_import;
00159 void * import_import_user_data;
00160 };
00161
00162 #endif