Top | ![]() |
![]() |
![]() |
![]() |
struct | GstElement |
struct | GstElementClass |
enum | GstElementFlags |
enum | GstState |
enum | GstStateChange |
enum | GstStateChangeReturn |
#define | GST_ELEMENT_METADATA_AUTHOR |
#define | GST_ELEMENT_METADATA_DESCRIPTION |
#define | GST_ELEMENT_METADATA_DOC_URI |
#define | GST_ELEMENT_METADATA_ICON_NAME |
#define | GST_ELEMENT_METADATA_KLASS |
#define | GST_ELEMENT_METADATA_LONGNAME |
#define GST_STATE_GET_NEXT(cur,pending) ((GstState)((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur))))
#define GST_ELEMENT_IS_LOCKED_STATE(elem) (GST_OBJECT_FLAG_IS_SET(elem,GST_ELEMENT_FLAG_LOCKED_STATE))
void gst_element_class_add_pad_template (GstElementClass *klass
,GstPadTemplate *templ
);
void gst_element_class_add_static_pad_template (GstElementClass *klass
,GstStaticPadTemplate *static_templ
);
GstPadTemplate * gst_element_class_get_pad_template (GstElementClass *element_class
,const gchar *name
);
GList *
gst_element_class_get_pad_template_list
(GstElementClass *element_class
);
void gst_element_class_set_metadata (GstElementClass *klass
,const gchar *longname
,const gchar *classification
,const gchar *description
,const gchar *author
);
void gst_element_class_set_static_metadata (GstElementClass *klass
,const gchar *longname
,const gchar *classification
,const gchar *description
,const gchar *author
);
void gst_element_class_add_metadata (GstElementClass *klass
,const gchar *key
,const gchar *value
);
void gst_element_class_add_static_metadata (GstElementClass *klass
,const gchar *key
,const gchar *value
);
GstPad * gst_element_get_compatible_pad (GstElement *element
,GstPad *pad
,GstCaps *caps
);
GstPadTemplate * gst_element_get_compatible_pad_template (GstElement *element
,GstPadTemplate *compattempl
);
GstPad * gst_element_get_request_pad (GstElement *element
,const gchar *name
);
GstPad * gst_element_get_static_pad (GstElement *element
,const gchar *name
);
GstPad * gst_element_request_pad (GstElement *element
,GstPadTemplate *templ
,const gchar *name
,const GstCaps *caps
);
void gst_element_release_request_pad (GstElement *element
,GstPad *pad
);
gboolean gst_element_link_many (GstElement *element_1
,GstElement *element_2
,...
);
void gst_element_unlink_many (GstElement *element_1
,GstElement *element_2
,...
);
gboolean gst_element_link_pads (GstElement *src
,const gchar *srcpadname
,GstElement *dest
,const gchar *destpadname
);
gboolean gst_element_link_pads_full (GstElement *src
,const gchar *srcpadname
,GstElement *dest
,const gchar *destpadname
,GstPadLinkCheck flags
);
void gst_element_unlink_pads (GstElement *src
,const gchar *srcpadname
,GstElement *dest
,const gchar *destpadname
);
gboolean gst_element_link_pads_filtered (GstElement *src
,const gchar *srcpadname
,GstElement *dest
,const gchar *destpadname
,GstCaps *filter
);
gboolean gst_element_link_filtered (GstElement *src
,GstElement *dest
,GstCaps *filter
);
const gchar * gst_element_class_get_metadata (GstElementClass *klass
,const gchar *key
);
void gst_element_set_base_time (GstElement *element
,GstClockTime time
);
void gst_element_set_start_time (GstElement *element
,GstClockTime time
);
GstContext * gst_element_get_context (GstElement *element
,const gchar *context_type
);
GstContext * gst_element_get_context_unlocked (GstElement *element
,const gchar *context_type
);
#define gst_element_set_name(elem,name) gst_object_set_name(GST_OBJECT_CAST(elem),name)
#define gst_element_get_name(elem) gst_object_get_name(GST_OBJECT_CAST(elem))
#define gst_element_set_parent(elem,parent) gst_object_set_parent(GST_OBJECT_CAST(elem),parent)
#define gst_element_get_parent(elem) gst_object_get_parent(GST_OBJECT_CAST(elem))
GstStateChangeReturn gst_element_set_state (GstElement *element
,GstState state
);
GstStateChangeReturn gst_element_get_state (GstElement *element
,GstState *state
,GstState *pending
,GstClockTime timeout
);
gboolean gst_element_set_locked_state (GstElement *element
,gboolean locked_state
);
GstStateChangeReturn gst_element_continue_state (GstElement *element
,GstStateChangeReturn ret
);
const gchar *
gst_element_state_change_return_get_name
(GstStateChangeReturn state_ret
);
gboolean
gst_element_sync_state_with_parent (GstElement *element
);
GstStateChangeReturn gst_element_change_state (GstElement *element
,GstStateChange transition
);
void gst_element_message_full (GstElement *element
,GstMessageType type
,GQuark domain
,gint code
,gchar *text
,gchar *debug
,const gchar *file
,const gchar *function
,gint line
);
gboolean gst_element_post_message (GstElement *element
,GstMessage *message
);
gboolean gst_element_query_convert (GstElement *element
,GstFormat src_format
,gint64 src_val
,GstFormat dest_format
,gint64 *dest_val
);
gboolean gst_element_query_position (GstElement *element
,GstFormat format
,gint64 *cur
);
gboolean gst_element_query_duration (GstElement *element
,GstFormat format
,gint64 *duration
);
gboolean gst_element_seek_simple (GstElement *element
,GstFormat format
,GstSeekFlags seek_flags
,gint64 seek_pos
);
gboolean gst_element_seek (GstElement *element
,gdouble rate
,GstFormat format
,GstSeekFlags flags
,GstSeekType start_type
,gint64 start
,GstSeekType stop_type
,gint64 stop
);
gulong gst_element_add_property_notify_watch (GstElement *element
,const gchar *property_name
,gboolean include_value
);
gulong gst_element_add_property_deep_notify_watch (GstElement *element
,const gchar *property_name
,gboolean include_value
);
void gst_element_remove_property_notify_watch (GstElement *element
,gulong watch_id
);
void (*GstElementCallAsyncFunc) (GstElement *element
,gpointer user_data
);
void gst_element_call_async (GstElement *element
,GstElementCallAsyncFunc func
,gpointer user_data
,GDestroyNotify destroy_notify
);
struct GstElement { GRecMutex state_lock; /* element state */ GCond state_cond; guint32 state_cookie; GstState target_state; GstState current_state; GstState next_state; GstState pending_state; GstStateChangeReturn last_return; GstBus *bus; /* allocated clock */ GstClock *clock; GstClockTimeDiff base_time; /* NULL/READY: 0 - PAUSED: current time - PLAYING: difference to clock */ GstClockTime start_time; /* element pads, these lists can only be iterated while holding * the LOCK or checking the cookie after each LOCK. */ guint16 numpads; GList *pads; guint16 numsrcpads; GList *srcpads; guint16 numsinkpads; GList *sinkpads; guint32 pads_cookie; /* with object LOCK */ GList *contexts; };
struct GstElementClass { GstObjectClass parent_class; /* the element metadata */ gpointer metadata; /* factory that the element was created from */ GstElementFactory *elementfactory; /* templates for our pads */ GList *padtemplates; gint numpadtemplates; guint32 pad_templ_cookie; /* virtual methods for subclasses */ /* request/release pads */ /* FIXME 2.0 harmonize naming with gst_element_request_pad */ GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ, const gchar* name, const GstCaps *caps); void (*release_pad) (GstElement *element, GstPad *pad); /* state changes */ GstStateChangeReturn (*get_state) (GstElement * element, GstState * state, GstState * pending, GstClockTime timeout); GstStateChangeReturn (*set_state) (GstElement *element, GstState state); GstStateChangeReturn (*change_state) (GstElement *element, GstStateChange transition); void (*state_changed) (GstElement *element, GstState oldstate, GstState newstate, GstState pending); /* bus */ void (*set_bus) (GstElement * element, GstBus * bus); /* set/get clocks */ GstClock* (*provide_clock) (GstElement *element); gboolean (*set_clock) (GstElement *element, GstClock *clock); /* query functions */ gboolean (*send_event) (GstElement *element, GstEvent *event); gboolean (*query) (GstElement *element, GstQuery *query); gboolean (*post_message) (GstElement *element, GstMessage *message); void (*set_context) (GstElement *element, GstContext *context); };
“no-more-pads”
signalvoid user_function (GstElement *gstelement, gpointer user_data)
Flags: Run Last
“pad-added”
signalvoid user_function (GstElement *gstelement, GstPad *arg1, gpointer user_data)
Flags: Run Last
“pad-removed”
signalvoid user_function (GstElement *gstelement, GstPad *arg1, gpointer user_data)
Flags: Run Last