26#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
156#ifdef DOUBLE_MLT_POSITION
157#define MLT_POSITION_FMT "%f"
158#define MLT_POSITION_MOD(A, B) ((A) - (B) * ((int)((A) / (B))))
161#define MLT_POSITION_MOD(A, B) ((A) % (B))
162#define MLT_POSITION_FMT "%d"
213typedef char *( *mlt_serialiser )(
void *,
int length );
215#define MLT_SERVICE(x) ( ( mlt_service )( x ) )
216#define MLT_PRODUCER(x) ( ( mlt_producer )( x ) )
217#define MLT_MULTITRACK(x) ( ( mlt_multitrack )( x ) )
218#define MLT_PLAYLIST(x) ( ( mlt_playlist )( x ) )
219#define MLT_TRACTOR(x) ( ( mlt_tractor )( x ) )
220#define MLT_FILTER(x) ( ( mlt_filter )( x ) )
221#define MLT_TRANSITION(x) ( ( mlt_transition )( x ) )
222#define MLT_CONSUMER(x) ( ( mlt_consumer )( x ) )
223#define MLT_FRAME(x) ( ( mlt_frame )( x ) )
226#define MIN(x, y) ((x) < (y) ? (x) : (y))
229#define MAX(x, y) ((x) > (y) ? (x) : (y))
232#define CLAMP(x, min, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))
238#if !defined(__MINGW32__)
239extern int usleep(
unsigned int useconds);
241#ifndef WIN_PTHREADS_TIME_H
242extern int nanosleep(
const struct timespec * rqtp,
struct timespec * rmtp );
244extern int setenv(
const char *
name,
const char *value,
int overwrite);
245extern char* getlocale();
246extern FILE* win32_fopen(
const char *filename_utf8,
const char *mode_utf8);
248extern char* strptime(
const char *buf,
const char *fmt,
struct tm *tm);
249#define mlt_fopen win32_fopen
250#define MLT_DIRLIST_DELIMITER ";"
252#define mlt_fopen fopen
253#define MLT_DIRLIST_DELIMITER ":"
memory pooling functionality
struct mlt_multitrack_s * mlt_multitrack
pointer to Multitrack object
Definition mlt_types.h:195
struct mlt_cache_s * mlt_cache
pointer to Cache object
Definition mlt_types.h:207
mlt_time_format
The time string formats.
Definition mlt_types.h:110
@ mlt_time_clock
SMIL clock-value as [[hh:]mm:]ss[.fraction].
Definition mlt_types.h:112
@ mlt_time_smpte_ndf
SMPTE NDF timecode as [[[hh:]mm:]ss:]frames.
Definition mlt_types.h:115
@ mlt_time_smpte_df
SMPTE timecode as [[[hh:]mm:]ss{:|;}]frames.
Definition mlt_types.h:113
@ mlt_time_smpte
Deprecated.
Definition mlt_types.h:114
@ mlt_time_frames
frame count
Definition mlt_types.h:111
int32_t mlt_position
Definition mlt_types.h:163
struct mlt_property_s * mlt_property
pointer to Property object
Definition mlt_types.h:189
struct mlt_audio_s * mlt_audio
pointer to Audio object
Definition mlt_types.h:187
struct mlt_profile_s * mlt_profile
pointer to Profile object
Definition mlt_types.h:205
struct mlt_frame_s ** mlt_frame_ptr
pointer to Frame object
Definition mlt_types.h:188
struct mlt_tractor_s * mlt_tractor
pointer to Tractor object
Definition mlt_types.h:198
struct mlt_event_struct * mlt_event
pointer to Event object
Definition mlt_types.h:191
mlt_channel_layout
Definition mlt_types.h:76
@ mlt_channel_mono
Definition mlt_types.h:79
@ mlt_channel_quad_side
Definition mlt_types.h:86
@ mlt_channel_2p1
Definition mlt_types.h:81
@ mlt_channel_6p0
Definition mlt_types.h:93
@ mlt_channel_3p0
Definition mlt_types.h:82
@ mlt_channel_6p1_back
Definition mlt_types.h:97
@ mlt_channel_independent
channels are not related
Definition mlt_types.h:78
@ mlt_channel_6p0_front
Definition mlt_types.h:94
@ mlt_channel_stereo
Definition mlt_types.h:80
@ mlt_channel_4p1
Definition mlt_types.h:90
@ mlt_channel_3p0_back
Definition mlt_types.h:83
@ mlt_channel_6p1_front
Definition mlt_types.h:98
@ mlt_channel_7p0_front
Definition mlt_types.h:100
@ mlt_channel_7p1_wide_back
Definition mlt_types.h:103
@ mlt_channel_auto
MLT will determine the default configuration based on channel number.
Definition mlt_types.h:77
@ mlt_channel_7p0
Definition mlt_types.h:99
@ mlt_channel_5p1
Definition mlt_types.h:92
@ mlt_channel_5p0
Definition mlt_types.h:89
@ mlt_channel_7p1_wide_side
Definition mlt_types.h:102
@ mlt_channel_4p0
Definition mlt_types.h:84
@ mlt_channel_5p0_back
Definition mlt_types.h:88
@ mlt_channel_7p1
Definition mlt_types.h:101
@ mlt_channel_5p1_back
Definition mlt_types.h:91
@ mlt_channel_6p1
Definition mlt_types.h:96
@ mlt_channel_3p1
Definition mlt_types.h:87
@ mlt_channel_hexagonal
Definition mlt_types.h:95
@ mlt_channel_quad_back
Definition mlt_types.h:85
struct mlt_deque_s * mlt_deque
pointer to Deque object
Definition mlt_types.h:202
struct mlt_consumer_s * mlt_consumer
pointer to Consumer object
Definition mlt_types.h:200
struct mlt_geometry_item_s * mlt_geometry_item
pointer to Geometry Item object
Definition mlt_types.h:204
struct mlt_producer_s * mlt_producer
pointer to Producer object
Definition mlt_types.h:193
struct mlt_filter_s * mlt_filter
pointer to Filter object
Definition mlt_types.h:196
struct mlt_animation_s * mlt_animation
pointer to Property Animation object
Definition mlt_types.h:209
struct mlt_parser_s * mlt_parser
pointer to Properties object
Definition mlt_types.h:201
struct mlt_field_s * mlt_field
pointer to Field object
Definition mlt_types.h:199
void(* mlt_destructor)(void *)
pointer to destructor function
Definition mlt_types.h:212
mlt_whence
The relative time qualifiers.
Definition mlt_types.h:131
@ mlt_whence_relative_current
relative to the current position
Definition mlt_types.h:133
@ mlt_whence_relative_start
relative to the beginning
Definition mlt_types.h:132
@ mlt_whence_relative_end
relative to the end
Definition mlt_types.h:134
mlt_keyframe_type
Interpolation methods for animation keyframes.
Definition mlt_types.h:121
@ mlt_keyframe_linear
simple, constant pace from this key frame to the next
Definition mlt_types.h:123
@ mlt_keyframe_smooth
eased pacing from this keyframe to the next using a Catmull-Rom spline
Definition mlt_types.h:124
@ mlt_keyframe_discrete
non-interpolated; value changes instantaneously at the key frame
Definition mlt_types.h:122
mlt_service_type
The recognized subclasses of mlt_service.
Definition mlt_types.h:141
@ consumer_type
Consumer class.
Definition mlt_types.h:150
@ transition_type
Transition class.
Definition mlt_types.h:149
@ field_type
Field class.
Definition mlt_types.h:151
@ playlist_type
Playlist class.
Definition mlt_types.h:146
@ invalid_type
invalid service
Definition mlt_types.h:142
@ filter_type
Filter class.
Definition mlt_types.h:148
@ multitrack_type
Multitrack class.
Definition mlt_types.h:147
@ producer_type
Producer class.
Definition mlt_types.h:144
@ unknown_type
unknown class
Definition mlt_types.h:143
@ tractor_type
Tractor class.
Definition mlt_types.h:145
struct mlt_transition_s * mlt_transition
pointer to Transition object
Definition mlt_types.h:197
mlt_image_format
The set of supported image formats.
Definition mlt_types.h:46
@ mlt_image_yuv422p16
planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
Definition mlt_types.h:55
@ mlt_image_yuv422
8-bit YUV 4:2:2 packed
Definition mlt_types.h:50
@ mlt_image_opengl
(deprecated) suitable for OpenGL texture
Definition mlt_types.h:52
@ mlt_image_glsl
for opengl module internal use only
Definition mlt_types.h:53
@ mlt_image_yuv420p
8-bit YUV 4:2:0 planar
Definition mlt_types.h:51
@ mlt_image_rgb24a
8-bit RGB with alpha channel
Definition mlt_types.h:49
@ mlt_image_rgb24
8-bit RGB
Definition mlt_types.h:48
@ mlt_image_invalid
Definition mlt_types.h:56
@ mlt_image_none
image not available
Definition mlt_types.h:47
@ mlt_image_glsl_texture
an OpenGL texture name
Definition mlt_types.h:54
struct mlt_playlist_s * mlt_playlist
pointer to Playlist object
Definition mlt_types.h:194
struct mlt_cache_item_s * mlt_cache_item
pointer to CacheItem object
Definition mlt_types.h:208
struct mlt_service_s * mlt_service
pointer to Service object
Definition mlt_types.h:192
mlt_audio_format
The set of supported audio formats.
Definition mlt_types.h:63
@ mlt_audio_s16
signed 16-bit interleaved PCM
Definition mlt_types.h:66
@ mlt_audio_f32le
32-bit interleaved floating point
Definition mlt_types.h:70
@ mlt_audio_s32le
signed 32-bit interleaved PCM
Definition mlt_types.h:69
@ mlt_audio_none
audio not available
Definition mlt_types.h:64
@ mlt_audio_u8
unsigned 8-bit interleaved PCM
Definition mlt_types.h:71
@ mlt_audio_float
32-bit non-interleaved floating point
Definition mlt_types.h:68
@ mlt_audio_s32
signed 32-bit non-interleaved PCM
Definition mlt_types.h:67
@ mlt_audio_pcm
Definition mlt_types.h:65
struct mlt_repository_s * mlt_repository
pointer to Repository object
Definition mlt_types.h:206
struct mlt_frame_s * mlt_frame
Definition mlt_types.h:188
struct mlt_geometry_s * mlt_geometry
pointer to Geometry object
Definition mlt_types.h:203
struct mlt_slices_s * mlt_slices
pointer to Sliced processing context object
Definition mlt_types.h:210
struct mlt_properties_s * mlt_properties
pointer to Properties object
Definition mlt_types.h:190
Property Animation class.
Definition mlt_animation.c:49
Audio class.
Definition mlt_audio.h:34
Cache item class.
Definition mlt_cache.c:50
Cache class.
Definition mlt_cache.c:82
A tuple of color components.
Definition mlt_types.h:179
uint8_t g
green
Definition mlt_types.h:181
uint8_t a
alpha
Definition mlt_types.h:183
uint8_t b
blue
Definition mlt_types.h:182
uint8_t r
red
Definition mlt_types.h:180
Consumer abstract service class.
Definition mlt_consumer.h:88
Double-Ended Queue (deque) class.
Definition mlt_deque.c:50
Event class.
Definition mlt_events.c:61
Field class.
Definition mlt_field.c:39
Filter abstract service class.
Definition mlt_filter.h:40
Frame class.
Definition mlt_frame.h:74
geometry animation item (deprecated)
Definition mlt_geometry.h:33
geometry object (deprecated)
Definition mlt_geometry.h:51
Multitrack class.
Definition mlt_multitrack.h:48
Parser class.
Definition mlt_parser.h:34
Playlist class.
Definition mlt_playlist.h:73
Producer abstract service class.
Definition mlt_producer.h:70
Profile class.
Definition mlt_profile.h:35
Properties class.
Definition mlt_properties.h:37
Property class.
Definition mlt_property.c:63
A rectangle type with coordinates, size, and opacity.
Definition mlt_types.h:168
double w
width
Definition mlt_types.h:171
double y
Y coordinate.
Definition mlt_types.h:170
double x
X coordinate.
Definition mlt_types.h:169
double o
opacity / mix-level
Definition mlt_types.h:173
double h
height
Definition mlt_types.h:172
Repository class.
Definition mlt_repository.c:46
Service abstract base class.
Definition mlt_service.h:58
Definition mlt_slices.c:59
const char * name
Definition mlt_slices.c:69
Tractor class.
Definition mlt_tractor.h:43
Transition abstract service class.
Definition mlt_transition.h:42