MLT  7.22.0
Data Structures | Macros | Typedefs | Enumerations | Functions
mlt_types.h File Reference

Provides forward definitions of all public types. More...

#include "mlt_pool.h"
#include <inttypes.h>
#include <limits.h>
#include <stdio.h>

Go to the source code of this file.

Data Structures

struct  mlt_color
 A tuple of color components. More...
 
struct  mlt_rect
 A rectangle type with coordinates, size, and opacity. More...
 

Macros

#define CLAMP(x, min, max)   ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))
 
#define GCC_VERSION   (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 
#define MAX(x, y)   ((x) > (y) ? (x) : (y))
 
#define MIN(x, y)   ((x) < (y) ? (x) : (y))
 
#define MLT_CHAIN(x)   ((mlt_chain) (x))
 Cast to a Chain pointer. More...
 
#define MLT_CONSUMER(x)   ((mlt_consumer) (x))
 Cast to a Consumer pointer. More...
 
#define MLT_DIRLIST_DELIMITER   ":"
 
#define MLT_FILTER(x)   ((mlt_filter) (x))
 Cast to a Filter pointer. More...
 
#define mlt_fopen   fopen
 
#define MLT_FRAME(x)   ((mlt_frame) (x))
 Cast to a Frame pointer. More...
 
#define MLT_LINK(x)   ((mlt_link) (x))
 Cast to a Link pointer. More...
 
#define MLT_MULTITRACK(x)   ((mlt_multitrack) (x))
 Cast to a Multitrack pointer. More...
 
#define MLT_PLAYLIST(x)   ((mlt_playlist) (x))
 Cast to a Playlist pointer. More...
 
#define MLT_POSITION_FMT   "%d"
 
#define MLT_POSITION_MOD(A, B)   ((A) % (B))
 
#define MLT_PRODUCER(x)   ((mlt_producer) (x))
 Cast to a Producer pointer. More...
 
#define MLT_SERVICE(x)   ((mlt_service) (x))
 Cast to a Service pointer. More...
 
#define MLT_TRACTOR(x)   ((mlt_tractor) (x))
 Cast to a Tractor pointer. More...
 
#define MLT_TRANSITION(x)   ((mlt_transition) (x))
 Cast to a Transition pointer. More...
 
#define PATH_MAX   4096
 

Typedefs

typedef struct mlt_animation_smlt_animation
 pointer to Property Animation object More...
 
typedef struct mlt_audio_smlt_audio
 pointer to Audio object More...
 
typedef struct mlt_cache_smlt_cache
 pointer to Cache object More...
 
typedef struct mlt_cache_item_smlt_cache_item
 pointer to CacheItem object More...
 
typedef struct mlt_chain_smlt_chain
 pointer to Chain object More...
 
typedef struct mlt_consumer_smlt_consumer
 pointer to Consumer object More...
 
typedef struct mlt_deque_smlt_deque
 pointer to Deque object More...
 
typedef void(* mlt_destructor) (void *)
 pointer to destructor function More...
 
typedef struct mlt_event_structmlt_event
 pointer to Event object More...
 
typedef struct mlt_field_smlt_field
 pointer to Field object More...
 
typedef struct mlt_filter_smlt_filter
 pointer to Filter object More...
 
typedef struct mlt_frame_smlt_frame
 
typedef struct mlt_frame_s ** mlt_frame_ptr
 pointer to Frame object More...
 
typedef struct mlt_geometry_s * mlt_geometry
 pointer to Geometry object More...
 
typedef struct mlt_geometry_item_s * mlt_geometry_item
 pointer to Geometry Item object More...
 
typedef struct mlt_image_smlt_image
 pointer to Image object More...
 
typedef struct mlt_link_smlt_link
 pointer to Link object More...
 
typedef struct mlt_multitrack_smlt_multitrack
 pointer to Multitrack object More...
 
typedef struct mlt_parser_smlt_parser
 pointer to Properties object More...
 
typedef struct mlt_playlist_smlt_playlist
 pointer to Playlist object More...
 
typedef int32_t mlt_position
 
typedef struct mlt_producer_smlt_producer
 pointer to Producer object More...
 
typedef struct mlt_profile_smlt_profile
 pointer to Profile object More...
 
typedef struct mlt_properties_smlt_properties
 pointer to Properties object More...
 
typedef struct mlt_property_smlt_property
 pointer to Property object More...
 
typedef struct mlt_repository_smlt_repository
 pointer to Repository object More...
 
typedef char *(* mlt_serialiser) (void *, int length)
 pointer to serialization function More...
 
typedef struct mlt_service_smlt_service
 pointer to Service object More...
 
typedef struct mlt_slices_smlt_slices
 pointer to Sliced processing context object More...
 
typedef void *(* mlt_thread_function_t) (void *)
 generic thread function pointer More...
 
typedef struct mlt_tractor_smlt_tractor
 pointer to Tractor object More...
 
typedef struct mlt_transition_smlt_transition
 pointer to Transition object More...
 

Enumerations

enum  mlt_audio_format {
  mlt_audio_none = 0 , mlt_audio_s16 = 1 , mlt_audio_s32 , mlt_audio_float ,
  mlt_audio_s32le , mlt_audio_f32le , mlt_audio_u8
}
 The set of supported audio formats. More...
 
enum  mlt_channel_layout {
  mlt_channel_auto = 0 , mlt_channel_independent , mlt_channel_mono , mlt_channel_stereo ,
  mlt_channel_2p1 , mlt_channel_3p0 , mlt_channel_3p0_back , mlt_channel_4p0 ,
  mlt_channel_quad_back , mlt_channel_quad_side , mlt_channel_3p1 , mlt_channel_5p0_back ,
  mlt_channel_5p0 , mlt_channel_4p1 , mlt_channel_5p1_back , mlt_channel_5p1 ,
  mlt_channel_6p0 , mlt_channel_6p0_front , mlt_channel_hexagonal , mlt_channel_6p1 ,
  mlt_channel_6p1_back , mlt_channel_6p1_front , mlt_channel_7p0 , mlt_channel_7p0_front ,
  mlt_channel_7p1 , mlt_channel_7p1_wide_side , mlt_channel_7p1_wide_back
}
 
enum  mlt_colorspace {
  mlt_colorspace_rgb = 0 , mlt_colorspace_bt709 = 1 , mlt_colorspace_unspecified = 2 , mlt_colorspace_reserved = 3 ,
  mlt_colorspace_fcc = 4 , mlt_colorspace_bt470bg = 5 , mlt_colorspace_smpte170m = 6 , mlt_colorspace_smpte240m = 7 ,
  mlt_colorspace_ycgco = 8 , mlt_colorspace_bt2020_ncl = 9 , mlt_colorspace_bt2020_cl = 10 , mlt_colorspace_smpte2085 = 11
}
 Colorspace definitions. More...
 
enum  mlt_deinterlacer {
  mlt_deinterlacer_none , mlt_deinterlacer_onefield , mlt_deinterlacer_linearblend , mlt_deinterlacer_weave ,
  mlt_deinterlacer_bob , mlt_deinterlacer_greedy , mlt_deinterlacer_yadif_nospatial , mlt_deinterlacer_yadif ,
  mlt_deinterlacer_bwdif , mlt_deinterlacer_estdif , mlt_deinterlacer_invalid
}
 
enum  mlt_image_format {
  mlt_image_none = 0 , mlt_image_rgb , mlt_image_rgba , mlt_image_yuv422 ,
  mlt_image_yuv420p , mlt_image_movit , mlt_image_opengl_texture , mlt_image_yuv422p16 ,
  mlt_image_yuv420p10 , mlt_image_yuv444p10 , mlt_image_invalid
}
 The set of supported image formats. More...
 
enum  mlt_keyframe_type {
  mlt_keyframe_discrete = 0 , mlt_keyframe_linear , mlt_keyframe_smooth , mlt_keyframe_smooth_loose = mlt_keyframe_smooth ,
  mlt_keyframe_smooth_natural , mlt_keyframe_smooth_tight , mlt_keyframe_sinusoidal_in , mlt_keyframe_sinusoidal_out ,
  mlt_keyframe_sinusoidal_in_out , mlt_keyframe_quadratic_in , mlt_keyframe_quadratic_out , mlt_keyframe_quadratic_in_out ,
  mlt_keyframe_cubic_in , mlt_keyframe_cubic_out , mlt_keyframe_cubic_in_out , mlt_keyframe_quartic_in ,
  mlt_keyframe_quartic_out , mlt_keyframe_quartic_in_out , mlt_keyframe_quintic_in , mlt_keyframe_quintic_out ,
  mlt_keyframe_quintic_in_out , mlt_keyframe_exponential_in , mlt_keyframe_exponential_out , mlt_keyframe_exponential_in_out ,
  mlt_keyframe_circular_in , mlt_keyframe_circular_out , mlt_keyframe_circular_in_out , mlt_keyframe_back_in ,
  mlt_keyframe_back_out , mlt_keyframe_back_in_out , mlt_keyframe_elastic_in , mlt_keyframe_elastic_out ,
  mlt_keyframe_elastic_in_out , mlt_keyframe_bounce_in , mlt_keyframe_bounce_out , mlt_keyframe_bounce_in_out
}
 Interpolation methods for animation keyframes. More...
 
enum  mlt_service_type {
  mlt_service_invalid_type = 0 , mlt_service_unknown_type , mlt_service_producer_type , mlt_service_tractor_type ,
  mlt_service_playlist_type , mlt_service_multitrack_type , mlt_service_filter_type , mlt_service_transition_type ,
  mlt_service_consumer_type , mlt_service_field_type , mlt_service_link_type , mlt_service_chain_type
}
 The recognized subclasses of mlt_service. More...
 
enum  mlt_time_format { mlt_time_frames = 0 , mlt_time_clock , mlt_time_smpte_df , mlt_time_smpte_ndf }
 The time string formats. More...
 
enum  mlt_whence { mlt_whence_relative_start = 0 , mlt_whence_relative_current , mlt_whence_relative_end }
 The relative time qualifiers. More...
 

Functions

mlt_deinterlacer mlt_deinterlacer_id (const char *name)
 
const char * mlt_deinterlacer_name (mlt_deinterlacer method)
 

Detailed Description

Provides forward definitions of all public types.

Copyright (C) 2003-2023 Meltytech, LLC

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 Lesser General Public License for more details.

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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Macro Definition Documentation

◆ CLAMP

#define CLAMP (   x,
  min,
  max 
)    ((x) < (min) ? (min) : (x) > (max) ? (max) : (x))

◆ GCC_VERSION

#define GCC_VERSION   (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)

◆ MAX

#define MAX (   x,
 
)    ((x) > (y) ? (x) : (y))

◆ MIN

#define MIN (   x,
 
)    ((x) < (y) ? (x) : (y))

◆ MLT_CHAIN

#define MLT_CHAIN (   x)    ((mlt_chain) (x))

Cast to a Chain pointer.

◆ MLT_CONSUMER

#define MLT_CONSUMER (   x)    ((mlt_consumer) (x))

Cast to a Consumer pointer.

◆ MLT_DIRLIST_DELIMITER

#define MLT_DIRLIST_DELIMITER   ":"

◆ MLT_FILTER

#define MLT_FILTER (   x)    ((mlt_filter) (x))

Cast to a Filter pointer.

◆ mlt_fopen

#define mlt_fopen   fopen

◆ MLT_FRAME

#define MLT_FRAME (   x)    ((mlt_frame) (x))

Cast to a Frame pointer.

◆ MLT_LINK

#define MLT_LINK (   x)    ((mlt_link) (x))

Cast to a Link pointer.

◆ MLT_MULTITRACK

#define MLT_MULTITRACK (   x)    ((mlt_multitrack) (x))

Cast to a Multitrack pointer.

◆ MLT_PLAYLIST

#define MLT_PLAYLIST (   x)    ((mlt_playlist) (x))

Cast to a Playlist pointer.

◆ MLT_POSITION_FMT

#define MLT_POSITION_FMT   "%d"

◆ MLT_POSITION_MOD

#define MLT_POSITION_MOD (   A,
 
)    ((A) % (B))

◆ MLT_PRODUCER

#define MLT_PRODUCER (   x)    ((mlt_producer) (x))

Cast to a Producer pointer.

◆ MLT_SERVICE

#define MLT_SERVICE (   x)    ((mlt_service) (x))

Cast to a Service pointer.

◆ MLT_TRACTOR

#define MLT_TRACTOR (   x)    ((mlt_tractor) (x))

Cast to a Tractor pointer.

◆ MLT_TRANSITION

#define MLT_TRANSITION (   x)    ((mlt_transition) (x))

Cast to a Transition pointer.

◆ PATH_MAX

#define PATH_MAX   4096

Typedef Documentation

◆ mlt_animation

typedef struct mlt_animation_s* mlt_animation

pointer to Property Animation object

◆ mlt_audio

typedef struct mlt_audio_s* mlt_audio

pointer to Audio object

◆ mlt_cache

typedef struct mlt_cache_s* mlt_cache

pointer to Cache object

◆ mlt_cache_item

pointer to CacheItem object

◆ mlt_chain

typedef struct mlt_chain_s* mlt_chain

pointer to Chain object

◆ mlt_consumer

typedef struct mlt_consumer_s* mlt_consumer

pointer to Consumer object

◆ mlt_deque

typedef struct mlt_deque_s* mlt_deque

pointer to Deque object

◆ mlt_destructor

typedef void(* mlt_destructor) (void *)

pointer to destructor function

◆ mlt_event

typedef struct mlt_event_struct* mlt_event

pointer to Event object

◆ mlt_field

typedef struct mlt_field_s* mlt_field

pointer to Field object

◆ mlt_filter

typedef struct mlt_filter_s* mlt_filter

pointer to Filter object

◆ mlt_frame

typedef struct mlt_frame_s* mlt_frame

◆ mlt_frame_ptr

typedef struct mlt_frame_s ** mlt_frame_ptr

pointer to Frame object

◆ mlt_geometry

typedef struct mlt_geometry_s* mlt_geometry

pointer to Geometry object

◆ mlt_geometry_item

typedef struct mlt_geometry_item_s* mlt_geometry_item

pointer to Geometry Item object

◆ mlt_image

typedef struct mlt_image_s* mlt_image

pointer to Image object

◆ mlt_link

typedef struct mlt_link_s* mlt_link

pointer to Link object

◆ mlt_multitrack

pointer to Multitrack object

◆ mlt_parser

typedef struct mlt_parser_s* mlt_parser

pointer to Properties object

◆ mlt_playlist

typedef struct mlt_playlist_s* mlt_playlist

pointer to Playlist object

◆ mlt_position

typedef int32_t mlt_position

◆ mlt_producer

typedef struct mlt_producer_s* mlt_producer

pointer to Producer object

◆ mlt_profile

typedef struct mlt_profile_s* mlt_profile

pointer to Profile object

◆ mlt_properties

pointer to Properties object

◆ mlt_property

typedef struct mlt_property_s* mlt_property

pointer to Property object

◆ mlt_repository

pointer to Repository object

◆ mlt_serialiser

typedef char*(* mlt_serialiser) (void *, int length)

pointer to serialization function

◆ mlt_service

typedef struct mlt_service_s* mlt_service

pointer to Service object

◆ mlt_slices

typedef struct mlt_slices_s* mlt_slices

pointer to Sliced processing context object

◆ mlt_thread_function_t

typedef void*(* mlt_thread_function_t) (void *)

generic thread function pointer

◆ mlt_tractor

typedef struct mlt_tractor_s* mlt_tractor

pointer to Tractor object

◆ mlt_transition

pointer to Transition object

Enumeration Type Documentation

◆ mlt_audio_format

The set of supported audio formats.

Enumerator
mlt_audio_none 

audio not available

mlt_audio_s16 

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

mlt_audio_f32le 

32-bit interleaved floating point

mlt_audio_u8 

unsigned 8-bit interleaved PCM

◆ mlt_channel_layout

Enumerator
mlt_channel_auto 

MLT will determine the default configuration based on channel number.

mlt_channel_independent 

channels are not related

mlt_channel_mono 
mlt_channel_stereo 
mlt_channel_2p1 
mlt_channel_3p0 
mlt_channel_3p0_back 
mlt_channel_4p0 
mlt_channel_quad_back 
mlt_channel_quad_side 
mlt_channel_3p1 
mlt_channel_5p0_back 
mlt_channel_5p0 
mlt_channel_4p1 
mlt_channel_5p1_back 
mlt_channel_5p1 
mlt_channel_6p0 
mlt_channel_6p0_front 
mlt_channel_hexagonal 
mlt_channel_6p1 
mlt_channel_6p1_back 
mlt_channel_6p1_front 
mlt_channel_7p0 
mlt_channel_7p0_front 
mlt_channel_7p1 
mlt_channel_7p1_wide_side 
mlt_channel_7p1_wide_back 

◆ mlt_colorspace

Colorspace definitions.

Enumerator
mlt_colorspace_rgb 

order of coefficients is actually GBR, also IEC 61966-2-1 (sRGB)

mlt_colorspace_bt709 

also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B

mlt_colorspace_unspecified 
mlt_colorspace_reserved 
mlt_colorspace_fcc 

FCC Title 47 Code of Federal Regulations 73.682 (a)(20)

mlt_colorspace_bt470bg 

also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601

mlt_colorspace_smpte170m 

also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC

mlt_colorspace_smpte240m 

functionally identical to above

mlt_colorspace_ycgco 

Used by Dirac / VC-2 and H.264 FRext, see ITU-T SG16.

mlt_colorspace_bt2020_ncl 

ITU-R BT2020 non-constant luminance system.

mlt_colorspace_bt2020_cl 

ITU-R BT2020 constant luminance system.

mlt_colorspace_smpte2085 

SMPTE 2085, Y'D'zD'x.

◆ mlt_deinterlacer

Enumerator
mlt_deinterlacer_none 
mlt_deinterlacer_onefield 
mlt_deinterlacer_linearblend 
mlt_deinterlacer_weave 
mlt_deinterlacer_bob 
mlt_deinterlacer_greedy 
mlt_deinterlacer_yadif_nospatial 
mlt_deinterlacer_yadif 
mlt_deinterlacer_bwdif 
mlt_deinterlacer_estdif 
mlt_deinterlacer_invalid 

◆ mlt_image_format

The set of supported image formats.

Enumerator
mlt_image_none 

image not available

mlt_image_rgb 

8-bit RGB

mlt_image_rgba 

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_movit 

for movit module internal use only

mlt_image_opengl_texture 

an OpenGL texture name

mlt_image_yuv422p16 

planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian

mlt_image_yuv420p10 

planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian

mlt_image_yuv444p10 

planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian

mlt_image_invalid 

◆ mlt_keyframe_type

Interpolation methods for animation keyframes.

Enumerator
mlt_keyframe_discrete 

non-interpolated; value changes instantaneously at the key frame

mlt_keyframe_linear 

simple, constant pace from this key frame to the next

mlt_keyframe_smooth 

deprecated use mlt_keyframe_smooth_loose

mlt_keyframe_smooth_loose 

Unity Catmull-Rom spline interpolation.

May have cusps or overshoots

mlt_keyframe_smooth_natural 

Centripetal Catmull-Rom spline interpolation with natural slope at each keyframe.

Will not have cusps or overshoots

mlt_keyframe_smooth_tight 

Centripetal Catmull-Rom spline interpolation with 0 slope at each keyframe.

Will not have cusps or overshoots

mlt_keyframe_sinusoidal_in 
mlt_keyframe_sinusoidal_out 
mlt_keyframe_sinusoidal_in_out 
mlt_keyframe_quadratic_in 
mlt_keyframe_quadratic_out 
mlt_keyframe_quadratic_in_out 
mlt_keyframe_cubic_in 
mlt_keyframe_cubic_out 
mlt_keyframe_cubic_in_out 
mlt_keyframe_quartic_in 
mlt_keyframe_quartic_out 
mlt_keyframe_quartic_in_out 
mlt_keyframe_quintic_in 
mlt_keyframe_quintic_out 
mlt_keyframe_quintic_in_out 
mlt_keyframe_exponential_in 
mlt_keyframe_exponential_out 
mlt_keyframe_exponential_in_out 
mlt_keyframe_circular_in 
mlt_keyframe_circular_out 
mlt_keyframe_circular_in_out 
mlt_keyframe_back_in 
mlt_keyframe_back_out 
mlt_keyframe_back_in_out 
mlt_keyframe_elastic_in 
mlt_keyframe_elastic_out 
mlt_keyframe_elastic_in_out 
mlt_keyframe_bounce_in 
mlt_keyframe_bounce_out 
mlt_keyframe_bounce_in_out 

◆ mlt_service_type

The recognized subclasses of mlt_service.

Enumerator
mlt_service_invalid_type 

invalid service

mlt_service_unknown_type 

unknown class

mlt_service_producer_type 

Producer class.

mlt_service_tractor_type 

Tractor class.

mlt_service_playlist_type 

Playlist class.

mlt_service_multitrack_type 

Multitrack class.

mlt_service_filter_type 

Filter class.

mlt_service_transition_type 

Transition class.

mlt_service_consumer_type 

Consumer class.

mlt_service_field_type 

Field class.

mlt_service_link_type 

Link class.

mlt_service_chain_type 

Chain class.

◆ mlt_time_format

The time string formats.

Enumerator
mlt_time_frames 

frame count

mlt_time_clock 

SMIL clock-value as [[hh:]mm:]ss[.fraction].

mlt_time_smpte_df 

SMPTE timecode as [[[hh:]mm:]ss{:|;}]frames.

mlt_time_smpte_ndf 

SMPTE NDF timecode as [[[hh:]mm:]ss:]frames.

◆ mlt_whence

enum mlt_whence

The relative time qualifiers.

Enumerator
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

Function Documentation

◆ mlt_deinterlacer_id()

mlt_deinterlacer mlt_deinterlacer_id ( const char *  name)

◆ mlt_deinterlacer_name()

const char* mlt_deinterlacer_name ( mlt_deinterlacer  method)