MLT 7.42.0
Multimedia Framework
Public Member Functions | Private Attributes
Mlt::Producer Class Reference

C++ wrapper for mlt_producer — origin of audio/video data. More...

#include <MltProducer.h>

Inheritance diagram for Mlt::Producer:
Inheritance graph
[legend]
Collaboration diagram for Mlt::Producer:
Collaboration graph
[legend]

Public Member Functions

int clear ()
 
Producer * cut (int in=0, int out=-1)
 Create a cut (sub-range) producer sharing this producer's resource.
 
int frame ()
 Return the current absolute frame number.
 
char * frame_time (mlt_time_format=mlt_time_smpte_df)
 Return the current timecode string.
 
int64_t get_creation_time ()
 
double get_fps ()
 Return the frames-per-second rate for this producer's profile.
 
int get_in ()
 Return the in-point frame number.
 
int get_length ()
 Return the total length of the underlying resource in frames.
 
char * get_length_time (mlt_time_format=mlt_time_smpte_df)
 
int get_out ()
 Return the out-point frame number.
 
mlt_producer get_parent ()
 
int get_playtime ()
 Return the active play duration (out - in + 1).
 
virtual mlt_producer get_producer ()
 
mlt_service get_service () override
 
double get_speed ()
 Return the current playback speed.
 
bool is_blank ()
 Return true if this is a blank/gap clip.
 
bool is_cut ()
 Return true if this producer is a cut.
 
Producer & operator= (const Producer &producer)
 
void optimise ()
 
Producer & parent ()
 Return the parent producer (for cut producers, the shared root).
 
void pass_frame_properties (Frame &frame)
 Copy this producer's serializable meta.
 
int pause ()
 Pause playback (sets speed to 0).
 
int position ()
 Return the current position relative to in-point.
 
bool probe ()
 
 Producer ()
 
 Producer (const Producer &producer)
 
 Producer (mlt_producer producer)
 Wrap an existing mlt_producer handle.
 
 Producer (mlt_profile profile, const char *id, const char *service=NULL)
 
 Producer (Producer &producer)
 
 Producer (Producer *producer)
 
 Producer (Profile &profile, const char *id, const char *service=NULL)
 Construct and instantiate producer id from the repository.
 
 Producer (Service &producer)
 
bool runs_into (Producer &that)
 
bool same_clip (Producer &that)
 
int seek (const char *time)
 Seek to a timecode string (e.g.
 
int seek (int position)
 Seek to position (relative to in-point).
 
void set_creation_time (int64_t creation_time)
 
int set_in_and_out (int in, int out)
 Set the active in/out range in frame numbers.
 
int set_speed (double speed)
 Set the playback speed (1.0 = normal, 0.0 = paused, -1.0 = reverse).
 
virtual ~Producer ()
 
- Public Member Functions inherited from Mlt::Service
int attach (Filter &filter)
 Attach filter to this service.
 
int connect_producer (Service &producer, int index=0)
 Connect producer as the input at index.
 
Service * consumer ()
 Return the downstream consumer service, or null.
 
int detach (Filter &filter)
 Detach filter from this service.
 
int disconnect_all_producers ()
 Disconnect all producer inputs.
 
int disconnect_producer (int index=0)
 Disconnect the producer at index.
 
Filter * filter (int index)
 Return the attached filter at index.
 
int filter_count ()
 Return the number of attached filters.
 
Frame * get_frame (int index=0)
 Pull and return frame index from this service.
 
mlt_profile get_profile ()
 
virtual mlt_properties get_properties () override
 
int insert_producer (Service &producer, int index=0)
 Insert producer at index, shifting existing connections up.
 
void lock ()
 Acquire the service mutex (use around property reads in render threads).
 
int move_filter (int from, int to)
 Move the attached filter at position from to position to.
 
Service & operator= (const Service &service)
 
Service * producer ()
 Return the first upstream producer, or null.
 
Profile * profile ()
 Return the profile associated with this service.
 
 Service ()
 
 Service (const Service &service)
 
 Service (mlt_service service)
 Wrap an existing mlt_service handle.
 
 Service (Service &service)
 
 Service (Service *service)
 
void set_consumer (Service &service)
 
void set_profile (mlt_profile profile)
 
void set_profile (Profile &profile)
 
mlt_service_type type ()
 Return the service sub-type (producer, filter, consumer, transition, etc.).
 
void unlock ()
 Release the service mutex.
 
virtual ~Service ()
 
- Public Member Functions inherited from Mlt::Properties
char * anim_get (const char *name, int position, int length=0)
 
mlt_color anim_get_color (const char *name, int position, int length=0)
 
double anim_get_double (const char *name, int position, int length=0)
 
int anim_get_int (const char *name, int position, int length=0)
 
mlt_rect anim_get_rect (const char *name, int position, int length=0)
 
int anim_set (const char *name, const char *value, int position, int length=0)
 
int anim_set (const char *name, double value, int position, int length=0, mlt_keyframe_type keyframe_type=mlt_keyframe_linear)
 
int anim_set (const char *name, int value, int position, int length=0, mlt_keyframe_type keyframe_type=mlt_keyframe_linear)
 
int anim_set (const char *name, mlt_color value, int position, int length=0, mlt_keyframe_type keyframe_type=mlt_keyframe_linear)
 
int anim_set (const char *name, mlt_rect value, int position, int length=0, mlt_keyframe_type keyframe_type=mlt_keyframe_linear)
 
void block (void *object=NULL)
 Suppress event delivery to object.
 
void clear (const char *name)
 
int copy (Properties &that, const char *prefix)
 Copy all properties whose names begin with prefix from that.
 
int count ()
 Return the number of name/value pairs stored.
 
void debug (const char *title="Object", FILE *output=stderr)
 
int dec_ref ()
 
void dump (FILE *output=stderr)
 Write all properties to output as "name=value" lines.
 
int fire_event (const char *event)
 Fire a named event manually.
 
char * frames_to_time (int, mlt_time_format=mlt_time_smpte_df)
 
char * get (const char *name)
 Get a string property value by name.
 
char * get (int index)
 Return the property value at positional index as a string.
 
char * get (int index, mlt_time_format)
 Return the property value at positional index in the given time format.
 
Animation * get_anim (const char *name)
 
mlt_animation get_animation (const char *name)
 
mlt_color get_color (const char *name)
 
void * get_data (const char *name)
 
void * get_data (const char *name, int &size)
 Get opaque data stored by name; size receives the byte count.
 
void * get_data (int index, int &size)
 
double get_double (const char *name)
 Get a double property value by name.
 
int get_int (const char *name)
 Get an integer property value by name.
 
int64_t get_int64 (const char *name)
 Get a 64-bit integer property value by name.
 
const char * get_lcnumeric ()
 
char * get_name (int index)
 Return the property name at positional index.
 
Properties * get_props (const char *name)
 
Properties * get_props_at (int index)
 
mlt_rect get_rect (const char *name)
 
char * get_time (const char *name, mlt_time_format=mlt_time_smpte_df)
 
int inc_ref ()
 
int inherit (Properties &that)
 Copy all properties from that into this object.
 
bool is_anim (const char *name)
 
bool is_sequence ()
 Return true if all property names are numeric indices (i.e.
 
bool is_valid ()
 Return true if the underlying mlt_properties handle is non-null.
 
Event * listen (const char *id, void *object, mlt_listener)
 Register a listener callback for the named event.
 
void load (const char *file)
 Merge properties from a file into this object.
 
void lock ()
 Acquire the recursive mutex protecting this object.
 
void mirror (Properties &that)
 Mirror all property changes on this object to that.
 
Properties & operator= (const Properties &properties)
 
int parse (const char *namevalue)
 Parse a "name=value" string and store the result.
 
int pass_list (Properties &that, const char *list)
 Copy the space-delimited list of named properties from that.
 
void pass_property (Properties &that, const char *name)
 Copy a single named property from that.
 
int pass_values (Properties &that, const char *prefix)
 Copy all properties whose names begin with prefix from that.
 
int preset (const char *name)
 Apply a named preset from the presets directory.
 
 Properties ()
 
 Properties (bool dummy)
 
 Properties (const char *file)
 Load properties from a file.
 
 Properties (const Properties &properties)
 
 Properties (mlt_properties properties)
 Wrap an existing mlt_properties without taking ownership.
 
 Properties (Properties &properties)
 
 Properties (void *properties)
 
bool property_exists (const char *name)
 
int ref_count ()
 
int rename (const char *source, const char *dest)
 Rename property source to dest.
 
int save (const char *file)
 Save properties to a file.
 
char * serialise_yaml ()
 
int set (const char *name, const char *value)
 Set a string property.
 
int set (const char *name, double value)
 Set a double property.
 
int set (const char *name, double x, double y, double w, double h, double opacity=1.0)
 
int set (const char *name, int value)
 Set an integer property.
 
int set (const char *name, int64_t value)
 Set a 64-bit integer property.
 
int set (const char *name, mlt_color value)
 
int set (const char *name, mlt_rect value)
 
int set (const char *name, Properties &properties)
 
int set (const char *name, void *value, int size, mlt_destructor destroy=NULL, mlt_serialiser serial=NULL)
 Store opaque data with an optional destructor and serialiser.
 
int set_lcnumeric (const char *locale)
 
int set_string (const char *name, const char *value)
 Set a string property (no environment-variable expansion).
 
Event * setup_wait_for (const char *id)
 Set up a one-shot wait handle for event id.
 
int time_to_frames (const char *time)
 
void unblock (void *object=NULL)
 Resume event delivery to object.
 
void unlock ()
 Release the recursive mutex.
 
void wait_for (const char *id)
 
void wait_for (Event *, bool destroy=true)
 
virtual ~Properties ()
 

Private Attributes

mlt_producer instance
 
Producer * parent_
 

Additional Inherited Members

- Static Public Member Functions inherited from Mlt::Properties
static void delete_event (Event *)
 
static Properties * parse_yaml (const char *file)
 Parse a YAML Tiny file and return a new Properties tree.
 

Detailed Description

C++ wrapper for mlt_producer — origin of audio/video data.

A producer generates frames of audio and video data. It may read from a file, network stream, or synthesize content. Producers support in/out points, playback speed, and can be "cut" (sub-range) instances that share the underlying resource.

See also
mlt_producer_s

Constructor & Destructor Documentation

◆ Producer() [1/8]

Producer::Producer ( )

◆ Producer() [2/8]

Producer::Producer ( Profile &  profile,
const char *  id,
const char *  service = NULL 
)

Construct and instantiate producer id from the repository.

◆ Producer() [3/8]

Producer::Producer ( mlt_profile  profile,
const char *  id,
const char *  service = NULL 
)

◆ Producer() [4/8]

Producer::Producer ( Service &  producer)

◆ Producer() [5/8]

Producer::Producer ( mlt_producer  producer)

Wrap an existing mlt_producer handle.

◆ Producer() [6/8]

Producer::Producer ( Producer &  producer)

◆ Producer() [7/8]

Producer::Producer ( const Producer &  producer)

◆ Producer() [8/8]

Producer::Producer ( Producer *  producer)

◆ ~Producer()

Producer::~Producer ( )
virtual

Member Function Documentation

◆ clear()

int Producer::clear ( )

◆ cut()

Producer * Producer::cut ( int  in = 0,
int  out = -1 
)

Create a cut (sub-range) producer sharing this producer's resource.

Caller owns result.

◆ frame()

int Producer::frame ( )

Return the current absolute frame number.

◆ frame_time()

char * Producer::frame_time ( mlt_time_format  format = mlt_time_smpte_df)

Return the current timecode string.

◆ get_creation_time()

int64_t Producer::get_creation_time ( )

◆ get_fps()

double Producer::get_fps ( )

Return the frames-per-second rate for this producer's profile.

◆ get_in()

int Producer::get_in ( )

Return the in-point frame number.

◆ get_length()

int Producer::get_length ( )

Return the total length of the underlying resource in frames.

◆ get_length_time()

char * Producer::get_length_time ( mlt_time_format  format = mlt_time_smpte_df)

◆ get_out()

int Producer::get_out ( )

Return the out-point frame number.

◆ get_parent()

mlt_producer Producer::get_parent ( )

◆ get_playtime()

int Producer::get_playtime ( )

Return the active play duration (out - in + 1).

◆ get_producer()

mlt_producer Producer::get_producer ( )
virtual

◆ get_service()

mlt_service Producer::get_service ( )
overridevirtual

Reimplemented from Mlt::Service.

◆ get_speed()

double Producer::get_speed ( )

Return the current playback speed.

◆ is_blank()

bool Producer::is_blank ( )

Return true if this is a blank/gap clip.

◆ is_cut()

bool Producer::is_cut ( )

Return true if this producer is a cut.

◆ operator=()

Producer & Producer::operator= ( const Producer &  producer)

◆ optimise()

void Producer::optimise ( )

◆ parent()

Producer & Producer::parent ( )

Return the parent producer (for cut producers, the shared root).

◆ pass_frame_properties()

void Producer::pass_frame_properties ( Frame &  frame)

Copy this producer's serializable meta.

properties onto frame and copy serializable set. properties with the prefix removed.

◆ pause()

int Producer::pause ( )

Pause playback (sets speed to 0).

◆ position()

int Producer::position ( )

Return the current position relative to in-point.

◆ probe()

bool Producer::probe ( )

◆ runs_into()

bool Producer::runs_into ( Producer &  that)

◆ same_clip()

bool Producer::same_clip ( Producer &  that)

◆ seek() [1/2]

int Producer::seek ( const char *  time)

Seek to a timecode string (e.g.

"00:01:23.04").

◆ seek() [2/2]

int Producer::seek ( int  position)

Seek to position (relative to in-point).

◆ set_creation_time()

void Producer::set_creation_time ( int64_t  creation_time)

◆ set_in_and_out()

int Producer::set_in_and_out ( int  in,
int  out 
)

Set the active in/out range in frame numbers.

◆ set_speed()

int Producer::set_speed ( double  speed)

Set the playback speed (1.0 = normal, 0.0 = paused, -1.0 = reverse).

Field Documentation

◆ instance

mlt_producer Mlt::Producer::instance
private

◆ parent_

Producer* Mlt::Producer::parent_
private

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