MLT  7.22.0
Public Member Functions | Data Fields | Private Member Functions | Private Attributes
mlt_consumer_s Struct Reference

Consumer abstract service class. More...

#include <mlt_consumer.h>

Inheritance diagram for mlt_consumer_s:
mlt_service_s mlt_properties_s

Public Member Functions

void mlt_consumer_close (mlt_consumer self)
 Close and destroy the consumer. More...
 
int mlt_consumer_connect (mlt_consumer self, mlt_service producer)
 Connect the consumer to the producer. More...
 
mlt_frame mlt_consumer_get_frame (mlt_consumer self)
 Protected method for consumer to get frames from connected service. More...
 
int mlt_consumer_init (mlt_consumer self, void *child, mlt_profile profile)
 Initialize a consumer service. More...
 
int mlt_consumer_is_stopped (mlt_consumer self)
 Determine if the consumer is stopped. More...
 
mlt_consumer mlt_consumer_new (mlt_profile profile)
 Create a new consumer. More...
 
mlt_position mlt_consumer_position (mlt_consumer consumer)
 Get the position of the last frame shown. More...
 
mlt_properties mlt_consumer_properties (mlt_consumer self)
 Get the consumer properties. More...
 
void mlt_consumer_purge (mlt_consumer self)
 Flush the read/render thread's buffer. More...
 
int mlt_consumer_put_frame (mlt_consumer self, mlt_frame frame)
 An alternative method to feed frames into the consumer. More...
 
mlt_frame mlt_consumer_rt_frame (mlt_consumer self)
 Get the next frame from the producer connected to a consumer. More...
 
mlt_service mlt_consumer_service (mlt_consumer self)
 Get the parent service object. More...
 
int mlt_consumer_start (mlt_consumer self)
 Start the consumer. More...
 
int mlt_consumer_stop (mlt_consumer self)
 Stop the consumer. More...
 
void mlt_consumer_stopped (mlt_consumer self)
 Callback for the implementation to indicate a stopped condition. 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(* close )(mlt_consumer)
 The destructor virtual function. More...
 
int(* is_stopped )(mlt_consumer)
 Get whether the consumer is running or stopped (virtual function). More...
 
struct mlt_service_s parent
 A consumer is a service. More...
 
void(* purge )(mlt_consumer)
 Purge the consumer of buffered data (virtual function). More...
 
int(* start )(mlt_consumer)
 Start the consumer to pull frames (virtual function). More...
 
int(* stop )(mlt_consumer)
 Stop the consumer (virtual function). 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 void apply_profile_properties (mlt_consumer self, mlt_profile profile, mlt_properties properties)
 Convert the profile into properties on the consumer. More...
 
static void consumer_read_ahead_start (mlt_consumer self)
 Start the read/render thread. More...
 
static void consumer_read_ahead_stop (mlt_consumer self)
 Stop the read/render thread. More...
 
static void * consumer_read_ahead_thread (void *arg)
 The thread procedure for asynchronously pulling frames through the service network connected to a consumer. More...
 
static void consumer_work_start (mlt_consumer self)
 Start the worker threads. More...
 
static void consumer_work_stop (mlt_consumer self)
 Stop the worker threads. More...
 
static void * consumer_worker_thread (void *arg)
 The worker thread procedure for parallel processing frames. More...
 
static int first_unprocessed_frame (mlt_consumer self)
 Locate the first unprocessed frame in the queue. More...
 
static void mlt_consumer_property_changed (mlt_properties owner, mlt_consumer self, mlt_event_data event_data)
 The property-changed event listener. More...
 
static void on_consumer_frame_show (mlt_properties owner, mlt_consumer consumer, mlt_event_data event_data)
 A listener on the consumer-frame-show event. More...
 
static void set_audio_format (mlt_consumer self)
 Set the audio format to use in the render thread. More...
 
static void set_image_format (mlt_consumer self)
 Set the image format to use in render threads. More...
 
static long time_difference (struct timeval *time1)
 Compute the time difference between now and a time value. More...
 

Private Attributes

void * child
 the object of a subclass More...
 
void * local
 instance object More...
 

Detailed Description

Consumer abstract service class.

A consumer is a service that pulls audio and video from the connected producers, filters, and transitions. Typically a consumer is used to output audio and/or video to a device, file, or socket.

Property:

rescale the scaling algorithm to pass on to all scaling filters, defaults to "bilinear"

buffer the number of frames to use in the asynchronous render thread, defaults to 25

prefill the number of frames to render before commencing output when real_time <> 0, defaults to the size of buffer

drop_max the maximum number of consecutively dropped frames, defaults to 5

frequency the audio sample rate to use in Hertz, defaults to 48000

channels the number of audio channels to use, defaults to 2

channel_layout the layout of the audio channels, defaults to auto. other options include: mono, stereo, 5.1, 7.1, etc.

real_time the asynchronous behavior: 1 (default) for asynchronous with frame dropping, -1 for asynchronous without frame dropping, 0 to disable (synchronous)

test_card the name of a resource to use as the test card, defaults to environment variable MLT_TEST_CARD. If undefined, the hard-coded default test card is white silence. A test card is what appears when nothing is produced.

Event:

consumer-frame-show Subclass implementations fire this immediately after showing a frame or when a frame should be shown (if audio-only consumer). The event data is a frame.

consumer-frame-render The base class fires this immediately before rendering a frame; the event data is a frame.

consumer-thread-create Override the implementation of creating and starting a thread by listening and responding to this (real_time 1 or -1 only). The event data is a pointer to mlt_event_data_thread.

consumer-thread-join Override the implementation of waiting and joining a terminated thread by listening and responding to this (real_time 1 or -1 only). The event data is a pointer to mlt_event_data_thread.

consumer-thread-started The base class fires when beginning execution of a rendering thread.

consumer-thread-stopped The base class fires when a rendering thread has ended.

consumer-stopping This is fired when stop was requested, but before render threads are joined.

consumer-stopped This is fired when the subclass implementation calls mlt_consumer_stopped().

Property:

fps video frames per second as floating point (read only)

frame_rate_num the numerator of the video frame rate, overrides mlt_profile_s

frame_rate_den the denominator of the video frame rate, overrides mlt_profile_s

width the horizontal video resolution, overrides mlt_profile_s

height the vertical video resolution, overrides mlt_profile_s

progressive a flag that indicates if the video is interlaced or progressive, overrides mlt_profile_s

aspect_ratio the video sample (pixel) aspect ratio as floating point (read only)

sample_aspect_num the numerator of the sample aspect ratio, overrides mlt_profile_s

sample_aspect_den the denominator of the sample aspect ratio, overrides mlt_profile_s

display_ratio the video frame aspect ratio as floating point (read only)

display_aspect_num the numerator of the video frame aspect ratio, overrides mlt_profile_s

display_aspect_den the denominator of the video frame aspect ratio, overrides mlt_profile_s

priority the OS scheduling priority for the render threads when real_time is not 0.

top_field_first when not progressive, whether interlace field order is top-field-first, defaults to 0. Set this to -1 if the consumer does not care about the field order.

mlt_image_format the image format to request in rendering threads, defaults to yuv422

mlt_audio_format the audio format to request in rendering threads, defaults to S16

audio_off set non-zero to disable audio processing

video_off set non-zero to disable video processing

drop_count the number of video frames not rendered since starting consumer

color_range the color range as tv/mpeg (limited) or pc/jpeg (full); default is unset, which implies tv/mpeg

color_trc the color transfer characteristic (gamma), default is unset

deinterlacer the deinterlace algorithm to pass to deinterlace filters, defaults to "yadif"

Member Function Documentation

◆ apply_profile_properties()

static void apply_profile_properties ( mlt_consumer  self,
mlt_profile  profile,
mlt_properties  properties 
)
private

Convert the profile into properties on the consumer.

Parameters
selfa consumer
profilea profile
propertiesa properties list (typically, the consumer's)

◆ consumer_read_ahead_start()

static void consumer_read_ahead_start ( mlt_consumer  self)
private

Start the read/render thread.

Parameters
selfa consumer

◆ consumer_read_ahead_stop()

static void consumer_read_ahead_stop ( mlt_consumer  self)
private

Stop the read/render thread.

Parameters
selfa consumer

◆ consumer_read_ahead_thread()

static void * consumer_read_ahead_thread ( void *  arg)
private

The thread procedure for asynchronously pulling frames through the service network connected to a consumer.

Parameters
arga consumer

◆ consumer_work_start()

static void consumer_work_start ( mlt_consumer  self)
private

Start the worker threads.

Parameters
selfa consumer

◆ consumer_work_stop()

static void consumer_work_stop ( mlt_consumer  self)
private

Stop the worker threads.

Parameters
selfa consumer

◆ consumer_worker_thread()

static void * consumer_worker_thread ( void *  arg)
private

The worker thread procedure for parallel processing frames.

Parameters
arga consumer

◆ first_unprocessed_frame()

static int first_unprocessed_frame ( mlt_consumer  self)
inlineprivate

Locate the first unprocessed frame in the queue.

When playing with realtime behavior, we do not use the true head, but rather an adjusted process_head. The process_head is adjusted based on the rate of frame-dropping or recovery from frame-dropping. The idea is that as the level of frame-dropping increases to move the process_head closer to the tail because the frames are not completing processing prior to their playout! Then, as frames are not dropped the process_head moves back closer to the head of the queue so that worker threads can work ahead of the playout point (queue head).

Parameters
selfa consumer
Returns
an index into the queue

◆ mlt_consumer_close()

void mlt_consumer_close ( mlt_consumer  self)

Close and destroy the consumer.

Parameters
selfa consumer

◆ mlt_consumer_connect()

int mlt_consumer_connect ( mlt_consumer  self,
mlt_service  producer 
)

Connect the consumer to the producer.

Parameters
selfa consumer
producera producer
Returns
> 0 warning, == 0 success, < 0 serious error, 1 = this service does not accept input, 2 = the producer is invalid, 3 = the producer is already registered with this consumer

◆ mlt_consumer_get_frame()

mlt_frame mlt_consumer_get_frame ( mlt_consumer  self)

Protected method for consumer to get frames from connected service.

Parameters
selfa consumer
Returns
a frame

◆ mlt_consumer_init()

int mlt_consumer_init ( mlt_consumer  self,
void *  child,
mlt_profile  profile 
)

Initialize a consumer service.

Parameters
selfthe consumer to initialize
childa pointer to the object for the subclass
profilethe mlt_profile_s to use (optional but recommended, uses the environment variable MLT if self is NULL)
Returns
true if there was an error

◆ mlt_consumer_is_stopped()

int mlt_consumer_is_stopped ( mlt_consumer  self)

Determine if the consumer is stopped.

Parameters
selfa consumer
Returns
true if the consumer is stopped

◆ mlt_consumer_new()

mlt_consumer mlt_consumer_new ( mlt_profile  profile)

Create a new consumer.

Parameters
profilea profile (optional, but recommended)
Returns
a new consumer

◆ mlt_consumer_position()

mlt_position mlt_consumer_position ( mlt_consumer  consumer)

Get the position of the last frame shown.

Parameters
consumera consumer
Returns
the position

◆ mlt_consumer_properties()

mlt_properties mlt_consumer_properties ( mlt_consumer  self)

Get the consumer properties.

Parameters
selfa consumer
Returns
the consumer's properties list
See also
MLT_CONSUMER_PROPERTIES

◆ mlt_consumer_property_changed()

static void mlt_consumer_property_changed ( mlt_properties  owner,
mlt_consumer  self,
mlt_event_data  event_data 
)
private

The property-changed event listener.

Parameters
ownerthe events object
selfthe consumer
namethe name of the property that changed

◆ mlt_consumer_purge()

void mlt_consumer_purge ( mlt_consumer  self)

Flush the read/render thread's buffer.

Parameters
selfa consumer

◆ mlt_consumer_put_frame()

int mlt_consumer_put_frame ( mlt_consumer  self,
mlt_frame  frame 
)

An alternative method to feed frames into the consumer.

Only valid if the consumer itself is not connected.

Parameters
selfa consumer
framea frame
Returns
true (ignore self for now)

◆ mlt_consumer_rt_frame()

mlt_frame mlt_consumer_rt_frame ( mlt_consumer  self)

Get the next frame from the producer connected to a consumer.

Typically, one uses this instead of mlt_consumer_get_frame to make the asynchronous/real-time behavior configurable at runtime. You should close the frame returned from this when you are done with it.

Parameters
selfa consumer
Returns
a frame

◆ mlt_consumer_service()

mlt_service mlt_consumer_service ( mlt_consumer  self)

Get the parent service object.

Parameters
selfa consumer
Returns
the parent service class
See also
MLT_CONSUMER_SERVICE

◆ mlt_consumer_start()

int mlt_consumer_start ( mlt_consumer  self)

Start the consumer.

Parameters
selfa consumer
Returns
true if there was an error

◆ mlt_consumer_stop()

int mlt_consumer_stop ( mlt_consumer  self)

Stop the consumer.

Parameters
selfa consumer
Returns
true if there was an error

◆ mlt_consumer_stopped()

void mlt_consumer_stopped ( mlt_consumer  self)

Callback for the implementation to indicate a stopped condition.

Parameters
selfa consumer

◆ on_consumer_frame_show()

static void on_consumer_frame_show ( mlt_properties  owner,
mlt_consumer  consumer,
mlt_event_data  event_data 
)
private

A listener on the consumer-frame-show event.

Saves the position of the frame shown.

Parameters
ownerthe events object
consumerthe consumer on which this event occurred
framethe frame that was shown

◆ set_audio_format()

static void set_audio_format ( mlt_consumer  self)
private

Set the audio format to use in the render thread.

Parameters
selfa consumer

◆ set_image_format()

static void set_image_format ( mlt_consumer  self)
private

Set the image format to use in render threads.

Parameters
selfa consumer

◆ time_difference()

static long time_difference ( struct timeval *  time1)
inlineprivate

Compute the time difference between now and a time value.

Parameters
time1a time value to be compared against now
Returns
the difference in microseconds

Field Documentation

◆ child

void* mlt_consumer_s::child
private

the object of a subclass

◆ close

void(* mlt_consumer_s::close) (mlt_consumer)

The destructor virtual function.

Parameters
mlt_consumera consumer

◆ is_stopped

int(* mlt_consumer_s::is_stopped) (mlt_consumer)

Get whether the consumer is running or stopped (virtual function).

Parameters
mlt_consumera consumer
Returns
true if the consumer is stopped

◆ local

void* mlt_consumer_s::local
private

instance object

◆ parent

struct mlt_service_s mlt_consumer_s::parent

A consumer is a service.

◆ purge

void(* mlt_consumer_s::purge) (mlt_consumer)

Purge the consumer of buffered data (virtual function).

Parameters
mlt_consumera consumer

◆ start

int(* mlt_consumer_s::start) (mlt_consumer)

Start the consumer to pull frames (virtual function).

Parameters
mlt_consumera consumer
Returns
true if there was an error

◆ stop

int(* mlt_consumer_s::stop) (mlt_consumer)

Stop the consumer (virtual function).

Parameters
mlt_consumera consumer
Returns
true if there was an error

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