MLT  7.22.0
Public Member Functions | Data Fields | Private Member Functions
mlt_tractor_s Struct Reference

Tractor class. More...

#include <mlt_tractor.h>

Inheritance diagram for mlt_tractor_s:
mlt_producer_s mlt_service_s mlt_properties_s

Public Member Functions

void mlt_tractor_close (mlt_tractor self)
 Close the tractor and free its resources. More...
 
int mlt_tractor_connect (mlt_tractor self, mlt_service producer)
 Connect the tractor. More...
 
mlt_field mlt_tractor_field (mlt_tractor self)
 Get the field self tractor is harvesting. More...
 
mlt_producer mlt_tractor_get_track (mlt_tractor self, int index)
 Get the producer for a specific track. More...
 
mlt_tractor mlt_tractor_init ()
 Construct a tractor without a field or multitrack. More...
 
int mlt_tractor_insert_track (mlt_tractor self, mlt_producer producer, int index)
 Insert a producer before a specific track. More...
 
mlt_multitrack mlt_tractor_multitrack (mlt_tractor self)
 Get the multitrack a tractor is pulling. More...
 
mlt_tractor mlt_tractor_new ()
 Construct a tractor as well as a field and multitrack. More...
 
mlt_producer mlt_tractor_producer (mlt_tractor self)
 Get the producer object associated to the tractor. More...
 
mlt_properties mlt_tractor_properties (mlt_tractor self)
 Get the properties object associated to the tractor. More...
 
void mlt_tractor_refresh (mlt_tractor self)
 Ensure the tractors in/out points match the multitrack. More...
 
int mlt_tractor_remove_track (mlt_tractor self, int index)
 Remove a track by its index. More...
 
mlt_service mlt_tractor_service (mlt_tractor self)
 Get the service object associated to the tractor. More...
 
int mlt_tractor_set_track (mlt_tractor self, mlt_producer producer, int index)
 Set the producer for a specific track. More...
 
- Public Member Functions inherited from mlt_producer_s
int mlt_producer_attach (mlt_producer self, mlt_filter filter)
 Attach a filter. More...
 
int mlt_producer_clear (mlt_producer self)
 Physically reduce the producer (typically a cut) to a 0 length. More...
 
void mlt_producer_close (mlt_producer self)
 Close the producer. More...
 
mlt_producer mlt_producer_cut (mlt_producer self, int in, int out)
 Create a cut of this producer. More...
 
mlt_producer mlt_producer_cut_parent (mlt_producer self)
 Obtain the parent producer. More...
 
int mlt_producer_detach (mlt_producer self, mlt_filter filter)
 Detach a filter. More...
 
mlt_filter mlt_producer_filter (mlt_producer self, int index)
 Retrieve a filter. More...
 
mlt_position mlt_producer_frame (mlt_producer self)
 Get the current position (relative to start of producer). More...
 
char * mlt_producer_frame_time (mlt_producer self, mlt_time_format format)
 Get the current position (relative to start of producer) as a time string. More...
 
int64_t mlt_producer_get_creation_time (mlt_producer self)
 Get the creation time for the producer. More...
 
double mlt_producer_get_fps (mlt_producer self)
 Get the frames per second. More...
 
mlt_position mlt_producer_get_in (mlt_producer self)
 Get the in point. More...
 
mlt_position mlt_producer_get_length (mlt_producer self)
 Get the total, unedited length of the producer. More...
 
char * mlt_producer_get_length_time (mlt_producer self, mlt_time_format format)
 Get the total, unedited length of the producer as a time string. More...
 
mlt_position mlt_producer_get_out (mlt_producer self)
 Get the out point. More...
 
mlt_position mlt_producer_get_playtime (mlt_producer self)
 Get the total play time. More...
 
double mlt_producer_get_speed (mlt_producer self)
 Get the playing speed. More...
 
int mlt_producer_init (mlt_producer self, void *child)
 Initialize a producer service. More...
 
int mlt_producer_is_blank (mlt_producer self)
 Determine if the producer is a blank. More...
 
int mlt_producer_is_cut (mlt_producer self)
 Determine if producer is a cut. More...
 
int mlt_producer_is_mix (mlt_producer self)
 Determine if producer is a mix. More...
 
mlt_producer mlt_producer_new (mlt_profile profile)
 Create and initialize a new producer. More...
 
int mlt_producer_optimise (mlt_producer self)
 Optimise for overlapping cuts from the same clip. More...
 
mlt_position mlt_producer_position (mlt_producer self)
 Get the current position (relative to in point). More...
 
void mlt_producer_prepare_next (mlt_producer self)
 Prepare for next frame. More...
 
int mlt_producer_probe (mlt_producer self)
 Probe the producer to publish metadata properties. More...
 
mlt_properties mlt_producer_properties (mlt_producer self)
 Get the producer properties. More...
 
int mlt_producer_seek (mlt_producer self, mlt_position position)
 Seek to a specified position. More...
 
int mlt_producer_seek_time (mlt_producer self, const char *time)
 Seek to a specified time string. More...
 
mlt_service mlt_producer_service (mlt_producer self)
 Get the parent service object. More...
 
void mlt_producer_set_creation_time (mlt_producer self, int64_t creation_time)
 Set the creation time for the producer. More...
 
int mlt_producer_set_in_and_out (mlt_producer self, mlt_position in, mlt_position out)
 Set the in and out points. More...
 
int mlt_producer_set_speed (mlt_producer self, double speed)
 Set the playing speed. More...
 
- Public Member Functions inherited from mlt_service_s
void mlt_service_apply_filters (mlt_service self, mlt_frame frame, int index)
 Recursively apply attached filters. More...
 
int mlt_service_attach (mlt_service self, mlt_filter filter)
 Attach a filter. More...
 
mlt_cache_item mlt_service_cache_get (mlt_service self, const char *name)
 Get an object from a service's cache. More...
 
int mlt_service_cache_get_size (mlt_service self, const char *name)
 Get the current maximum size of the named cache. More...
 
void mlt_service_cache_put (mlt_service self, const char *name, void *data, int size, mlt_destructor destructor)
 Put an object into a service's cache. More...
 
void mlt_service_cache_set_size (mlt_service self, const char *name, int size)
 Set the number of items to cache for the named cache. More...
 
void mlt_service_close (mlt_service self)
 Destroy a service. More...
 
int mlt_service_connect_producer (mlt_service self, mlt_service producer, int index)
 Connect a producer to the service. More...
 
mlt_service mlt_service_consumer (mlt_service self)
 Obtain the consumer a service is connected to. More...
 
int mlt_service_detach (mlt_service self, mlt_filter filter)
 Detach a filter. More...
 
int mlt_service_disconnect_all_producers (mlt_service self)
 Remove the all the attached producers. More...
 
int mlt_service_disconnect_producer (mlt_service self, int index)
 Remove the N-th producer. More...
 
mlt_filter mlt_service_filter (mlt_service self, int index)
 Retrieve an attached filter. More...
 
int mlt_service_filter_count (mlt_service self)
 Get the number of filters attached. More...
 
int mlt_service_get_frame (mlt_service self, mlt_frame_ptr frame, int index)
 Obtain a frame. More...
 
mlt_service mlt_service_get_producer (mlt_service self)
 Get the first connected producer. More...
 
mlt_service_type mlt_service_identify (mlt_service self)
 Identify the subclass of the service. More...
 
int mlt_service_init (mlt_service self, void *child)
 Initialize a service. More...
 
int mlt_service_insert_producer (mlt_service self, mlt_service producer, int index)
 Insert a producer connected to the service. More...
 
void mlt_service_lock (mlt_service self)
 Acquire a mutual exclusion lock on this service. More...
 
int mlt_service_move_filter (mlt_service self, int from, int to)
 Reorder the attached filters. More...
 
mlt_service mlt_service_producer (mlt_service self)
 Obtain the producer a service is connected to. More...
 
mlt_profile mlt_service_profile (mlt_service self)
 Retrieve the profile. More...
 
mlt_properties mlt_service_properties (mlt_service self)
 Return the properties object. More...
 
void mlt_service_set_profile (mlt_service self, mlt_profile profile)
 Set the profile for a service. More...
 
void mlt_service_unlock (mlt_service self)
 Release a mutual exclusion lock on this service. More...
 
- Public Member Functions inherited from mlt_properties_s
char * mlt_properties_anim_get (mlt_properties self, const char *name, int position, int length)
 Get a string value by name at a frame position. More...
 
mlt_color mlt_properties_anim_get_color (mlt_properties self, const char *name, int position, int length)
 Get a color associated to the name at a frame position. More...
 
double mlt_properties_anim_get_double (mlt_properties self, const char *name, int position, int length)
 Get a real number associated to the name at a frame position. More...
 
int mlt_properties_anim_get_int (mlt_properties self, const char *name, int position, int length)
 Get an integer associated to the name at a frame position. More...
 
mlt_rect mlt_properties_anim_get_rect (mlt_properties self, const char *name, int position, int length)
 Get a rectangle associated to the name at a frame position. More...
 
int mlt_properties_anim_set (mlt_properties self, const char *name, const char *value, int position, int length)
 Set a property to a string at a frame position. More...
 
int mlt_properties_anim_set_color (mlt_properties self, const char *name, mlt_color value, int position, int length, mlt_keyframe_type keyframe_type)
 Set a property to an integer value by color at a frame position. More...
 
int mlt_properties_anim_set_double (mlt_properties self, const char *name, double value, int position, int length, mlt_keyframe_type keyframe_type)
 Set a property to a real number at a frame position. More...
 
int mlt_properties_anim_set_int (mlt_properties self, const char *name, int value, int position, int length, mlt_keyframe_type keyframe_type)
 Set a property to an integer value at a frame position. More...
 
int mlt_properties_anim_set_rect (mlt_properties self, const char *name, mlt_rect value, int position, int length, mlt_keyframe_type keyframe_type)
 Set a property to a rectangle value at a frame position. More...
 
void mlt_properties_clear (mlt_properties self, const char *name)
 Remove the value for a property. More...
 
void mlt_properties_close (mlt_properties self)
 Close a properties object. More...
 
int mlt_properties_copy (mlt_properties self, mlt_properties that, const char *prefix)
 Copy all serializable properties that match a prefix to another properties object. More...
 
int mlt_properties_count (mlt_properties self)
 Return the number of items in the list. More...
 
void mlt_properties_debug (mlt_properties self, const char *title, FILE *output)
 Output the properties to a file handle. More...
 
int mlt_properties_dec_ref (mlt_properties self)
 Decrement the reference count. More...
 
int mlt_properties_dir_list (mlt_properties self, const char *dirname, const char *pattern, int sort)
 Get the contents of a directory. More...
 
void mlt_properties_dump (mlt_properties self, FILE *output)
 Dump the properties to a file handle. More...
 
int mlt_properties_exists (mlt_properties self, const char *name)
 Check if a property exists. More...
 
char * mlt_properties_frames_to_time (mlt_properties self, mlt_position frames, mlt_time_format format)
 Convert a frame count to a time string. More...
 
int mlt_properties_from_utf8 (mlt_properties properties, const char *name_from, const char *name_to)
 Convert UTF-8 property to the locale-defined encoding. More...
 
char * mlt_properties_get (mlt_properties self, const char *name)
 Get a string value by name. More...
 
mlt_animation mlt_properties_get_animation (mlt_properties self, const char *name)
 Get the animation associated to the name. More...
 
mlt_color mlt_properties_get_color (mlt_properties self, const char *name)
 Convert a numeric property to a tuple of color components. More...
 
void * mlt_properties_get_data (mlt_properties self, const char *name, int *length)
 Get a binary data value associated to the name. More...
 
void * mlt_properties_get_data_at (mlt_properties self, int index, int *size)
 Get a data value by index. More...
 
double mlt_properties_get_double (mlt_properties self, const char *name)
 Get a floating point value associated to the name. More...
 
int mlt_properties_get_int (mlt_properties self, const char *name)
 Get an integer associated to the name. More...
 
int64_t mlt_properties_get_int64 (mlt_properties self, const char *name)
 Get a 64-bit integer associated to the name. More...
 
const char * mlt_properties_get_lcnumeric (mlt_properties self)
 Get the numeric locale for this properties object. More...
 
char * mlt_properties_get_name (mlt_properties self, int index)
 Get a property name by index. More...
 
mlt_position mlt_properties_get_position (mlt_properties self, const char *name)
 Get a position value associated to the name. More...
 
mlt_properties mlt_properties_get_properties (mlt_properties self, const char *name)
 Get a nested properties object by name. More...
 
mlt_properties mlt_properties_get_properties_at (mlt_properties self, int index)
 Get a nested properties object by index. More...
 
mlt_rect mlt_properties_get_rect (mlt_properties self, const char *name)
 Get a rectangle associated to the name. More...
 
char * mlt_properties_get_time (mlt_properties self, const char *name, mlt_time_format format)
 Get a time string associated to the name. More...
 
char * mlt_properties_get_value (mlt_properties self, int index)
 Get a property's string value by index. More...
 
char * mlt_properties_get_value_tf (mlt_properties self, int index, mlt_time_format time_format)
 Get a property's string value by index (with time format). More...
 
int mlt_properties_inc_ref (mlt_properties self)
 Increment the reference count. More...
 
int mlt_properties_inherit (mlt_properties self, mlt_properties that)
 Copy all serializable properties to another properties list. More...
 
int mlt_properties_init (mlt_properties self, void *child)
 Initialize a properties object that was already allocated. More...
 
int mlt_properties_is_anim (mlt_properties self, const char *name)
 Check if a property is animated. More...
 
int mlt_properties_is_sequence (mlt_properties properties)
 Determine if the properties list is really just a sequence or ordered list. More...
 
mlt_properties mlt_properties_load (const char *filename)
 Create a properties object by reading a .properties text file. More...
 
void mlt_properties_lock (mlt_properties self)
 Protect a properties list against concurrent access. More...
 
void mlt_properties_mirror (mlt_properties self, mlt_properties that)
 Set a properties list to be a mirror copy of another. More...
 
mlt_properties mlt_properties_new ()
 Create a properties object. More...
 
int mlt_properties_parse (mlt_properties self, const char *namevalue)
 Set a value by parsing a name=value string. More...
 
mlt_properties mlt_properties_parse_yaml (const char *filename)
 Parse a YAML Tiny file by name. More...
 
int mlt_properties_pass (mlt_properties self, mlt_properties that, const char *prefix)
 Pass all serializable properties that match a prefix to another properties object. More...
 
int mlt_properties_pass_list (mlt_properties self, mlt_properties that, const char *list)
 Copy all properties specified in a comma-separated list to another properties list. More...
 
void mlt_properties_pass_property (mlt_properties self, mlt_properties that, const char *name)
 Copy a property to another properties list. More...
 
int mlt_properties_preset (mlt_properties self, const char *name)
 Set properties from a preset. More...
 
int mlt_properties_ref_count (mlt_properties self)
 Get the reference count. More...
 
int mlt_properties_rename (mlt_properties self, const char *source, const char *dest)
 Rename a property. More...
 
int mlt_properties_save (mlt_properties self, const char *filename)
 Save the properties to a file by name. More...
 
char * mlt_properties_serialise_yaml (mlt_properties self)
 Serialize a properties list as a string of YAML Tiny. More...
 
int mlt_properties_set (mlt_properties self, const char *name, const char *value)
 Set a property to a string. More...
 
int mlt_properties_set_color (mlt_properties self, const char *name, mlt_color color)
 Set a property to an integer value by color. More...
 
int mlt_properties_set_data (mlt_properties self, const char *name, void *value, int length, mlt_destructor destroy, mlt_serialiser serialise)
 Store binary data as a property. More...
 
int mlt_properties_set_double (mlt_properties self, const char *name, double value)
 Set a property to a floating point value. More...
 
int mlt_properties_set_int (mlt_properties self, const char *name, int value)
 Set a property to an integer value. More...
 
int mlt_properties_set_int64 (mlt_properties self, const char *name, int64_t value)
 Set a property to a 64-bit integer value. More...
 
int mlt_properties_set_lcnumeric (mlt_properties self, const char *locale)
 Set the numeric locale used for string/double conversions. More...
 
int mlt_properties_set_or_default (mlt_properties self, const char *name, const char *value, const char *def)
 Set or default a property to a string. More...
 
int mlt_properties_set_position (mlt_properties self, const char *name, mlt_position value)
 Set a property to a position value. More...
 
int mlt_properties_set_properties (mlt_properties self, const char *name, mlt_properties properties)
 Set a property to a nested properties object. More...
 
int mlt_properties_set_rect (mlt_properties self, const char *name, mlt_rect value)
 Set a property to a rectangle value. More...
 
int mlt_properties_set_string (mlt_properties self, const char *name, const char *value)
 Set a property to a string. More...
 
mlt_position mlt_properties_time_to_frames (mlt_properties self, const char *time)
 Convert a time string to a frame count. More...
 
void mlt_properties_unlock (mlt_properties self)
 End protecting a properties list against concurrent access. More...
 

Data Fields

struct mlt_producer_s parent
 
mlt_service producer
 
- Data Fields inherited from mlt_producer_s
mlt_destructor close
 the destructor virtual function More...
 
void * close_object
 the object supplied to the close virtual function More...
 
int(* get_frame )(mlt_producer, mlt_frame_ptr, int)
 Get a frame of data (virtual function). More...
 
struct mlt_service_s parent
 A producer is a service. More...
 
int(* seek )(mlt_producer, mlt_position)
 Seek to a specified position (virtual function). More...
 
int(* set_in_and_out )(mlt_producer, mlt_position, mlt_position)
 Set the in and out points. More...
 
- Data Fields inherited from mlt_service_s
mlt_destructor close
 the destructor virtual function More...
 
void * close_object
 the object supplied to the close virtual function More...
 
int(* get_frame )(mlt_service self, mlt_frame_ptr frame, int index)
 Get a frame of data (virtual function). More...
 
- Data Fields inherited from mlt_properties_s
mlt_destructor close
 the destructor virtual function More...
 
void * close_object
 the object supplied to the close virtual function More...
 

Private Member Functions

static int producer_get_frame (mlt_producer parent, mlt_frame_ptr frame, int track)
 Get the next frame. More...
 

Detailed Description

Tractor class.

The tractor is a convenience class that works with the field class to manage a multitrack, track filters, and transitions.

Property:

multitrack holds a reference to the mulitrack object that a tractor manages

field holds a reference to the field object that a tractor manages

producer holds a reference to an encapsulated producer

Member Function Documentation

◆ mlt_tractor_close()

void mlt_tractor_close ( mlt_tractor  self)

Close the tractor and free its resources.

Parameters
selfa tractor

◆ mlt_tractor_connect()

int mlt_tractor_connect ( mlt_tractor  self,
mlt_service  producer 
)

Connect the tractor.

Parameters
selfa tractor
producera producer
Returns
true on error

◆ mlt_tractor_field()

mlt_field mlt_tractor_field ( mlt_tractor  self)

Get the field self tractor is harvesting.

Parameters
selfa tractor
Returns
a field or NULL if there is no field for this tractor

◆ mlt_tractor_get_track()

mlt_producer mlt_tractor_get_track ( mlt_tractor  self,
int  index 
)

Get the producer for a specific track.

Parameters
selfa tractor
indexthe 0-based track index
Returns
the producer for track index

◆ mlt_tractor_init()

mlt_tractor mlt_tractor_init ( )

Construct a tractor without a field or multitrack.

Sets the resource property to "<tractor>", the mlt_type to "mlt_producer", and mlt_service to "tractor".

Returns
the new tractor

◆ mlt_tractor_insert_track()

int mlt_tractor_insert_track ( mlt_tractor  self,
mlt_producer  producer,
int  index 
)

Insert a producer before a specific track.

This also adjusts the track indices on mlt_transition_s and mlt_filter_s,

Parameters
selfa tractor
producera producer
indexthe 0-based track index
Returns
true on error

◆ mlt_tractor_multitrack()

mlt_multitrack mlt_tractor_multitrack ( mlt_tractor  self)

Get the multitrack a tractor is pulling.

Parameters
selfa tractor
Returns
a multitrack or NULL if there is none

◆ mlt_tractor_new()

mlt_tractor mlt_tractor_new ( )

Construct a tractor as well as a field and multitrack.

Sets the resource property to "<tractor>", the mlt_type to "mlt_producer", and mlt_service to "tractor".

Returns
the new tractor

◆ mlt_tractor_producer()

mlt_producer mlt_tractor_producer ( mlt_tractor  self)

Get the producer object associated to the tractor.

Parameters
selfa tractor
Returns
the parent producer object
See also
MLT_TRACTOR_PRODUCER

◆ mlt_tractor_properties()

mlt_properties mlt_tractor_properties ( mlt_tractor  self)

Get the properties object associated to the tractor.

Parameters
selfa tractor
Returns
the tractor's property list
See also
MLT_TRACTOR_PROPERTIES

◆ mlt_tractor_refresh()

void mlt_tractor_refresh ( mlt_tractor  self)

Ensure the tractors in/out points match the multitrack.

Parameters
selfa tractor

◆ mlt_tractor_remove_track()

int mlt_tractor_remove_track ( mlt_tractor  self,
int  index 
)

Remove a track by its index.

Parameters
selfa tractor
indexthe 0-based track index
Returns
true on error

◆ mlt_tractor_service()

mlt_service mlt_tractor_service ( mlt_tractor  self)

Get the service object associated to the tractor.

Parameters
selfa tractor
Returns
the parent service object
See also
MLT_TRACTOR_SERVICE

◆ mlt_tractor_set_track()

int mlt_tractor_set_track ( mlt_tractor  self,
mlt_producer  producer,
int  index 
)

Set the producer for a specific track.

Parameters
selfa tractor
producera producer
indexthe 0-based track index
Returns
true on error

◆ producer_get_frame()

static int producer_get_frame ( mlt_producer  parent,
mlt_frame_ptr  frame,
int  track 
)
private

Get the next frame.

Parameters
parentthe producer interface to the tractor
[out]framea frame by reference
trackthe 0-based track index
Returns
true on error

Field Documentation

◆ parent

struct mlt_producer_s mlt_tractor_s::parent

◆ producer

mlt_service mlt_tractor_s::producer

The documentation for this struct was generated from the following files: