|
mlt 0.7.6
|
00001 00024 #ifndef _MLT_SERVICE_H_ 00025 #define _MLT_SERVICE_H_ 00026 00027 #include "mlt_properties.h" 00028 #include "mlt_types.h" 00029 00059 struct mlt_service_s 00060 { 00061 struct mlt_properties_s parent; 00070 int ( *get_frame )( mlt_service self, mlt_frame_ptr frame, int index ); 00071 00073 mlt_destructor close; 00074 void *close_object; 00076 void *local; 00077 void *child; 00078 }; 00079 00080 #define MLT_SERVICE_PROPERTIES( service ) ( &( service )->parent ) 00081 00082 extern int mlt_service_init( mlt_service self, void *child ); 00083 extern void mlt_service_lock( mlt_service self ); 00084 extern void mlt_service_unlock( mlt_service self ); 00085 extern mlt_service_type mlt_service_identify( mlt_service self ); 00086 extern int mlt_service_connect_producer( mlt_service self, mlt_service producer, int index ); 00087 extern mlt_service mlt_service_get_producer( mlt_service self ); 00088 extern int mlt_service_get_frame( mlt_service self, mlt_frame_ptr frame, int index ); 00089 extern mlt_properties mlt_service_properties( mlt_service self ); 00090 extern mlt_service mlt_service_consumer( mlt_service self ); 00091 extern mlt_service mlt_service_producer( mlt_service self ); 00092 extern int mlt_service_attach( mlt_service self, mlt_filter filter ); 00093 extern int mlt_service_detach( mlt_service self, mlt_filter filter ); 00094 extern void mlt_service_apply_filters( mlt_service self, mlt_frame frame, int index ); 00095 extern mlt_filter mlt_service_filter( mlt_service self, int index ); 00096 extern mlt_profile mlt_service_profile( mlt_service self ); 00097 extern void mlt_service_close( mlt_service self ); 00098 00099 extern void mlt_service_cache_put( mlt_service self, const char *name, void* data, int size, mlt_destructor destructor ); 00100 extern mlt_cache_item mlt_service_cache_get( mlt_service self, const char *name ); 00101 extern void mlt_service_cache_set_size( mlt_service self, const char *name, int size ); 00102 extern int mlt_service_cache_get_size( mlt_service self, const char *name ); 00103 extern void mlt_service_cache_purge( mlt_service self ); 00104 00105 #endif 00106
1.7.3