26#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
174#ifdef DOUBLE_MLT_POSITION
175#define MLT_POSITION_FMT "%f"
176#define MLT_POSITION_MOD(A, B) ((A) - (B) * ((int)((A) / (B))))
179#define MLT_POSITION_MOD(A, B) ((A) % (B))
180#define MLT_POSITION_FMT "%d"
234typedef char *( *mlt_serialiser )(
void *,
int length );
235typedef void *( *mlt_thread_function_t )(
void* );
237#define MLT_SERVICE(x) ( ( mlt_service )( x ) )
238#define MLT_PRODUCER(x) ( ( mlt_producer )( x ) )
239#define MLT_MULTITRACK(x) ( ( mlt_multitrack )( x ) )
240#define MLT_PLAYLIST(x) ( ( mlt_playlist )( x ) )
241#define MLT_TRACTOR(x) ( ( mlt_tractor )( x ) )
242#define MLT_FILTER(x) ( ( mlt_filter )( x ) )
243#define MLT_TRANSITION(x) ( ( mlt_transition )( x ) )
244#define MLT_CONSUMER(x) ( ( mlt_consumer )( x ) )
245#define MLT_FRAME(x) ( ( mlt_frame )( x ) )
246#define MLT_LINK(x) ( ( mlt_link )( x ) )
247#define MLT_CHAIN(x) ( ( mlt_chain )( x ) )
250#define MIN(x, y) ((x) < (y) ? (x) : (y))
253#define MAX(x, y) ((x) > (y) ? (x) : (y))
256#define CLAMP(x, min, max) ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))
262#if !defined(__MINGW32__)
263extern int usleep(
unsigned int useconds);
265#ifndef WIN_PTHREADS_TIME_H
266extern int nanosleep(
const struct timespec * rqtp,
struct timespec * rmtp );
268extern int setenv(
const char *name,
const char *value,
int overwrite);
269extern char* getlocale();
270extern FILE* win32_fopen(
const char *filename_utf8,
const char *mode_utf8);
272extern char* strptime(
const char *buf,
const char *fmt,
struct tm *tm);
273#define mlt_fopen win32_fopen
274#define MLT_DIRLIST_DELIMITER ";"
276#define mlt_fopen fopen
277#define MLT_DIRLIST_DELIMITER ":"
memory pooling functionality
struct mlt_multitrack_s * mlt_multitrack
pointer to Multitrack object
Definition mlt_types.h:214
struct mlt_cache_s * mlt_cache
pointer to Cache object
Definition mlt_types.h:226
mlt_time_format
The time string formats.
Definition mlt_types.h:127
@ mlt_time_clock
SMIL clock-value as [[hh:]mm:]ss[.fraction].
Definition mlt_types.h:129
@ mlt_time_smpte_ndf
SMPTE NDF timecode as [[[hh:]mm:]ss:]frames.
Definition mlt_types.h:131
@ mlt_time_smpte_df
SMPTE timecode as [[[hh:]mm:]ss{:|;}]frames.
Definition mlt_types.h:130
@ mlt_time_frames
frame count
Definition mlt_types.h:128
int32_t mlt_position
Definition mlt_types.h:181
struct mlt_property_s * mlt_property
pointer to Property object
Definition mlt_types.h:208
struct mlt_audio_s * mlt_audio
pointer to Audio object
Definition mlt_types.h:205
struct mlt_profile_s * mlt_profile
pointer to Profile object
Definition mlt_types.h:224
struct mlt_frame_s ** mlt_frame_ptr
pointer to Frame object
Definition mlt_types.h:207
struct mlt_tractor_s * mlt_tractor
pointer to Tractor object
Definition mlt_types.h:217
struct mlt_event_struct * mlt_event
pointer to Event object
Definition mlt_types.h:210
struct mlt_chain_s * mlt_chain
pointer to Chain object
Definition mlt_types.h:231
mlt_channel_layout
Definition mlt_types.h:74
@ mlt_channel_mono
Definition mlt_types.h:77
@ mlt_channel_quad_side
Definition mlt_types.h:84
@ mlt_channel_2p1
Definition mlt_types.h:79
@ mlt_channel_6p0
Definition mlt_types.h:91
@ mlt_channel_3p0
Definition mlt_types.h:80
@ mlt_channel_6p1_back
Definition mlt_types.h:95
@ mlt_channel_independent
channels are not related
Definition mlt_types.h:76
@ mlt_channel_6p0_front
Definition mlt_types.h:92
@ mlt_channel_stereo
Definition mlt_types.h:78
@ mlt_channel_4p1
Definition mlt_types.h:88
@ mlt_channel_3p0_back
Definition mlt_types.h:81
@ mlt_channel_6p1_front
Definition mlt_types.h:96
@ mlt_channel_7p0_front
Definition mlt_types.h:98
@ mlt_channel_7p1_wide_back
Definition mlt_types.h:101
@ mlt_channel_auto
MLT will determine the default configuration based on channel number.
Definition mlt_types.h:75
@ mlt_channel_7p0
Definition mlt_types.h:97
@ mlt_channel_5p1
Definition mlt_types.h:90
@ mlt_channel_5p0
Definition mlt_types.h:87
@ mlt_channel_7p1_wide_side
Definition mlt_types.h:100
@ mlt_channel_4p0
Definition mlt_types.h:82
@ mlt_channel_5p0_back
Definition mlt_types.h:86
@ mlt_channel_7p1
Definition mlt_types.h:99
@ mlt_channel_5p1_back
Definition mlt_types.h:89
@ mlt_channel_6p1
Definition mlt_types.h:94
@ mlt_channel_3p1
Definition mlt_types.h:85
@ mlt_channel_hexagonal
Definition mlt_types.h:93
@ mlt_channel_quad_back
Definition mlt_types.h:83
struct mlt_deque_s * mlt_deque
pointer to Deque object
Definition mlt_types.h:221
struct mlt_consumer_s * mlt_consumer
pointer to Consumer object
Definition mlt_types.h:219
struct mlt_geometry_item_s * mlt_geometry_item
pointer to Geometry Item object
Definition mlt_types.h:223
struct mlt_producer_s * mlt_producer
pointer to Producer object
Definition mlt_types.h:212
struct mlt_filter_s * mlt_filter
pointer to Filter object
Definition mlt_types.h:215
struct mlt_animation_s * mlt_animation
pointer to Property Animation object
Definition mlt_types.h:228
struct mlt_parser_s * mlt_parser
pointer to Properties object
Definition mlt_types.h:220
struct mlt_field_s * mlt_field
pointer to Field object
Definition mlt_types.h:218
void(* mlt_destructor)(void *)
pointer to destructor function
Definition mlt_types.h:233
mlt_whence
The relative time qualifiers.
Definition mlt_types.h:147
@ mlt_whence_relative_current
relative to the current position
Definition mlt_types.h:149
@ mlt_whence_relative_start
relative to the beginning
Definition mlt_types.h:148
@ mlt_whence_relative_end
relative to the end
Definition mlt_types.h:150
mlt_keyframe_type
Interpolation methods for animation keyframes.
Definition mlt_types.h:137
@ mlt_keyframe_linear
simple, constant pace from this key frame to the next
Definition mlt_types.h:139
@ mlt_keyframe_smooth
eased pacing from this keyframe to the next using a Catmull-Rom spline
Definition mlt_types.h:140
@ mlt_keyframe_discrete
non-interpolated; value changes instantaneously at the key frame
Definition mlt_types.h:138
mlt_service_type
The recognized subclasses of mlt_service.
Definition mlt_types.h:157
@ mlt_service_consumer_type
Consumer class.
Definition mlt_types.h:166
@ mlt_service_link_type
Link class.
Definition mlt_types.h:168
@ mlt_service_producer_type
Producer class.
Definition mlt_types.h:160
@ mlt_service_tractor_type
Tractor class.
Definition mlt_types.h:161
@ mlt_service_filter_type
Filter class.
Definition mlt_types.h:164
@ mlt_service_invalid_type
invalid service
Definition mlt_types.h:158
@ mlt_service_unknown_type
unknown class
Definition mlt_types.h:159
@ mlt_service_transition_type
Transition class.
Definition mlt_types.h:165
@ mlt_service_chain_type
Chain class.
Definition mlt_types.h:169
@ mlt_service_multitrack_type
Multitrack class.
Definition mlt_types.h:163
@ mlt_service_playlist_type
Playlist class.
Definition mlt_types.h:162
@ mlt_service_field_type
Field class.
Definition mlt_types.h:167
mlt_colorspace
Colorspace definitions.
Definition mlt_types.h:108
@ mlt_colorspace_bt2020_cl
ITU-R BT2020 constant luminance system.
Definition mlt_types.h:119
@ mlt_colorspace_reserved
Definition mlt_types.h:112
@ mlt_colorspace_smpte240m
functionally identical to above
Definition mlt_types.h:116
@ mlt_colorspace_bt470bg
also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
Definition mlt_types.h:114
@ mlt_colorspace_bt2020_ncl
ITU-R BT2020 non-constant luminance system.
Definition mlt_types.h:118
@ mlt_colorspace_fcc
FCC Title 47 Code of Federal Regulations 73.682 (a)(20)
Definition mlt_types.h:113
@ mlt_colorspace_smpte2085
SMPTE 2085, Y'D'zD'x.
Definition mlt_types.h:120
@ mlt_colorspace_unspecified
Definition mlt_types.h:111
@ mlt_colorspace_rgb
order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)
Definition mlt_types.h:109
@ mlt_colorspace_smpte170m
also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC
Definition mlt_types.h:115
@ mlt_colorspace_bt709
also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B
Definition mlt_types.h:110
@ mlt_colorspace_ycgco
Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16.
Definition mlt_types.h:117
struct mlt_transition_s * mlt_transition
pointer to Transition object
Definition mlt_types.h:216
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:54
@ mlt_image_opengl_texture
an OpenGL texture name
Definition mlt_types.h:53
@ mlt_image_yuv422
8-bit YUV 4:2:2 packed
Definition mlt_types.h:50
@ mlt_image_rgba
8-bit RGB with alpha channel
Definition mlt_types.h:49
@ mlt_image_movit
for movit module internal use only
Definition mlt_types.h:52
@ mlt_image_yuv420p
8-bit YUV 4:2:0 planar
Definition mlt_types.h:51
@ mlt_image_rgb
8-bit RGB
Definition mlt_types.h:48
@ mlt_image_invalid
Definition mlt_types.h:55
@ mlt_image_none
image not available
Definition mlt_types.h:47
struct mlt_image_s * mlt_image
pointer to Image object
Definition mlt_types.h:206
struct mlt_playlist_s * mlt_playlist
pointer to Playlist object
Definition mlt_types.h:213
struct mlt_cache_item_s * mlt_cache_item
pointer to CacheItem object
Definition mlt_types.h:227
struct mlt_service_s * mlt_service
pointer to Service object
Definition mlt_types.h:211
mlt_audio_format
The set of supported audio formats.
Definition mlt_types.h:62
@ mlt_audio_s16
signed 16-bit interleaved PCM
Definition mlt_types.h:64
@ mlt_audio_f32le
32-bit interleaved floating point
Definition mlt_types.h:68
@ mlt_audio_s32le
signed 32-bit interleaved PCM
Definition mlt_types.h:67
@ mlt_audio_none
audio not available
Definition mlt_types.h:63
@ mlt_audio_u8
unsigned 8-bit interleaved PCM
Definition mlt_types.h:69
@ mlt_audio_float
32-bit non-interleaved floating point
Definition mlt_types.h:66
@ mlt_audio_s32
signed 32-bit non-interleaved PCM
Definition mlt_types.h:65
struct mlt_repository_s * mlt_repository
pointer to Repository object
Definition mlt_types.h:225
struct mlt_frame_s * mlt_frame
Definition mlt_types.h:207
struct mlt_link_s * mlt_link
pointer to Link object
Definition mlt_types.h:230
struct mlt_geometry_s * mlt_geometry
pointer to Geometry object
Definition mlt_types.h:222
struct mlt_slices_s * mlt_slices
pointer to Sliced processing context object
Definition mlt_types.h:229
struct mlt_properties_s * mlt_properties
pointer to Properties object
Definition mlt_types.h:209
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
Chain class.
Definition mlt_chain.h:37
A tuple of color components.
Definition mlt_types.h:197
uint8_t g
green
Definition mlt_types.h:199
uint8_t a
alpha
Definition mlt_types.h:201
uint8_t b
blue
Definition mlt_types.h:200
uint8_t r
red
Definition mlt_types.h:198
Consumer abstract service class.
Definition mlt_consumer.h:94
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:76
Definition mlt_image.h:35
Link class.
Definition mlt_link.h:37
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:40
Property class.
Definition mlt_property.c:65
A rectangle type with coordinates, size, and opacity.
Definition mlt_types.h:186
double w
width
Definition mlt_types.h:189
double y
Y coordinate.
Definition mlt_types.h:188
double x
X coordinate.
Definition mlt_types.h:187
double o
opacity / mix-level
Definition mlt_types.h:191
double h
height
Definition mlt_types.h:190
Repository class.
Definition mlt_repository.c:46
Service abstract base class.
Definition mlt_service.h:58
Definition mlt_slices.c:59
Tractor class.
Definition mlt_tractor.h:40
Transition abstract service class.
Definition mlt_transition.h:43