* \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 <charles.yates@pandora.be>
*
* This library is free software; you can redistribute it and/or
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif
-#include <stdint.h>
-
+#include <inttypes.h>
+#include <limits.h>
#include "mlt_pool.h"
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+
/** The set of supported image formats */
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;
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
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
#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 <pthread.h>
+/* 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