X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fframework%2Fmlt_types.h;h=3f79453ef5c2147882a8ac57d3d1b43d85ed59de;hb=e5058dc48e775f3e51e3afa992638c8e70988fce;hp=f7100555d7b1fd54d6bafe9f8246830f73b26fab;hpb=b50585d9682a132848c9f6d040c3bd1c9d6fcafc;p=mlt diff --git a/src/framework/mlt_types.h b/src/framework/mlt_types.h index f7100555..3f79453e 100644 --- a/src/framework/mlt_types.h +++ b/src/framework/mlt_types.h @@ -1,21 +1,23 @@ -/* - * mlt_types.h -- provides forward definitions of all public types - * Copyright (C) 2003-2004 Ushodaya Enterprises Limited - * Author: Charles Yates +/** + * \file mlt_types.h + * \brief Provides forward definitions of all public types * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * Copyright (C) 2003-2009 Ushodaya Enterprises Limited + * \author Charles Yates * - * This program is distributed in the hope that it will be useful, + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _MLT_TYPES_H_ @@ -25,48 +27,61 @@ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) #endif -#include +#include #include "mlt_pool.h" +/** The set of supported image formats */ + typedef enum { - mlt_image_none = 0, - mlt_image_rgb24, - mlt_image_rgb24a, - mlt_image_yuv422, - mlt_image_yuv420p, - mlt_image_opengl + mlt_image_none = 0,/**< image not available */ + mlt_image_rgb24, /**< 8-bit RGB */ + mlt_image_rgb24a, /**< 8-bit RGB with alpha channel */ + mlt_image_yuv422, /**< 8-bit YUV 4:2:2 packed */ + mlt_image_yuv420p, /**< 8-bit YUV 4:2:0 planar */ + mlt_image_opengl /**< suitable for OpenGL texture */ } mlt_image_format; +/** The set of supported audio formats */ + typedef enum { - mlt_audio_none = 0, - mlt_audio_pcm + mlt_audio_none = 0,/**< audio not available */ + mlt_audio_pcm = 1, /**< \deprecated signed 16-bit interleaved PCM */ + mlt_audio_s16 = 1, /**< signed 16-bit interleaved PCM */ + mlt_audio_s32, /**< signed 32-bit non-interleaved PCM */ + mlt_audio_float, /**< 32-bit non-interleaved floating point */ + mlt_audio_s32le, /**< signed 32-bit interleaved PCM, may only used by producers */ + mlt_audio_f32le /**< 32-bit interleaved floating point, may only be used by producers */ } mlt_audio_format; +/** The relative time qualifiers */ + typedef enum { - mlt_whence_relative_start, - mlt_whence_relative_current, - mlt_whence_relative_end + mlt_whence_relative_start, /**< relative to the beginning */ + mlt_whence_relative_current,/**< relative to the current position */ + mlt_whence_relative_end /**< relative to the end */ } mlt_whence; +/** The recognized subclasses of mlt_service */ + typedef enum { - invalid_type, - unknown_type, - producer_type, - playlist_type, - tractor_type, - multitrack_type, - filter_type, - transition_type, - consumer_type, - field_type + invalid_type, /**< invalid service */ + unknown_type, /**< unknown class */ + producer_type, /**< Producer class */ + tractor_type, /**< Tractor class */ + playlist_type, /**< Playlist class */ + multitrack_type, /**< Multitrack class */ + filter_type, /**< Filter class */ + transition_type, /**< Transition class */ + consumer_type, /**< Consumer class */ + field_type /**< Field class */ } mlt_service_type; @@ -78,32 +93,47 @@ typedef double mlt_position; typedef int32_t mlt_position; #endif -typedef struct mlt_frame_s *mlt_frame, **mlt_frame_ptr; -typedef struct mlt_properties_s *mlt_properties; -typedef struct mlt_event_struct *mlt_event; -typedef struct mlt_service_s *mlt_service; -typedef struct mlt_producer_s *mlt_producer; -typedef struct mlt_playlist_s *mlt_playlist; -typedef struct mlt_multitrack_s *mlt_multitrack; -typedef struct mlt_filter_s *mlt_filter; -typedef struct mlt_transition_s *mlt_transition; -typedef struct mlt_tractor_s *mlt_tractor; -typedef struct mlt_field_s *mlt_field; -typedef struct mlt_consumer_s *mlt_consumer; -typedef struct mlt_parser_s *mlt_parser; -typedef struct mlt_deque_s *mlt_deque; -typedef struct mlt_geometry_s *mlt_geometry; -typedef struct mlt_geometry_item_s *mlt_geometry_item; - -typedef void ( *mlt_destructor )( void * ); -typedef char *( *mlt_serialiser )( void *, int length ); - -#define MLT_SERVICE(x) ( ( mlt_service )( x ) ) -#define MLT_PRODUCER(x) ( ( mlt_producer )( x ) ) -#define MLT_MULTITRACK(x) ( ( mlt_multitrack )( x ) ) -#define MLT_PLAYLIST(x) ( ( mlt_playlist )( x ) ) -#define MLT_TRACTOR(x) ( ( mlt_tractor )( x ) ) -#define MLT_FILTER(x) ( ( mlt_filter )( x ) ) -#define MLT_TRANSITION(x) ( ( mlt_transition )( x ) ) +typedef struct mlt_frame_s *mlt_frame, **mlt_frame_ptr; /**< pointer to Frame object */ +typedef struct mlt_property_s *mlt_property; /**< pointer to Property object */ +typedef struct mlt_properties_s *mlt_properties; /**< pointer to Properties object */ +typedef struct mlt_event_struct *mlt_event; /**< pointer to Event object */ +typedef struct mlt_service_s *mlt_service; /**< pointer to Service object */ +typedef struct mlt_producer_s *mlt_producer; /**< pointer to Producer object */ +typedef struct mlt_playlist_s *mlt_playlist; /**< pointer to Playlist object */ +typedef struct mlt_multitrack_s *mlt_multitrack; /**< pointer to Multitrack object */ +typedef struct mlt_filter_s *mlt_filter; /**< pointer to Filter object */ +typedef struct mlt_transition_s *mlt_transition; /**< pointer to Transition object */ +typedef struct mlt_tractor_s *mlt_tractor; /**< pointer to Tractor object */ +typedef struct mlt_field_s *mlt_field; /**< pointer to Field object */ +typedef struct mlt_consumer_s *mlt_consumer; /**< pointer to Consumer object */ +typedef struct mlt_parser_s *mlt_parser; /**< pointer to Properties object */ +typedef struct mlt_deque_s *mlt_deque; /**< pointer to Deque object */ +typedef struct mlt_geometry_s *mlt_geometry; /**< pointer to Geometry object */ +typedef struct mlt_geometry_item_s *mlt_geometry_item; /**< pointer to Geometry Item object */ +typedef struct mlt_profile_s *mlt_profile; /**< pointer to Profile object */ +typedef struct mlt_repository_s *mlt_repository; /**< pointer to Repository object */ +typedef struct mlt_cache_s *mlt_cache; /**< pointer to Cache object */ +typedef struct mlt_cache_item_s *mlt_cache_item; /**< pointer to CacheItem object */ + +typedef void ( *mlt_destructor )( void * ); /**< pointer to destructor function */ +typedef char *( *mlt_serialiser )( void *, int length );/**< pointer to serialization function */ + +#define MLT_SERVICE(x) ( ( mlt_service )( x ) ) /**< Cast to a Service pointer */ +#define MLT_PRODUCER(x) ( ( mlt_producer )( x ) ) /**< Cast to a Producer pointer */ +#define MLT_MULTITRACK(x) ( ( mlt_multitrack )( x ) ) /**< Cast to a Multitrack pointer */ +#define MLT_PLAYLIST(x) ( ( mlt_playlist )( x ) ) /**< Cast to a Playlist pointer */ +#define MLT_TRACTOR(x) ( ( mlt_tractor )( x ) ) /**< Cast to a Tractor pointer */ +#define MLT_FILTER(x) ( ( mlt_filter )( x ) ) /**< Cast to a Filter pointer */ +#define MLT_TRANSITION(x) ( ( mlt_transition )( x ) ) /**< Cast to a Transition pointer */ +#define MLT_CONSUMER(x) ( ( mlt_consumer )( x ) ) /**< Cast to a Consumer pointer */ +#define MLT_FRAME(x) ( ( mlt_frame )( x ) ) /**< Cast to a Frame pointer */ + +#ifdef WIN32 +#include +/* Win32 compatibility function declarations */ +extern int usleep(unsigned int useconds); +extern int nanosleep( const struct timespec * rqtp, struct timespec * rmtp ); +extern int setenv(const char *name, const char *value, int overwrite); +#endif #endif