|
mlt 0.7.6
|
00001 00023 #ifndef _MLT_TYPES_H_ 00024 #define _MLT_TYPES_H_ 00025 00026 #ifndef GCC_VERSION 00027 #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) 00028 #endif 00029 00030 #include <inttypes.h> 00031 #include <limits.h> 00032 #include "mlt_pool.h" 00033 00034 #ifndef PATH_MAX 00035 #define PATH_MAX 4096 00036 #endif 00037 00040 typedef enum 00041 { 00042 mlt_image_none = 0, 00043 mlt_image_rgb24, 00044 mlt_image_rgb24a, 00045 mlt_image_yuv422, 00046 mlt_image_yuv420p, 00047 mlt_image_opengl 00048 } 00049 mlt_image_format; 00050 00053 typedef enum 00054 { 00055 mlt_audio_none = 0, 00056 mlt_audio_pcm = 1, 00057 mlt_audio_s16 = 1, 00058 mlt_audio_s32, 00059 mlt_audio_float, 00060 mlt_audio_s32le, 00061 mlt_audio_f32le 00062 } 00063 mlt_audio_format; 00064 00067 typedef enum 00068 { 00069 mlt_whence_relative_start, 00070 mlt_whence_relative_current, 00071 mlt_whence_relative_end 00072 } 00073 mlt_whence; 00074 00077 typedef enum 00078 { 00079 invalid_type, 00080 unknown_type, 00081 producer_type, 00082 tractor_type, 00083 playlist_type, 00084 multitrack_type, 00085 filter_type, 00086 transition_type, 00087 consumer_type, 00088 field_type 00089 } 00090 mlt_service_type; 00091 00092 /* I don't want to break anyone's applications without warning. -Zach */ 00093 #undef DOUBLE_MLT_POSITION 00094 #ifdef DOUBLE_MLT_POSITION 00095 typedef double mlt_position; 00096 #else 00097 typedef int32_t mlt_position; 00098 #endif 00099 00100 typedef struct mlt_frame_s *mlt_frame, **mlt_frame_ptr; 00101 typedef struct mlt_property_s *mlt_property; 00102 typedef struct mlt_properties_s *mlt_properties; 00103 typedef struct mlt_event_struct *mlt_event; 00104 typedef struct mlt_service_s *mlt_service; 00105 typedef struct mlt_producer_s *mlt_producer; 00106 typedef struct mlt_playlist_s *mlt_playlist; 00107 typedef struct mlt_multitrack_s *mlt_multitrack; 00108 typedef struct mlt_filter_s *mlt_filter; 00109 typedef struct mlt_transition_s *mlt_transition; 00110 typedef struct mlt_tractor_s *mlt_tractor; 00111 typedef struct mlt_field_s *mlt_field; 00112 typedef struct mlt_consumer_s *mlt_consumer; 00113 typedef struct mlt_parser_s *mlt_parser; 00114 typedef struct mlt_deque_s *mlt_deque; 00115 typedef struct mlt_geometry_s *mlt_geometry; 00116 typedef struct mlt_geometry_item_s *mlt_geometry_item; 00117 typedef struct mlt_profile_s *mlt_profile; 00118 typedef struct mlt_repository_s *mlt_repository; 00119 typedef struct mlt_cache_s *mlt_cache; 00120 typedef struct mlt_cache_item_s *mlt_cache_item; 00122 typedef void ( *mlt_destructor )( void * ); 00123 typedef char *( *mlt_serialiser )( void *, int length ); 00125 #define MLT_SERVICE(x) ( ( mlt_service )( x ) ) 00126 #define MLT_PRODUCER(x) ( ( mlt_producer )( x ) ) 00127 #define MLT_MULTITRACK(x) ( ( mlt_multitrack )( x ) ) 00128 #define MLT_PLAYLIST(x) ( ( mlt_playlist )( x ) ) 00129 #define MLT_TRACTOR(x) ( ( mlt_tractor )( x ) ) 00130 #define MLT_FILTER(x) ( ( mlt_filter )( x ) ) 00131 #define MLT_TRANSITION(x) ( ( mlt_transition )( x ) ) 00132 #define MLT_CONSUMER(x) ( ( mlt_consumer )( x ) ) 00133 #define MLT_FRAME(x) ( ( mlt_frame )( x ) ) 00135 #ifdef WIN32 00136 #include <pthread.h> 00137 /* Win32 compatibility function declarations */ 00138 extern int usleep(unsigned int useconds); 00139 extern int nanosleep( const struct timespec * rqtp, struct timespec * rmtp ); 00140 extern int setenv(const char *name, const char *value, int overwrite); 00141 #endif 00142 00143 #endif
1.7.3