X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fframework%2Fmlt_types.h;h=764c0c4d1bdefa5a62d48e387f474a95eeca88e2;hb=7601aa4468f96fb8e3395266b194e7e7bd095453;hp=05c7bf5c95e839b9c317ae70543bdcfb5a964c30;hpb=3225ba127131f97c1e0bd6d3bbc144fd50c00c84;p=mlt diff --git a/src/framework/mlt_types.h b/src/framework/mlt_types.h index 05c7bf5c..764c0c4d 100644 --- a/src/framework/mlt_types.h +++ b/src/framework/mlt_types.h @@ -2,7 +2,7 @@ * \file mlt_types.h * \brief Provides forward definitions of all public types * - * Copyright (C) 2003-2009 Ushodaya Enterprises Limited + * Copyright (C) 2003-2012 Ushodaya Enterprises Limited * \author Charles Yates * * This library is free software; you can redistribute it and/or @@ -27,10 +27,14 @@ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) #endif -#include - +#include +#include #include "mlt_pool.h" +#ifndef PATH_MAX +#define PATH_MAX 4096 +#endif + /** The set of supported image formats */ typedef enum @@ -40,7 +44,9 @@ typedef enum 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_opengl, /**< (deprecated) suitable for OpenGL texture */ + mlt_image_glsl, /**< for opengl module internal use only */ + mlt_image_glsl_texture /**< an OpenGL texture name */ } mlt_image_format; @@ -52,10 +58,23 @@ typedef enum 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_float, /**< 32-bit non-interleaved floating point */ + mlt_audio_s32le, /**< signed 32-bit interleaved PCM */ + mlt_audio_f32le, /**< 32-bit interleaved floating point */ + mlt_audio_u8 /**< unsigned 8-bit interleaved PCM */ } mlt_audio_format; +/** The time string formats */ + +typedef enum +{ + mlt_time_frames = 0, /**< frame count */ + mlt_time_clock, /**< SMIL clock-value as [[hh:]mm:]ss[.fraction] */ + mlt_time_smpte /**< SMPTE timecode as [[[hh:]mm:]ss:]frames */ +} +mlt_time_format; + /** The relative time qualifiers */ typedef enum @@ -84,10 +103,14 @@ typedef enum mlt_service_type; /* I don't want to break anyone's applications without warning. -Zach */ -#undef DOUBLE_MLT_POSITION +#define DOUBLE_MLT_POSITION #ifdef DOUBLE_MLT_POSITION +#define MLT_POSITION_FMT "%f" +#define MLT_POSITION_MOD(A, B) (A - B * ((int)(A / B))) typedef double mlt_position; #else +#define MLT_POSITION_MOD(A, B) A % B +#define MLT_POSITION_FMT "%d" typedef int32_t mlt_position; #endif @@ -116,12 +139,22 @@ typedef struct mlt_cache_item_s *mlt_cache_item; /**< pointer to CacheIte 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_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_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