# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.1.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _mlt7
else:
    import _mlt7

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class UnsignedCharArray(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, nelements):
        _mlt7.UnsignedCharArray_swiginit(self, _mlt7.new_UnsignedCharArray(nelements))
    __swig_destroy__ = _mlt7.delete_UnsignedCharArray

    def __getitem__(self, index):
        return _mlt7.UnsignedCharArray___getitem__(self, index)

    def __setitem__(self, index, value):
        return _mlt7.UnsignedCharArray___setitem__(self, index, value)

    def cast(self):
        return _mlt7.UnsignedCharArray_cast(self)

    @staticmethod
    def frompointer(t):
        return _mlt7.UnsignedCharArray_frompointer(t)

# Register UnsignedCharArray in _mlt7:
_mlt7.UnsignedCharArray_swigregister(UnsignedCharArray)
PATH_MAX = _mlt7.PATH_MAX
mlt_image_none = _mlt7.mlt_image_none
mlt_image_rgb = _mlt7.mlt_image_rgb
mlt_image_rgba = _mlt7.mlt_image_rgba
mlt_image_yuv422 = _mlt7.mlt_image_yuv422
mlt_image_yuv420p = _mlt7.mlt_image_yuv420p
mlt_image_movit = _mlt7.mlt_image_movit
mlt_image_opengl_texture = _mlt7.mlt_image_opengl_texture
mlt_image_yuv422p16 = _mlt7.mlt_image_yuv422p16
mlt_image_yuv420p10 = _mlt7.mlt_image_yuv420p10
mlt_image_yuv444p10 = _mlt7.mlt_image_yuv444p10
mlt_image_invalid = _mlt7.mlt_image_invalid
mlt_audio_none = _mlt7.mlt_audio_none
mlt_audio_s16 = _mlt7.mlt_audio_s16
mlt_audio_s32 = _mlt7.mlt_audio_s32
mlt_audio_float = _mlt7.mlt_audio_float
mlt_audio_s32le = _mlt7.mlt_audio_s32le
mlt_audio_f32le = _mlt7.mlt_audio_f32le
mlt_audio_u8 = _mlt7.mlt_audio_u8
mlt_channel_auto = _mlt7.mlt_channel_auto
mlt_channel_independent = _mlt7.mlt_channel_independent
mlt_channel_mono = _mlt7.mlt_channel_mono
mlt_channel_stereo = _mlt7.mlt_channel_stereo
mlt_channel_2p1 = _mlt7.mlt_channel_2p1
mlt_channel_3p0 = _mlt7.mlt_channel_3p0
mlt_channel_3p0_back = _mlt7.mlt_channel_3p0_back
mlt_channel_4p0 = _mlt7.mlt_channel_4p0
mlt_channel_quad_back = _mlt7.mlt_channel_quad_back
mlt_channel_quad_side = _mlt7.mlt_channel_quad_side
mlt_channel_3p1 = _mlt7.mlt_channel_3p1
mlt_channel_5p0_back = _mlt7.mlt_channel_5p0_back
mlt_channel_5p0 = _mlt7.mlt_channel_5p0
mlt_channel_4p1 = _mlt7.mlt_channel_4p1
mlt_channel_5p1_back = _mlt7.mlt_channel_5p1_back
mlt_channel_5p1 = _mlt7.mlt_channel_5p1
mlt_channel_6p0 = _mlt7.mlt_channel_6p0
mlt_channel_6p0_front = _mlt7.mlt_channel_6p0_front
mlt_channel_hexagonal = _mlt7.mlt_channel_hexagonal
mlt_channel_6p1 = _mlt7.mlt_channel_6p1
mlt_channel_6p1_back = _mlt7.mlt_channel_6p1_back
mlt_channel_6p1_front = _mlt7.mlt_channel_6p1_front
mlt_channel_7p0 = _mlt7.mlt_channel_7p0
mlt_channel_7p0_front = _mlt7.mlt_channel_7p0_front
mlt_channel_7p1 = _mlt7.mlt_channel_7p1
mlt_channel_7p1_wide_side = _mlt7.mlt_channel_7p1_wide_side
mlt_channel_7p1_wide_back = _mlt7.mlt_channel_7p1_wide_back
mlt_colorspace_rgb = _mlt7.mlt_colorspace_rgb
mlt_colorspace_bt709 = _mlt7.mlt_colorspace_bt709
mlt_colorspace_unspecified = _mlt7.mlt_colorspace_unspecified
mlt_colorspace_reserved = _mlt7.mlt_colorspace_reserved
mlt_colorspace_fcc = _mlt7.mlt_colorspace_fcc
mlt_colorspace_bt470bg = _mlt7.mlt_colorspace_bt470bg
mlt_colorspace_smpte170m = _mlt7.mlt_colorspace_smpte170m
mlt_colorspace_smpte240m = _mlt7.mlt_colorspace_smpte240m
mlt_colorspace_ycgco = _mlt7.mlt_colorspace_ycgco
mlt_colorspace_bt2020_ncl = _mlt7.mlt_colorspace_bt2020_ncl
mlt_colorspace_bt2020_cl = _mlt7.mlt_colorspace_bt2020_cl
mlt_colorspace_smpte2085 = _mlt7.mlt_colorspace_smpte2085
mlt_deinterlacer_none = _mlt7.mlt_deinterlacer_none
mlt_deinterlacer_onefield = _mlt7.mlt_deinterlacer_onefield
mlt_deinterlacer_linearblend = _mlt7.mlt_deinterlacer_linearblend
mlt_deinterlacer_weave = _mlt7.mlt_deinterlacer_weave
mlt_deinterlacer_bob = _mlt7.mlt_deinterlacer_bob
mlt_deinterlacer_greedy = _mlt7.mlt_deinterlacer_greedy
mlt_deinterlacer_yadif_nospatial = _mlt7.mlt_deinterlacer_yadif_nospatial
mlt_deinterlacer_yadif = _mlt7.mlt_deinterlacer_yadif
mlt_deinterlacer_bwdif = _mlt7.mlt_deinterlacer_bwdif
mlt_deinterlacer_estdif = _mlt7.mlt_deinterlacer_estdif
mlt_deinterlacer_invalid = _mlt7.mlt_deinterlacer_invalid
mlt_time_frames = _mlt7.mlt_time_frames
mlt_time_clock = _mlt7.mlt_time_clock
mlt_time_smpte_df = _mlt7.mlt_time_smpte_df
mlt_time_smpte_ndf = _mlt7.mlt_time_smpte_ndf
mlt_keyframe_discrete = _mlt7.mlt_keyframe_discrete
mlt_keyframe_linear = _mlt7.mlt_keyframe_linear
mlt_keyframe_smooth = _mlt7.mlt_keyframe_smooth
mlt_keyframe_smooth_loose = _mlt7.mlt_keyframe_smooth_loose
mlt_keyframe_smooth_natural = _mlt7.mlt_keyframe_smooth_natural
mlt_keyframe_smooth_tight = _mlt7.mlt_keyframe_smooth_tight
mlt_keyframe_sinusoidal_in = _mlt7.mlt_keyframe_sinusoidal_in
mlt_keyframe_sinusoidal_out = _mlt7.mlt_keyframe_sinusoidal_out
mlt_keyframe_sinusoidal_in_out = _mlt7.mlt_keyframe_sinusoidal_in_out
mlt_keyframe_quadratic_in = _mlt7.mlt_keyframe_quadratic_in
mlt_keyframe_quadratic_out = _mlt7.mlt_keyframe_quadratic_out
mlt_keyframe_quadratic_in_out = _mlt7.mlt_keyframe_quadratic_in_out
mlt_keyframe_cubic_in = _mlt7.mlt_keyframe_cubic_in
mlt_keyframe_cubic_out = _mlt7.mlt_keyframe_cubic_out
mlt_keyframe_cubic_in_out = _mlt7.mlt_keyframe_cubic_in_out
mlt_keyframe_quartic_in = _mlt7.mlt_keyframe_quartic_in
mlt_keyframe_quartic_out = _mlt7.mlt_keyframe_quartic_out
mlt_keyframe_quartic_in_out = _mlt7.mlt_keyframe_quartic_in_out
mlt_keyframe_quintic_in = _mlt7.mlt_keyframe_quintic_in
mlt_keyframe_quintic_out = _mlt7.mlt_keyframe_quintic_out
mlt_keyframe_quintic_in_out = _mlt7.mlt_keyframe_quintic_in_out
mlt_keyframe_exponential_in = _mlt7.mlt_keyframe_exponential_in
mlt_keyframe_exponential_out = _mlt7.mlt_keyframe_exponential_out
mlt_keyframe_exponential_in_out = _mlt7.mlt_keyframe_exponential_in_out
mlt_keyframe_circular_in = _mlt7.mlt_keyframe_circular_in
mlt_keyframe_circular_out = _mlt7.mlt_keyframe_circular_out
mlt_keyframe_circular_in_out = _mlt7.mlt_keyframe_circular_in_out
mlt_keyframe_back_in = _mlt7.mlt_keyframe_back_in
mlt_keyframe_back_out = _mlt7.mlt_keyframe_back_out
mlt_keyframe_back_in_out = _mlt7.mlt_keyframe_back_in_out
mlt_keyframe_elastic_in = _mlt7.mlt_keyframe_elastic_in
mlt_keyframe_elastic_out = _mlt7.mlt_keyframe_elastic_out
mlt_keyframe_elastic_in_out = _mlt7.mlt_keyframe_elastic_in_out
mlt_keyframe_bounce_in = _mlt7.mlt_keyframe_bounce_in
mlt_keyframe_bounce_out = _mlt7.mlt_keyframe_bounce_out
mlt_keyframe_bounce_in_out = _mlt7.mlt_keyframe_bounce_in_out
mlt_whence_relative_start = _mlt7.mlt_whence_relative_start
mlt_whence_relative_current = _mlt7.mlt_whence_relative_current
mlt_whence_relative_end = _mlt7.mlt_whence_relative_end
mlt_service_invalid_type = _mlt7.mlt_service_invalid_type
mlt_service_unknown_type = _mlt7.mlt_service_unknown_type
mlt_service_producer_type = _mlt7.mlt_service_producer_type
mlt_service_tractor_type = _mlt7.mlt_service_tractor_type
mlt_service_playlist_type = _mlt7.mlt_service_playlist_type
mlt_service_multitrack_type = _mlt7.mlt_service_multitrack_type
mlt_service_filter_type = _mlt7.mlt_service_filter_type
mlt_service_transition_type = _mlt7.mlt_service_transition_type
mlt_service_consumer_type = _mlt7.mlt_service_consumer_type
mlt_service_field_type = _mlt7.mlt_service_field_type
mlt_service_link_type = _mlt7.mlt_service_link_type
mlt_service_chain_type = _mlt7.mlt_service_chain_type
MLT_POSITION_FMT = _mlt7.MLT_POSITION_FMT
class mlt_rect(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_mlt7.mlt_rect_x_get, _mlt7.mlt_rect_x_set)
    y = property(_mlt7.mlt_rect_y_get, _mlt7.mlt_rect_y_set)
    w = property(_mlt7.mlt_rect_w_get, _mlt7.mlt_rect_w_set)
    h = property(_mlt7.mlt_rect_h_get, _mlt7.mlt_rect_h_set)
    o = property(_mlt7.mlt_rect_o_get, _mlt7.mlt_rect_o_set)

    def __init__(self):
        _mlt7.mlt_rect_swiginit(self, _mlt7.new_mlt_rect())
    __swig_destroy__ = _mlt7.delete_mlt_rect

# Register mlt_rect in _mlt7:
_mlt7.mlt_rect_swigregister(mlt_rect)
class mlt_color(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    r = property(_mlt7.mlt_color_r_get, _mlt7.mlt_color_r_set)
    g = property(_mlt7.mlt_color_g_get, _mlt7.mlt_color_g_set)
    b = property(_mlt7.mlt_color_b_get, _mlt7.mlt_color_b_set)
    a = property(_mlt7.mlt_color_a_get, _mlt7.mlt_color_a_set)

    def __init__(self):
        _mlt7.mlt_color_swiginit(self, _mlt7.new_mlt_color())
    __swig_destroy__ = _mlt7.delete_mlt_color

# Register mlt_color in _mlt7:
_mlt7.mlt_color_swigregister(mlt_color)
MLT_DIRLIST_DELIMITER = _mlt7.MLT_DIRLIST_DELIMITER

def mlt_deinterlacer_name(method):
    return _mlt7.mlt_deinterlacer_name(method)

def mlt_deinterlacer_id(name):
    return _mlt7.mlt_deinterlacer_id(name)

def mlt_factory_init(directory):
    return _mlt7.mlt_factory_init(directory)

def mlt_factory_repository():
    return _mlt7.mlt_factory_repository()

def mlt_factory_directory():
    return _mlt7.mlt_factory_directory()

def mlt_environment(name):
    return _mlt7.mlt_environment(name)

def mlt_environment_set(name, value):
    return _mlt7.mlt_environment_set(name, value)

def mlt_factory_event_object():
    return _mlt7.mlt_factory_event_object()

def mlt_factory_producer(profile, service, resource):
    return _mlt7.mlt_factory_producer(profile, service, resource)

def mlt_factory_filter(profile, service, input):
    return _mlt7.mlt_factory_filter(profile, service, input)

def mlt_factory_link(service, input):
    return _mlt7.mlt_factory_link(service, input)

def mlt_factory_transition(profile, service, input):
    return _mlt7.mlt_factory_transition(profile, service, input)

def mlt_factory_consumer(profile, service, input):
    return _mlt7.mlt_factory_consumer(profile, service, input)

def mlt_factory_register_for_clean_up(ptr, destructor):
    return _mlt7.mlt_factory_register_for_clean_up(ptr, destructor)

def mlt_factory_close():
    return _mlt7.mlt_factory_close()

def mlt_global_properties():
    return _mlt7.mlt_global_properties()
class mlt_factory_event_data(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    name = property(_mlt7.mlt_factory_event_data_name_get, _mlt7.mlt_factory_event_data_name_set)
    input = property(_mlt7.mlt_factory_event_data_input_get, _mlt7.mlt_factory_event_data_input_set)
    service = property(_mlt7.mlt_factory_event_data_service_get, _mlt7.mlt_factory_event_data_service_set)

    def __init__(self):
        _mlt7.mlt_factory_event_data_swiginit(self, _mlt7.new_mlt_factory_event_data())
    __swig_destroy__ = _mlt7.delete_mlt_factory_event_data

# Register mlt_factory_event_data in _mlt7:
_mlt7.mlt_factory_event_data_swigregister(mlt_factory_event_data)
LIBMLT_VERSION_MAJOR = _mlt7.LIBMLT_VERSION_MAJOR
LIBMLT_VERSION_MINOR = _mlt7.LIBMLT_VERSION_MINOR
LIBMLT_VERSION_REVISION = _mlt7.LIBMLT_VERSION_REVISION
LIBMLT_VERSION_INT = _mlt7.LIBMLT_VERSION_INT
LIBMLT_VERSION = _mlt7.LIBMLT_VERSION

def mlt_version_get_int():
    return _mlt7.mlt_version_get_int()

def mlt_version_get_major():
    return _mlt7.mlt_version_get_major()

def mlt_version_get_minor():
    return _mlt7.mlt_version_get_minor()

def mlt_version_get_revision():
    return _mlt7.mlt_version_get_revision()

def mlt_version_get_string():
    return _mlt7.mlt_version_get_string()

def mlt_log_get_level():
    return _mlt7.mlt_log_get_level()

def mlt_log_set_level(arg1):
    return _mlt7.mlt_log_set_level(arg1)
class Factory(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def init(directory=None):
        return _mlt7.Factory_init(directory)

    @staticmethod
    def event_object():
        return _mlt7.Factory_event_object()

    @staticmethod
    def producer(profile, id, arg=None):
        return _mlt7.Factory_producer(profile, id, arg)

    @staticmethod
    def filter(profile, id, arg=None):
        return _mlt7.Factory_filter(profile, id, arg)

    @staticmethod
    def transition(profile, id, arg=None):
        return _mlt7.Factory_transition(profile, id, arg)

    @staticmethod
    def consumer(profile, id, arg=None):
        return _mlt7.Factory_consumer(profile, id, arg)

    @staticmethod
    def close():
        return _mlt7.Factory_close()

    def __init__(self):
        _mlt7.Factory_swiginit(self, _mlt7.new_Factory())
    __swig_destroy__ = _mlt7.delete_Factory

# Register Factory in _mlt7:
_mlt7.Factory_swigregister(Factory)
class Repository(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Repository_swiginit(self, _mlt7.new_Repository(*args))
    __swig_destroy__ = _mlt7.delete_Repository

    def register_service(self, service_type, service, symbol):
        return _mlt7.Repository_register_service(self, service_type, service, symbol)

    def create(self, profile, type, service, arg):
        return _mlt7.Repository_create(self, profile, type, service, arg)

    def consumers(self):
        return _mlt7.Repository_consumers(self)

    def filters(self):
        return _mlt7.Repository_filters(self)

    def links(self):
        return _mlt7.Repository_links(self)

    def producers(self):
        return _mlt7.Repository_producers(self)

    def transitions(self):
        return _mlt7.Repository_transitions(self)

    def register_metadata(self, type, service, arg4, callback_data):
        return _mlt7.Repository_register_metadata(self, type, service, arg4, callback_data)

    def metadata(self, type, service):
        return _mlt7.Repository_metadata(self, type, service)

    def languages(self):
        return _mlt7.Repository_languages(self)

    @staticmethod
    def presets():
        return _mlt7.Repository_presets()

# Register Repository in _mlt7:
_mlt7.Repository_swigregister(Repository)
class Event(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Event_swiginit(self, _mlt7.new_Event(*args))
    __swig_destroy__ = _mlt7.delete_Event

    def get_event(self):
        return _mlt7.Event_get_event(self)

    def is_valid(self):
        return _mlt7.Event_is_valid(self)

    def block(self):
        return _mlt7.Event_block(self)

    def unblock(self):
        return _mlt7.Event_unblock(self)

# Register Event in _mlt7:
_mlt7.Event_swigregister(Event)
class EventData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.EventData_swiginit(self, _mlt7.new_EventData(*args))
    __swig_destroy__ = _mlt7.delete_EventData

    def get_event_data(self):
        return _mlt7.EventData_get_event_data(self)

    def to_int(self):
        return _mlt7.EventData_to_int(self)

    def to_string(self):
        return _mlt7.EventData_to_string(self)

    def to_frame(self):
        return _mlt7.EventData_to_frame(self)

    def to_object(self):
        return _mlt7.EventData_to_object(self)

# Register EventData in _mlt7:
_mlt7.EventData_swigregister(EventData)
class Properties(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Properties_swiginit(self, _mlt7.new_Properties(*args))
    __swig_destroy__ = _mlt7.delete_Properties

    def get_properties(self):
        return _mlt7.Properties_get_properties(self)

    def inc_ref(self):
        return _mlt7.Properties_inc_ref(self)

    def dec_ref(self):
        return _mlt7.Properties_dec_ref(self)

    def ref_count(self):
        return _mlt7.Properties_ref_count(self)

    def lock(self):
        return _mlt7.Properties_lock(self)

    def unlock(self):
        return _mlt7.Properties_unlock(self)

    def block(self, object=None):
        return _mlt7.Properties_block(self, object)

    def unblock(self, object=None):
        return _mlt7.Properties_unblock(self, object)

    def fire_event(self, event):
        return _mlt7.Properties_fire_event(self, event)

    def is_valid(self):
        return _mlt7.Properties_is_valid(self)

    def count(self):
        return _mlt7.Properties_count(self)

    def get_int(self, name):
        return _mlt7.Properties_get_int(self, name)

    def get_int64(self, name):
        return _mlt7.Properties_get_int64(self, name)

    def get_double(self, name):
        return _mlt7.Properties_get_double(self, name)

    def set_string(self, name, value):
        return _mlt7.Properties_set_string(self, name, value)

    def copy(self, that, prefix):
        return _mlt7.Properties_copy(self, that, prefix)

    def pass_property(self, that, name):
        return _mlt7.Properties_pass_property(self, that, name)

    def pass_values(self, that, prefix):
        return _mlt7.Properties_pass_values(self, that, prefix)

    def pass_list(self, that, list):
        return _mlt7.Properties_pass_list(self, that, list)

    def parse(self, namevalue):
        return _mlt7.Properties_parse(self, namevalue)

    def get_name(self, index):
        return _mlt7.Properties_get_name(self, index)

    def get(self, *args):
        return _mlt7.Properties_get(self, *args)

    def get_data(self, *args):
        return _mlt7.Properties_get_data(self, *args)

    def mirror(self, that):
        return _mlt7.Properties_mirror(self, that)

    def inherit(self, that):
        return _mlt7.Properties_inherit(self, that)

    def rename(self, source, dest):
        return _mlt7.Properties_rename(self, source, dest)

    def dump(self, *args):
        return _mlt7.Properties_dump(self, *args)

    def debug(self, *args):
        return _mlt7.Properties_debug(self, *args)

    def load(self, file):
        return _mlt7.Properties_load(self, file)

    def save(self, file):
        return _mlt7.Properties_save(self, file)

    def listen(self, id, object, arg4):
        return _mlt7.Properties_listen(self, id, object, arg4)

    @staticmethod
    def delete_event(arg1):
        return _mlt7.Properties_delete_event(arg1)

    def setup_wait_for(self, id):
        return _mlt7.Properties_setup_wait_for(self, id)

    def wait_for(self, *args):
        return _mlt7.Properties_wait_for(self, *args)

    def is_sequence(self):
        return _mlt7.Properties_is_sequence(self)

    @staticmethod
    def parse_yaml(file):
        return _mlt7.Properties_parse_yaml(file)

    def serialise_yaml(self):
        return _mlt7.Properties_serialise_yaml(self)

    def preset(self, name):
        return _mlt7.Properties_preset(self, name)

    def set_lcnumeric(self, locale):
        return _mlt7.Properties_set_lcnumeric(self, locale)

    def get_lcnumeric(self):
        return _mlt7.Properties_get_lcnumeric(self)

    def clear(self, name):
        return _mlt7.Properties_clear(self, name)

    def property_exists(self, name):
        return _mlt7.Properties_property_exists(self, name)

    def get_time(self, name, arg3=mlt_time_smpte_df):
        return _mlt7.Properties_get_time(self, name, arg3)

    def frames_to_time(self, arg2, arg3=mlt_time_smpte_df):
        return _mlt7.Properties_frames_to_time(self, arg2, arg3)

    def time_to_frames(self, time):
        return _mlt7.Properties_time_to_frames(self, time)

    def get_color(self, name):
        return _mlt7.Properties_get_color(self, name)

    def anim_get_color(self, name, position, length=0):
        return _mlt7.Properties_anim_get_color(self, name, position, length)

    def anim_get(self, name, position, length=0):
        return _mlt7.Properties_anim_get(self, name, position, length)

    def anim_get_int(self, name, position, length=0):
        return _mlt7.Properties_anim_get_int(self, name, position, length)

    def anim_get_double(self, name, position, length=0):
        return _mlt7.Properties_anim_get_double(self, name, position, length)

    def get_rect(self, name):
        return _mlt7.Properties_get_rect(self, name)

    def anim_set(self, *args):
        return _mlt7.Properties_anim_set(self, *args)

    def anim_get_rect(self, name, position, length=0):
        return _mlt7.Properties_anim_get_rect(self, name, position, length)

    def get_animation(self, name):
        return _mlt7.Properties_get_animation(self, name)

    def get_anim(self, name):
        return _mlt7.Properties_get_anim(self, name)

    def is_anim(self, name):
        return _mlt7.Properties_is_anim(self, name)

    def set(self, *args):
        return _mlt7.Properties_set(self, *args)

    def get_props(self, name):
        return _mlt7.Properties_get_props(self, name)

    def get_props_at(self, index):
        return _mlt7.Properties_get_props_at(self, index)

# Register Properties in _mlt7:
_mlt7.Properties_swigregister(Properties)
class Frame(Properties):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Frame_swiginit(self, _mlt7.new_Frame(*args))
    __swig_destroy__ = _mlt7.delete_Frame

    def __assign__(self, frame):
        return _mlt7.Frame___assign__(self, frame)

    def get_frame(self):
        return _mlt7.Frame_get_frame(self)

    def get_properties(self):
        return _mlt7.Frame_get_properties(self)

    def get_image(*args): return _mlt7.frame_get_image(*args)



    def fetch_image(self, format, w, h, writable=0):
        return _mlt7.Frame_fetch_image(self, format, w, h, writable)

    def get_audio(self, format, frequency, channels, samples):
        return _mlt7.Frame_get_audio(self, format, frequency, channels, samples)

    def get_waveform(*args): return _mlt7.frame_get_waveform(*args)



    def get_original_producer(self):
        return _mlt7.Frame_get_original_producer(self)

    def get_position(self):
        return _mlt7.Frame_get_position(self)

    def get_unique_properties(self, service):
        return _mlt7.Frame_get_unique_properties(self, service)

    def set_image(self, image, size, destroy):
        return _mlt7.Frame_set_image(self, image, size, destroy)

    def set_alpha(self, alpha, size, destroy):
        return _mlt7.Frame_set_alpha(self, alpha, size, destroy)

# Register Frame in _mlt7:
_mlt7.Frame_swigregister(Frame)
class Service(Properties):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Service_swiginit(self, _mlt7.new_Service(*args))
    __swig_destroy__ = _mlt7.delete_Service

    def get_service(self):
        return _mlt7.Service_get_service(self)

    def lock(self):
        return _mlt7.Service_lock(self)

    def unlock(self):
        return _mlt7.Service_unlock(self)

    def get_properties(self):
        return _mlt7.Service_get_properties(self)

    def connect_producer(self, producer, index=0):
        return _mlt7.Service_connect_producer(self, producer, index)

    def insert_producer(self, producer, index=0):
        return _mlt7.Service_insert_producer(self, producer, index)

    def disconnect_producer(self, index=0):
        return _mlt7.Service_disconnect_producer(self, index)

    def disconnect_all_producers(self):
        return _mlt7.Service_disconnect_all_producers(self)

    def consumer(self):
        return _mlt7.Service_consumer(self)

    def producer(self):
        return _mlt7.Service_producer(self)

    def profile(self):
        return _mlt7.Service_profile(self)

    def get_profile(self):
        return _mlt7.Service_get_profile(self)

    def get_frame(self, index=0):
        return _mlt7.Service_get_frame(self, index)

    def type(self):
        return _mlt7.Service_type(self)

    def attach(self, filter):
        return _mlt7.Service_attach(self, filter)

    def detach(self, filter):
        return _mlt7.Service_detach(self, filter)

    def filter_count(self):
        return _mlt7.Service_filter_count(self)

    def move_filter(self, _from, to):
        return _mlt7.Service_move_filter(self, _from, to)

    def filter(self, index):
        return _mlt7.Service_filter(self, index)

    def set_profile(self, *args):
        return _mlt7.Service_set_profile(self, *args)

# Register Service in _mlt7:
_mlt7.Service_swigregister(Service)
class Producer(Service):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Producer_swiginit(self, _mlt7.new_Producer(*args))
    __swig_destroy__ = _mlt7.delete_Producer

    def get_producer(self):
        return _mlt7.Producer_get_producer(self)

    def parent(self):
        return _mlt7.Producer_parent(self)

    def get_parent(self):
        return _mlt7.Producer_get_parent(self)

    def get_service(self):
        return _mlt7.Producer_get_service(self)

    def seek(self, *args):
        return _mlt7.Producer_seek(self, *args)

    def position(self):
        return _mlt7.Producer_position(self)

    def frame(self):
        return _mlt7.Producer_frame(self)

    def frame_time(self, arg2=mlt_time_smpte_df):
        return _mlt7.Producer_frame_time(self, arg2)

    def set_speed(self, speed):
        return _mlt7.Producer_set_speed(self, speed)

    def pause(self):
        return _mlt7.Producer_pause(self)

    def get_speed(self):
        return _mlt7.Producer_get_speed(self)

    def get_fps(self):
        return _mlt7.Producer_get_fps(self)

    def set_in_and_out(self, _in, out):
        return _mlt7.Producer_set_in_and_out(self, _in, out)

    def get_in(self):
        return _mlt7.Producer_get_in(self)

    def get_out(self):
        return _mlt7.Producer_get_out(self)

    def get_length(self):
        return _mlt7.Producer_get_length(self)

    def get_length_time(self, arg2=mlt_time_smpte_df):
        return _mlt7.Producer_get_length_time(self, arg2)

    def get_playtime(self):
        return _mlt7.Producer_get_playtime(self)

    def cut(self, _in=0, out=-1):
        return _mlt7.Producer_cut(self, _in, out)

    def is_cut(self):
        return _mlt7.Producer_is_cut(self)

    def is_blank(self):
        return _mlt7.Producer_is_blank(self)

    def same_clip(self, that):
        return _mlt7.Producer_same_clip(self, that)

    def runs_into(self, that):
        return _mlt7.Producer_runs_into(self, that)

    def optimise(self):
        return _mlt7.Producer_optimise(self)

    def clear(self):
        return _mlt7.Producer_clear(self)

    def get_creation_time(self):
        return _mlt7.Producer_get_creation_time(self)

    def set_creation_time(self, creation_time):
        return _mlt7.Producer_set_creation_time(self, creation_time)

    def probe(self):
        return _mlt7.Producer_probe(self)

# Register Producer in _mlt7:
_mlt7.Producer_swigregister(Producer)
class Profile(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Profile_swiginit(self, _mlt7.new_Profile(*args))
    __swig_destroy__ = _mlt7.delete_Profile

    def is_valid(self):
        return _mlt7.Profile_is_valid(self)

    def get_profile(self):
        return _mlt7.Profile_get_profile(self)

    def description(self):
        return _mlt7.Profile_description(self)

    def frame_rate_num(self):
        return _mlt7.Profile_frame_rate_num(self)

    def frame_rate_den(self):
        return _mlt7.Profile_frame_rate_den(self)

    def fps(self):
        return _mlt7.Profile_fps(self)

    def width(self):
        return _mlt7.Profile_width(self)

    def height(self):
        return _mlt7.Profile_height(self)

    def progressive(self):
        return _mlt7.Profile_progressive(self)

    def sample_aspect_num(self):
        return _mlt7.Profile_sample_aspect_num(self)

    def sample_aspect_den(self):
        return _mlt7.Profile_sample_aspect_den(self)

    def sar(self):
        return _mlt7.Profile_sar(self)

    def display_aspect_num(self):
        return _mlt7.Profile_display_aspect_num(self)

    def display_aspect_den(self):
        return _mlt7.Profile_display_aspect_den(self)

    def dar(self):
        return _mlt7.Profile_dar(self)

    def is_explicit(self):
        return _mlt7.Profile_is_explicit(self)

    def colorspace(self):
        return _mlt7.Profile_colorspace(self)

    @staticmethod
    def list():
        return _mlt7.Profile_list()

    def from_producer(self, producer):
        return _mlt7.Profile_from_producer(self, producer)

    def set_width(self, width):
        return _mlt7.Profile_set_width(self, width)

    def set_height(self, height):
        return _mlt7.Profile_set_height(self, height)

    def set_sample_aspect(self, numerator, denominator):
        return _mlt7.Profile_set_sample_aspect(self, numerator, denominator)

    def set_display_aspect(self, numerator, denominator):
        return _mlt7.Profile_set_display_aspect(self, numerator, denominator)

    def set_progressive(self, progressive):
        return _mlt7.Profile_set_progressive(self, progressive)

    def set_colorspace(self, colorspace):
        return _mlt7.Profile_set_colorspace(self, colorspace)

    def set_frame_rate(self, numerator, denominator):
        return _mlt7.Profile_set_frame_rate(self, numerator, denominator)

    def set_explicit(self, boolean):
        return _mlt7.Profile_set_explicit(self, boolean)

    def scale_width(self, width):
        return _mlt7.Profile_scale_width(self, width)

    def scale_height(self, height):
        return _mlt7.Profile_scale_height(self, height)

# Register Profile in _mlt7:
_mlt7.Profile_swigregister(Profile)
class ClipInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.ClipInfo_swiginit(self, _mlt7.new_ClipInfo(*args))
    __swig_destroy__ = _mlt7.delete_ClipInfo

    def update(self, info):
        return _mlt7.ClipInfo_update(self, info)
    clip = property(_mlt7.ClipInfo_clip_get, _mlt7.ClipInfo_clip_set)
    producer = property(_mlt7.ClipInfo_producer_get, _mlt7.ClipInfo_producer_set)
    cut = property(_mlt7.ClipInfo_cut_get, _mlt7.ClipInfo_cut_set)
    start = property(_mlt7.ClipInfo_start_get, _mlt7.ClipInfo_start_set)
    resource = property(_mlt7.ClipInfo_resource_get, _mlt7.ClipInfo_resource_set)
    frame_in = property(_mlt7.ClipInfo_frame_in_get, _mlt7.ClipInfo_frame_in_set)
    frame_out = property(_mlt7.ClipInfo_frame_out_get, _mlt7.ClipInfo_frame_out_set)
    frame_count = property(_mlt7.ClipInfo_frame_count_get, _mlt7.ClipInfo_frame_count_set)
    length = property(_mlt7.ClipInfo_length_get, _mlt7.ClipInfo_length_set)
    fps = property(_mlt7.ClipInfo_fps_get, _mlt7.ClipInfo_fps_set)
    repeat = property(_mlt7.ClipInfo_repeat_get, _mlt7.ClipInfo_repeat_set)

# Register ClipInfo in _mlt7:
_mlt7.ClipInfo_swigregister(ClipInfo)
class Playlist(Producer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Playlist_swiginit(self, _mlt7.new_Playlist(*args))
    __swig_destroy__ = _mlt7.delete_Playlist

    def get_playlist(self):
        return _mlt7.Playlist_get_playlist(self)

    def get_producer(self):
        return _mlt7.Playlist_get_producer(self)

    def count(self):
        return _mlt7.Playlist_count(self)

    def clear(self):
        return _mlt7.Playlist_clear(self)

    def append(self, producer, _in=-1, out=-1):
        return _mlt7.Playlist_append(self, producer, _in, out)

    def blank(self, *args):
        return _mlt7.Playlist_blank(self, *args)

    def clip(self, whence, index):
        return _mlt7.Playlist_clip(self, whence, index)

    def current_clip(self):
        return _mlt7.Playlist_current_clip(self)

    def current(self):
        return _mlt7.Playlist_current(self)

    def clip_info(self, index, info=None):
        return _mlt7.Playlist_clip_info(self, index, info)

    @staticmethod
    def delete_clip_info(info):
        return _mlt7.Playlist_delete_clip_info(info)

    def insert(self, producer, where, _in=-1, out=-1):
        return _mlt7.Playlist_insert(self, producer, where, _in, out)

    def remove(self, where):
        return _mlt7.Playlist_remove(self, where)

    def move(self, _from, to):
        return _mlt7.Playlist_move(self, _from, to)

    def reorder(self, indices):
        return _mlt7.Playlist_reorder(self, indices)

    def resize_clip(self, clip, _in, out):
        return _mlt7.Playlist_resize_clip(self, clip, _in, out)

    def split(self, clip, position):
        return _mlt7.Playlist_split(self, clip, position)

    def split_at(self, position, left=True):
        return _mlt7.Playlist_split_at(self, position, left)

    def join(self, clip, count=1, merge=1):
        return _mlt7.Playlist_join(self, clip, count, merge)

    def mix(self, clip, length, transition=None):
        return _mlt7.Playlist_mix(self, clip, length, transition)

    def mix_in(self, clip, length):
        return _mlt7.Playlist_mix_in(self, clip, length)

    def mix_out(self, clip, length):
        return _mlt7.Playlist_mix_out(self, clip, length)

    def mix_add(self, clip, transition):
        return _mlt7.Playlist_mix_add(self, clip, transition)

    def repeat(self, clip, count):
        return _mlt7.Playlist_repeat(self, clip, count)

    def get_clip(self, clip):
        return _mlt7.Playlist_get_clip(self, clip)

    def get_clip_at(self, position):
        return _mlt7.Playlist_get_clip_at(self, position)

    def get_clip_index_at(self, position):
        return _mlt7.Playlist_get_clip_index_at(self, position)

    def is_mix(self, clip):
        return _mlt7.Playlist_is_mix(self, clip)

    def is_blank(self, clip):
        return _mlt7.Playlist_is_blank(self, clip)

    def is_blank_at(self, position):
        return _mlt7.Playlist_is_blank_at(self, position)

    def consolidate_blanks(self, keep_length=0):
        return _mlt7.Playlist_consolidate_blanks(self, keep_length)

    def replace_with_blank(self, clip):
        return _mlt7.Playlist_replace_with_blank(self, clip)

    def insert_blank(self, clip, out):
        return _mlt7.Playlist_insert_blank(self, clip, out)

    def pad_blanks(self, position, length, find=0):
        return _mlt7.Playlist_pad_blanks(self, position, length, find)

    def insert_at(self, *args):
        return _mlt7.Playlist_insert_at(self, *args)

    def clip_start(self, clip):
        return _mlt7.Playlist_clip_start(self, clip)

    def clip_length(self, clip):
        return _mlt7.Playlist_clip_length(self, clip)

    def blanks_from(self, clip, bounded=0):
        return _mlt7.Playlist_blanks_from(self, clip, bounded)

    def remove_region(self, position, length):
        return _mlt7.Playlist_remove_region(self, position, length)

# Register Playlist in _mlt7:
_mlt7.Playlist_swigregister(Playlist)
class Consumer(Service):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Consumer_swiginit(self, _mlt7.new_Consumer(*args))
    __swig_destroy__ = _mlt7.delete_Consumer

    def get_consumer(self):
        return _mlt7.Consumer_get_consumer(self)

    def get_service(self):
        return _mlt7.Consumer_get_service(self)

    def connect(self, service):
        return _mlt7.Consumer_connect(self, service)

    def run(self):
        return _mlt7.Consumer_run(self)

    def start(self):
        return _mlt7.Consumer_start(self)

    def purge(self):
        return _mlt7.Consumer_purge(self)

    def stop(self):
        return _mlt7.Consumer_stop(self)

    def is_stopped(self):
        return _mlt7.Consumer_is_stopped(self)

    def position(self):
        return _mlt7.Consumer_position(self)

# Register Consumer in _mlt7:
_mlt7.Consumer_swigregister(Consumer)
class Filter(Service):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Filter_swiginit(self, _mlt7.new_Filter(*args))
    __swig_destroy__ = _mlt7.delete_Filter

    def get_filter(self):
        return _mlt7.Filter_get_filter(self)

    def get_service(self):
        return _mlt7.Filter_get_service(self)

    def connect(self, service, index=0):
        return _mlt7.Filter_connect(self, service, index)

    def set_in_and_out(self, _in, out):
        return _mlt7.Filter_set_in_and_out(self, _in, out)

    def get_in(self):
        return _mlt7.Filter_get_in(self)

    def get_out(self):
        return _mlt7.Filter_get_out(self)

    def get_length(self):
        return _mlt7.Filter_get_length(self)

    def get_length2(self, frame):
        return _mlt7.Filter_get_length2(self, frame)

    def get_track(self):
        return _mlt7.Filter_get_track(self)

    def get_position(self, frame):
        return _mlt7.Filter_get_position(self, frame)

    def get_progress(self, frame):
        return _mlt7.Filter_get_progress(self, frame)

    def process(self, frame):
        return _mlt7.Filter_process(self, frame)

# Register Filter in _mlt7:
_mlt7.Filter_swigregister(Filter)
class Transition(Service):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Transition_swiginit(self, _mlt7.new_Transition(*args))
    __swig_destroy__ = _mlt7.delete_Transition

    def get_transition(self):
        return _mlt7.Transition_get_transition(self)

    def get_service(self):
        return _mlt7.Transition_get_service(self)

    def set_in_and_out(self, _in, out):
        return _mlt7.Transition_set_in_and_out(self, _in, out)

    def set_tracks(self, a_track, b_track):
        return _mlt7.Transition_set_tracks(self, a_track, b_track)

    def connect(self, *args):
        return _mlt7.Transition_connect(self, *args)

    def get_a_track(self):
        return _mlt7.Transition_get_a_track(self)

    def get_b_track(self):
        return _mlt7.Transition_get_b_track(self)

    def get_in(self):
        return _mlt7.Transition_get_in(self)

    def get_out(self):
        return _mlt7.Transition_get_out(self)

    def get_length(self):
        return _mlt7.Transition_get_length(self)

    def get_position(self, frame):
        return _mlt7.Transition_get_position(self, frame)

    def get_progress(self, frame):
        return _mlt7.Transition_get_progress(self, frame)

    def get_progress_delta(self, frame):
        return _mlt7.Transition_get_progress_delta(self, frame)

# Register Transition in _mlt7:
_mlt7.Transition_swigregister(Transition)
class Multitrack(Producer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Multitrack_swiginit(self, _mlt7.new_Multitrack(*args))
    __swig_destroy__ = _mlt7.delete_Multitrack

    def get_multitrack(self):
        return _mlt7.Multitrack_get_multitrack(self)

    def get_producer(self):
        return _mlt7.Multitrack_get_producer(self)

    def connect(self, producer, index):
        return _mlt7.Multitrack_connect(self, producer, index)

    def insert(self, producer, index):
        return _mlt7.Multitrack_insert(self, producer, index)

    def disconnect(self, index):
        return _mlt7.Multitrack_disconnect(self, index)

    def clip(self, whence, index):
        return _mlt7.Multitrack_clip(self, whence, index)

    def count(self):
        return _mlt7.Multitrack_count(self)

    def track(self, index):
        return _mlt7.Multitrack_track(self, index)

    def refresh(self):
        return _mlt7.Multitrack_refresh(self)

# Register Multitrack in _mlt7:
_mlt7.Multitrack_swigregister(Multitrack)
class Field(Service):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Field_swiginit(self, _mlt7.new_Field(*args))
    __swig_destroy__ = _mlt7.delete_Field

    def get_field(self):
        return _mlt7.Field_get_field(self)

    def get_service(self):
        return _mlt7.Field_get_service(self)

    def plant_filter(self, filter, track=0):
        return _mlt7.Field_plant_filter(self, filter, track)

    def plant_transition(self, transition, a_track=0, b_track=1):
        return _mlt7.Field_plant_transition(self, transition, a_track, b_track)

    def disconnect_service(self, service):
        return _mlt7.Field_disconnect_service(self, service)

# Register Field in _mlt7:
_mlt7.Field_swigregister(Field)
class Tractor(Producer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Tractor_swiginit(self, _mlt7.new_Tractor(*args))
    __swig_destroy__ = _mlt7.delete_Tractor

    def get_tractor(self):
        return _mlt7.Tractor_get_tractor(self)

    def get_producer(self):
        return _mlt7.Tractor_get_producer(self)

    def multitrack(self):
        return _mlt7.Tractor_multitrack(self)

    def field(self):
        return _mlt7.Tractor_field(self)

    def refresh(self):
        return _mlt7.Tractor_refresh(self)

    def set_track(self, producer, index):
        return _mlt7.Tractor_set_track(self, producer, index)

    def insert_track(self, producer, index):
        return _mlt7.Tractor_insert_track(self, producer, index)

    def remove_track(self, index):
        return _mlt7.Tractor_remove_track(self, index)

    def track(self, index):
        return _mlt7.Tractor_track(self, index)

    def count(self):
        return _mlt7.Tractor_count(self)

    def plant_transition(self, *args):
        return _mlt7.Tractor_plant_transition(self, *args)

    def plant_filter(self, *args):
        return _mlt7.Tractor_plant_filter(self, *args)

    def locate_cut(self, producer, track, cut):
        return _mlt7.Tractor_locate_cut(self, producer, track, cut)

    def connect(self, producer):
        return _mlt7.Tractor_connect(self, producer)

# Register Tractor in _mlt7:
_mlt7.Tractor_swigregister(Tractor)
class Parser(Properties):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _mlt7.Parser_swiginit(self, _mlt7.new_Parser())
    __swig_destroy__ = _mlt7.delete_Parser

    def start(self, service):
        return _mlt7.Parser_start(self, service)

    def get_properties(self):
        return _mlt7.Parser_get_properties(self)

    def on_invalid(self, object):
        return _mlt7.Parser_on_invalid(self, object)

    def on_unknown(self, object):
        return _mlt7.Parser_on_unknown(self, object)

    def on_start_producer(self, object):
        return _mlt7.Parser_on_start_producer(self, object)

    def on_end_producer(self, object):
        return _mlt7.Parser_on_end_producer(self, object)

    def on_start_playlist(self, object):
        return _mlt7.Parser_on_start_playlist(self, object)

    def on_end_playlist(self, object):
        return _mlt7.Parser_on_end_playlist(self, object)

    def on_start_tractor(self, object):
        return _mlt7.Parser_on_start_tractor(self, object)

    def on_end_tractor(self, object):
        return _mlt7.Parser_on_end_tractor(self, object)

    def on_start_multitrack(self, object):
        return _mlt7.Parser_on_start_multitrack(self, object)

    def on_end_multitrack(self, object):
        return _mlt7.Parser_on_end_multitrack(self, object)

    def on_start_track(self):
        return _mlt7.Parser_on_start_track(self)

    def on_end_track(self):
        return _mlt7.Parser_on_end_track(self)

    def on_start_filter(self, object):
        return _mlt7.Parser_on_start_filter(self, object)

    def on_end_filter(self, object):
        return _mlt7.Parser_on_end_filter(self, object)

    def on_start_transition(self, object):
        return _mlt7.Parser_on_start_transition(self, object)

    def on_end_transition(self, object):
        return _mlt7.Parser_on_end_transition(self, object)

    def on_start_chain(self, object):
        return _mlt7.Parser_on_start_chain(self, object)

    def on_end_chain(self, object):
        return _mlt7.Parser_on_end_chain(self, object)

    def on_start_link(self, object):
        return _mlt7.Parser_on_start_link(self, object)

    def on_end_link(self, object):
        return _mlt7.Parser_on_end_link(self, object)

# Register Parser in _mlt7:
_mlt7.Parser_swigregister(Parser)
class FilteredConsumer(Consumer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.FilteredConsumer_swiginit(self, _mlt7.new_FilteredConsumer(*args))
    __swig_destroy__ = _mlt7.delete_FilteredConsumer

    def connect(self, service):
        return _mlt7.FilteredConsumer_connect(self, service)

    def attach(self, filter):
        return _mlt7.FilteredConsumer_attach(self, filter)

    def last(self, filter):
        return _mlt7.FilteredConsumer_last(self, filter)

    def detach(self, filter):
        return _mlt7.FilteredConsumer_detach(self, filter)

# Register FilteredConsumer in _mlt7:
_mlt7.FilteredConsumer_swigregister(FilteredConsumer)
class Animation(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _mlt7.Animation_swiginit(self, _mlt7.new_Animation(*args))
    __swig_destroy__ = _mlt7.delete_Animation

    def is_valid(self):
        return _mlt7.Animation_is_valid(self)

    def get_animation(self):
        return _mlt7.Animation_get_animation(self)

    def __assign__(self, arg2):
        return _mlt7.Animation___assign__(self, arg2)

    def length(self):
        return _mlt7.Animation_length(self)

    def get_item(self, position, is_key, arg4):
        return _mlt7.Animation_get_item(self, position, is_key, arg4)

    def is_key(self, position):
        return _mlt7.Animation_is_key(self, position)

    def keyframe_type(self, position):
        return _mlt7.Animation_keyframe_type(self, position)

    def next_key(self, *args):
        return _mlt7.Animation_next_key(self, *args)

    def previous_key(self, *args):
        return _mlt7.Animation_previous_key(self, *args)

    def key_count(self):
        return _mlt7.Animation_key_count(self)

    def key_get(self, index, frame, arg4):
        return _mlt7.Animation_key_get(self, index, frame, arg4)

    def key_get_frame(self, index):
        return _mlt7.Animation_key_get_frame(self, index)

    def key_get_type(self, index):
        return _mlt7.Animation_key_get_type(self, index)

    def key_set_type(self, index, type):
        return _mlt7.Animation_key_set_type(self, index, type)

    def key_set_frame(self, index, frame):
        return _mlt7.Animation_key_set_frame(self, index, frame)

    def shift_frames(self, shift):
        return _mlt7.Animation_shift_frames(self, shift)

    def set_length(self, length):
        return _mlt7.Animation_set_length(self, length)

    def remove(self, position):
        return _mlt7.Animation_remove(self, position)

    def interpolate(self):
        return _mlt7.Animation_interpolate(self)

    def serialize_cut(self, *args):
        return _mlt7.Animation_serialize_cut(self, *args)

# Register Animation in _mlt7:
_mlt7.Animation_swigregister(Animation)

def frame_get_waveform(arg1, arg2, arg3):
    return _mlt7.frame_get_waveform(arg1, arg2, arg3)

def frame_get_image(arg1, arg2, arg3, arg4):
    return _mlt7.frame_get_image(arg1, arg2, arg3, arg4)

