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

Filter abstract service class. More...

#include <mlt_filter.h>

Inheritance diagram for mlt_filter_s:
mlt_service_s mlt_properties_s

Public Member Functions

void mlt_filter_close (mlt_filter self)
 Close and destroy the filter. More...
 
int mlt_filter_connect (mlt_filter self, mlt_service producer, int index)
 Connect this filter to a producers track. More...
 
mlt_position mlt_filter_get_in (mlt_filter self)
 Get the in point. More...
 
mlt_position mlt_filter_get_length (mlt_filter self)
 Get the duration. More...
 
mlt_position mlt_filter_get_length2 (mlt_filter self, mlt_frame frame)
 Get the duration. More...
 
mlt_position mlt_filter_get_out (mlt_filter self)
 Get the out point. More...
 
mlt_position mlt_filter_get_position (mlt_filter self, mlt_frame frame)
 Get the position within the filter. More...
 
double mlt_filter_get_progress (mlt_filter self, mlt_frame frame)
 Get the percent complete. More...
 
int mlt_filter_get_track (mlt_filter self)
 Return the track that this filter is operating on. More...
 
int mlt_filter_init (mlt_filter self, void *child)
 Initialize a new filter. More...
 
mlt_filter mlt_filter_new ()
 Create a new filter and initialize it. More...
 
mlt_frame mlt_filter_process (mlt_filter self, mlt_frame frame)
 Process the frame. More...
 
mlt_properties mlt_filter_properties (mlt_filter self)
 Get the filter properties. More...
 
mlt_service mlt_filter_service (mlt_filter self)
 Get the service class interface. More...
 
void mlt_filter_set_in_and_out (mlt_filter self, mlt_position in, mlt_position out)
 Set the starting and ending time. 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

void * child
 Protected. More...
 
void(* close )(mlt_filter)
 public virtual More...
 
struct mlt_service_s parent
 We're implementing service here. More...
 
mlt_frame(* process )(mlt_filter, mlt_frame)
 protected filter method 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 filter_get_frame (mlt_service service, mlt_frame_ptr frame, int index)
 Get a frame from this filter. More...
 

Detailed Description

Filter abstract service class.

A filter is a service that may modify the output of a single producer.

Property:

track the index of the track of a multitrack on which the filter is applied

service a reference to the service to which this filter is attached.

disable Set this to disable the filter while keeping it in the object model. Currently this is not cleared when the filter is detached.

Member Function Documentation

◆ filter_get_frame()

static int filter_get_frame ( mlt_service  service,
mlt_frame_ptr  frame,
int  index 
)
private

Get a frame from this filter.

Parameters
servicea service
[out]framea frame by reference
indexas determined by the producer
Returns
true on error

◆ mlt_filter_close()

void mlt_filter_close ( mlt_filter  self)

Close and destroy the filter.

Parameters
selfa filter

◆ mlt_filter_connect()

int mlt_filter_connect ( mlt_filter  self,
mlt_service  producer,
int  index 
)

Connect this filter to a producers track.

Note that a filter only operates on a single track, and by default it operates on the entirety of that track.

Parameters
selfa filter
producerthe producer to which to connect this filter
indexwhich of potentially multiple producers to this service (0 based)

◆ mlt_filter_get_in()

mlt_position mlt_filter_get_in ( mlt_filter  self)

Get the in point.

Parameters
selfa filter
Returns
the start time for the filter relative to the producer

◆ mlt_filter_get_length()

mlt_position mlt_filter_get_length ( mlt_filter  self)

Get the duration.

Parameters
selfa filter
Returns
the duration or zero if unlimited

◆ mlt_filter_get_length2()

mlt_position mlt_filter_get_length2 ( mlt_filter  self,
mlt_frame  frame 
)

Get the duration.

This version works with filters with no explicit in and out by getting the length of the frame's producer.

Parameters
selfa filter
framea frame from which to get its producer
Returns
the duration or zero if unlimited

◆ mlt_filter_get_out()

mlt_position mlt_filter_get_out ( mlt_filter  self)

Get the out point.

Parameters
selfa filter
Returns
the ending time for the filter relative to the producer

◆ mlt_filter_get_position()

mlt_position mlt_filter_get_position ( mlt_filter  self,
mlt_frame  frame 
)

Get the position within the filter.

The position is relative to the in point. This will only be valid once mlt_filter_process is called.

Parameters
selfa filter
framea frame
Returns
the position

◆ mlt_filter_get_progress()

double mlt_filter_get_progress ( mlt_filter  self,
mlt_frame  frame 
)

Get the percent complete.

This will only be valid once mlt_filter_process is called.

Parameters
selfa filter
framea frame
Returns
the progress in the range 0.0 to 1.0

◆ mlt_filter_get_track()

int mlt_filter_get_track ( mlt_filter  self)

Return the track that this filter is operating on.

Parameters
selfa filter
Returns
true on error

◆ mlt_filter_init()

int mlt_filter_init ( mlt_filter  self,
void *  child 
)

Initialize a new filter.

Parameters
selfa filter
childthe object of a subclass
Returns
true if there was an error

◆ mlt_filter_new()

mlt_filter mlt_filter_new ( )

Create a new filter and initialize it.

Returns
a new filter

◆ mlt_filter_process()

mlt_frame mlt_filter_process ( mlt_filter  self,
mlt_frame  frame 
)

Process the frame.

When fetching the frame position in a subclass process method, the frame's position is relative to the filter's producer - not the filter's in point or timeline.

Parameters
selfa filter
framea frame
Returns
a frame

◆ mlt_filter_properties()

mlt_properties mlt_filter_properties ( mlt_filter  self)

Get the filter properties.

Parameters
selfa filter
Returns
the properties list for the filter
See also
MLT_FILTER_PROPERTIES

◆ mlt_filter_service()

mlt_service mlt_filter_service ( mlt_filter  self)

Get the service class interface.

Parameters
selfa filter
Returns
the service parent class
See also
MLT_FILTER_SERVICE

◆ mlt_filter_set_in_and_out()

void mlt_filter_set_in_and_out ( mlt_filter  self,
mlt_position  in,
mlt_position  out 
)

Set the starting and ending time.

Parameters
selfa filter
inthe time relative to the producer at which start applying the filter
outthe time relative to the producer at which to stop applying the filter

Field Documentation

◆ child

void* mlt_filter_s::child

Protected.

◆ close

void(* mlt_filter_s::close) (mlt_filter)

public virtual

◆ parent

struct mlt_service_s mlt_filter_s::parent

We're implementing service here.

◆ process

mlt_frame(* mlt_filter_s::process) (mlt_filter, mlt_frame)

protected filter method


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