diff --git a/gst/gstelement.h b/gst/gstelement.h index 9bb1dd171a..f8a14a42f9 100644 --- a/gst/gstelement.h +++ b/gst/gstelement.h @@ -64,13 +64,13 @@ typedef enum { G_BEGIN_DECLS -#define GST_TYPE_ELEMENT (gst_element_get_type ()) -#define GST_IS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_ELEMENT)) -#define GST_IS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_ELEMENT)) -#define GST_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_ELEMENT, GstElementClass)) -#define GST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ELEMENT, GstElement)) -#define GST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_ELEMENT, GstElementClass)) -#define GST_ELEMENT_CAST(obj) ((GstElement*)(obj)) +#define GST_TYPE_ELEMENT (gst_element_get_type ()) +#define GST_IS_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_ELEMENT)) +#define GST_IS_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_ELEMENT)) +#define GST_ELEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_ELEMENT, GstElementClass)) +#define GST_ELEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_ELEMENT, GstElement)) +#define GST_ELEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_ELEMENT, GstElementClass)) +#define GST_ELEMENT_CAST(obj) ((GstElement*)(obj)) /** * GstStateChangeReturn: @@ -101,7 +101,7 @@ typedef enum { * * This macro returns the current #GstState of the element. */ -#define GST_STATE(elem) (GST_ELEMENT_CAST(elem)->current_state) +#define GST_STATE(elem) (GST_ELEMENT_CAST(elem)->current_state) /** * GST_STATE_NEXT: @@ -109,7 +109,7 @@ typedef enum { * * This macro returns the next #GstState of the element. */ -#define GST_STATE_NEXT(elem) (GST_ELEMENT_CAST(elem)->next_state) +#define GST_STATE_NEXT(elem) (GST_ELEMENT_CAST(elem)->next_state) /** * GST_STATE_PENDING: @@ -117,7 +117,7 @@ typedef enum { * * This macro returns the currently pending #GstState of the element. */ -#define GST_STATE_PENDING(elem) (GST_ELEMENT_CAST(elem)->pending_state) +#define GST_STATE_PENDING(elem) (GST_ELEMENT_CAST(elem)->pending_state) /** * GST_STATE_TARGET: @@ -127,7 +127,7 @@ typedef enum { * * Since: 0.10.13 */ -#define GST_STATE_TARGET(elem) (GST_ELEMENT_CAST(elem)->abidata.ABI.target_state) +#define GST_STATE_TARGET(elem) (GST_ELEMENT_CAST(elem)->abidata.ABI.target_state) /** * GST_STATE_RETURN: @@ -135,9 +135,9 @@ typedef enum { * * This macro returns the last #GstStateChangeReturn value. */ -#define GST_STATE_RETURN(elem) (GST_ELEMENT_CAST(elem)->last_return) +#define GST_STATE_RETURN(elem) (GST_ELEMENT_CAST(elem)->last_return) -#define __GST_SIGN(val) ((val) < 0 ? -1 : ((val) > 0 ? 1 : 0)) +#define __GST_SIGN(val) ((val) < 0 ? -1 : ((val) > 0 ? 1 : 0)) /** * GST_STATE_GET_NEXT: * @cur: A starting #GstState @@ -146,7 +146,7 @@ typedef enum { * Given a current state @cur and a target state @pending, calculate the next (intermediate) * #GstState. */ -#define GST_STATE_GET_NEXT(cur,pending) ((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur))) +#define GST_STATE_GET_NEXT(cur,pending) ((cur) + __GST_SIGN ((gint)(pending) - (gint)(cur))) /** * GST_STATE_TRANSITION: * @cur: A current state @@ -155,21 +155,21 @@ typedef enum { * Given a current state @cur and a next state @next, calculate the associated * #GstStateChange transition. */ -#define GST_STATE_TRANSITION(cur,next) ((GstStateChange)(((cur)<<3)|(next))) +#define GST_STATE_TRANSITION(cur,next) ((GstStateChange)(((cur)<<3)|(next))) /** * GST_STATE_TRANSITION_CURRENT: * @trans: A #GstStateChange * * Given a state transition @trans, extract the current #GstState. */ -#define GST_STATE_TRANSITION_CURRENT(trans) ((GstState)((trans)>>3)) +#define GST_STATE_TRANSITION_CURRENT(trans) ((GstState)((trans)>>3)) /** * GST_STATE_TRANSITION_NEXT: * @trans: A #GstStateChange * * Given a state transition @trans, extract the next #GstState. */ -#define GST_STATE_TRANSITION_NEXT(trans) ((GstState)((trans)&0x7)) +#define GST_STATE_TRANSITION_NEXT(trans) ((GstState)((trans)&0x7)) /** * GstStateChange: @@ -185,12 +185,12 @@ typedef enum { */ typedef enum /*< flags=0 >*/ { - GST_STATE_CHANGE_NULL_TO_READY = (GST_STATE_NULL<<3) | GST_STATE_READY, - GST_STATE_CHANGE_READY_TO_PAUSED = (GST_STATE_READY<<3) | GST_STATE_PAUSED, - GST_STATE_CHANGE_PAUSED_TO_PLAYING = (GST_STATE_PAUSED<<3) | GST_STATE_PLAYING, - GST_STATE_CHANGE_PLAYING_TO_PAUSED = (GST_STATE_PLAYING<<3) | GST_STATE_PAUSED, - GST_STATE_CHANGE_PAUSED_TO_READY = (GST_STATE_PAUSED<<3) | GST_STATE_READY, - GST_STATE_CHANGE_READY_TO_NULL = (GST_STATE_READY<<3) | GST_STATE_NULL + GST_STATE_CHANGE_NULL_TO_READY = (GST_STATE_NULL<<3) | GST_STATE_READY, + GST_STATE_CHANGE_READY_TO_PAUSED = (GST_STATE_READY<<3) | GST_STATE_PAUSED, + GST_STATE_CHANGE_PAUSED_TO_PLAYING = (GST_STATE_PAUSED<<3) | GST_STATE_PLAYING, + GST_STATE_CHANGE_PLAYING_TO_PAUSED = (GST_STATE_PLAYING<<3) | GST_STATE_PAUSED, + GST_STATE_CHANGE_PAUSED_TO_READY = (GST_STATE_PAUSED<<3) | GST_STATE_READY, + GST_STATE_CHANGE_READY_TO_NULL = (GST_STATE_READY<<3) | GST_STATE_NULL } GstStateChange; /** @@ -228,7 +228,7 @@ typedef enum * Gets the name of this element. Use only in core as this is not * ABI-compatible. Others use gst_element_get_name() */ -#define GST_ELEMENT_NAME(elem) (GST_OBJECT_NAME(elem)) +#define GST_ELEMENT_NAME(elem) (GST_OBJECT_NAME(elem)) /** * GST_ELEMENT_PARENT: @@ -236,7 +236,7 @@ typedef enum * * Get the parent object of this element. */ -#define GST_ELEMENT_PARENT(elem) (GST_ELEMENT_CAST(GST_OBJECT_PARENT(elem))) +#define GST_ELEMENT_PARENT(elem) (GST_ELEMENT_CAST(GST_OBJECT_PARENT(elem))) /** * GST_ELEMENT_BUS: @@ -244,7 +244,7 @@ typedef enum * * Get the message bus of this element. */ -#define GST_ELEMENT_BUS(elem) (GST_ELEMENT_CAST(elem)->bus) +#define GST_ELEMENT_BUS(elem) (GST_ELEMENT_CAST(elem)->bus) /** * GST_ELEMENT_CLOCK: @@ -252,7 +252,7 @@ typedef enum * * Get the clock of this element */ -#define GST_ELEMENT_CLOCK(elem) (GST_ELEMENT_CAST(elem)->clock) +#define GST_ELEMENT_CLOCK(elem) (GST_ELEMENT_CAST(elem)->clock) /** * GST_ELEMENT_PADS: @@ -260,7 +260,7 @@ typedef enum * * Get the pads of this elements. */ -#define GST_ELEMENT_PADS(elem) (GST_ELEMENT_CAST(elem)->pads) +#define GST_ELEMENT_PADS(elem) (GST_ELEMENT_CAST(elem)->pads) /** * GST_ELEMENT_START_TIME: @@ -271,7 +271,7 @@ typedef enum * * Since: 0.10.24 */ -#define GST_ELEMENT_START_TIME(elem) (GST_ELEMENT_CAST(elem)->abidata.ABI.start_time) +#define GST_ELEMENT_START_TIME(elem) (GST_ELEMENT_CAST(elem)->abidata.ABI.start_time) /** * GST_ELEMENT_ERROR: @@ -287,17 +287,17 @@ typedef enum * data processing error. The pipeline will post an error message and the * application will be requested to stop further media processing. */ -#define GST_ELEMENT_ERROR(el, domain, code, text, debug) \ -G_STMT_START { \ - gchar *__txt = _gst_element_error_printf text; \ - gchar *__dbg = _gst_element_error_printf debug; \ - if (__txt) \ - GST_WARNING_OBJECT (el, "error: %s", __txt); \ - if (__dbg) \ - GST_WARNING_OBJECT (el, "error: %s", __dbg); \ - gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_ERROR, \ - GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \ - __txt, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ +#define GST_ELEMENT_ERROR(el, domain, code, text, debug) \ +G_STMT_START { \ + gchar *__txt = _gst_element_error_printf text; \ + gchar *__dbg = _gst_element_error_printf debug; \ + if (__txt) \ + GST_WARNING_OBJECT (el, "error: %s", __txt); \ + if (__dbg) \ + GST_WARNING_OBJECT (el, "error: %s", __dbg); \ + gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_ERROR, \ + GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \ + __txt, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ } G_STMT_END /** @@ -314,17 +314,17 @@ G_STMT_START { \ * data processing problem. The pipeline will post a warning message and the * application will be informed. */ -#define GST_ELEMENT_WARNING(el, domain, code, text, debug) \ -G_STMT_START { \ - gchar *__txt = _gst_element_error_printf text; \ - gchar *__dbg = _gst_element_error_printf debug; \ - if (__txt) \ - GST_WARNING_OBJECT (el, "warning: %s", __txt); \ - if (__dbg) \ - GST_WARNING_OBJECT (el, "warning: %s", __dbg); \ - gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_WARNING, \ - GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \ - __txt, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ +#define GST_ELEMENT_WARNING(el, domain, code, text, debug) \ +G_STMT_START { \ + gchar *__txt = _gst_element_error_printf text; \ + gchar *__dbg = _gst_element_error_printf debug; \ + if (__txt) \ + GST_WARNING_OBJECT (el, "warning: %s", __txt); \ + if (__dbg) \ + GST_WARNING_OBJECT (el, "warning: %s", __dbg); \ + gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_WARNING, \ + GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \ + __txt, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ } G_STMT_END /** @@ -344,17 +344,17 @@ G_STMT_START { \ * * Since: 0.10.12 */ -#define GST_ELEMENT_INFO(el, domain, code, text, debug) \ -G_STMT_START { \ - gchar *__txt = _gst_element_error_printf text; \ - gchar *__dbg = _gst_element_error_printf debug; \ - if (__txt) \ - GST_INFO_OBJECT (el, "info: %s", __txt); \ - if (__dbg) \ - GST_INFO_OBJECT (el, "info: %s", __dbg); \ - gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_INFO, \ - GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \ - __txt, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ +#define GST_ELEMENT_INFO(el, domain, code, text, debug) \ +G_STMT_START { \ + gchar *__txt = _gst_element_error_printf text; \ + gchar *__dbg = _gst_element_error_printf debug; \ + if (__txt) \ + GST_INFO_OBJECT (el, "info: %s", __txt); \ + if (__dbg) \ + GST_INFO_OBJECT (el, "info: %s", __dbg); \ + gst_element_message_full (GST_ELEMENT(el), GST_MESSAGE_INFO, \ + GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code, \ + __txt, __dbg, __FILE__, GST_FUNCTION, __LINE__); \ } G_STMT_END /* the state change mutexes and conds */ @@ -381,9 +381,9 @@ G_STMT_START { \ #define GST_STATE_UNLOCK_FULL(elem) g_static_rec_mutex_unlock_full(GST_STATE_GET_LOCK(elem)) #define GST_STATE_LOCK_FULL(elem,t) g_static_rec_mutex_lock_full(GST_STATE_GET_LOCK(elem), t) #define GST_STATE_WAIT(elem) g_cond_wait (GST_STATE_GET_COND (elem), \ - GST_OBJECT_GET_LOCK (elem)) + GST_OBJECT_GET_LOCK (elem)) #define GST_STATE_TIMED_WAIT(elem, timeval) g_cond_timed_wait (GST_STATE_GET_COND (elem), \ - GST_OBJECT_GET_LOCK (elem), timeval) + GST_OBJECT_GET_LOCK (elem), timeval) #define GST_STATE_SIGNAL(elem) g_cond_signal (GST_STATE_GET_COND (elem)); #define GST_STATE_BROADCAST(elem) g_cond_broadcast (GST_STATE_GET_COND (elem)); @@ -418,24 +418,24 @@ G_STMT_START { \ */ struct _GstElement { - GstObject object; + GstObject object; /*< public >*/ /* with LOCK */ GStaticRecMutex *state_lock; /* element state */ GCond *state_cond; - guint32 state_cookie; + guint32 state_cookie; GstState current_state; GstState next_state; GstState pending_state; GstStateChangeReturn last_return; - GstBus *bus; + GstBus *bus; /* allocated clock */ - GstClock *clock; - GstClockTimeDiff base_time; /* NULL/READY: 0 - PAUSED: current time - PLAYING: difference to clock */ + GstClock *clock; + GstClockTimeDiff base_time; /* NULL/READY: 0 - PAUSED: current time - PLAYING: difference to clock */ /* element pads, these lists can only be iterated while holding * the LOCK or checking the cookie after each LOCK. */ @@ -491,10 +491,10 @@ struct _GstElementClass /*< public >*/ /* the element details */ - GstElementDetails details; + GstElementDetails details; /* factory that the element was created from */ - GstElementFactory *elementfactory; + GstElementFactory *elementfactory; /* templates for our pads */ GList *padtemplates; @@ -503,57 +503,57 @@ struct _GstElementClass /*< private >*/ /* signal callbacks */ - void (*pad_added) (GstElement *element, GstPad *pad); - void (*pad_removed) (GstElement *element, GstPad *pad); - void (*no_more_pads) (GstElement *element); + void (*pad_added) (GstElement *element, GstPad *pad); + void (*pad_removed) (GstElement *element, GstPad *pad); + void (*no_more_pads) (GstElement *element); /*< public >*/ /* virtual methods for subclasses */ /* request/release pads */ - GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ, const gchar* name); - void (*release_pad) (GstElement *element, GstPad *pad); + GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ, const gchar* name); + 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); + 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); /* bus */ - void (*set_bus) (GstElement * element, GstBus * bus); + void (*set_bus) (GstElement * element, GstBus * bus); /* set/get clocks */ - GstClock* (*provide_clock) (GstElement *element); - gboolean (*set_clock) (GstElement *element, GstClock *clock); + GstClock* (*provide_clock) (GstElement *element); + gboolean (*set_clock) (GstElement *element, GstClock *clock); /* index */ - GstIndex* (*get_index) (GstElement *element); - void (*set_index) (GstElement *element, GstIndex *index); + GstIndex* (*get_index) (GstElement *element); + void (*set_index) (GstElement *element, GstIndex *index); /* query functions */ - gboolean (*send_event) (GstElement *element, GstEvent *event); + gboolean (*send_event) (GstElement *element, GstEvent *event); - const GstQueryType* (*get_query_types) (GstElement *element); - gboolean (*query) (GstElement *element, GstQuery *query); + const GstQueryType* (*get_query_types) (GstElement *element); + gboolean (*query) (GstElement *element, GstQuery *query); /*< private >*/ gpointer _gst_reserved[GST_PADDING]; }; /* element class pad templates */ -void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *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_details (GstElementClass *klass, const GstElementDetails *details); -void gst_element_class_set_details_simple (GstElementClass *klass, - const gchar *longname, - const gchar *classification, - const gchar *description, - const gchar *author); +void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *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_details (GstElementClass *klass, const GstElementDetails *details); +void gst_element_class_set_details_simple (GstElementClass *klass, + const gchar *longname, + const gchar *classification, + const gchar *description, + const gchar *author); /* element instance */ -GType gst_element_get_type (void); +GType gst_element_get_type (void); /* basic name and parentage stuff from GstObject */ @@ -563,7 +563,7 @@ GType gst_element_get_type (void); * * Gets the name of the element. */ -#define gst_element_get_name(elem) gst_object_get_name(GST_OBJECT_CAST(elem)) +#define gst_element_get_name(elem) gst_object_get_name(GST_OBJECT_CAST(elem)) /** * gst_element_set_name: @@ -572,7 +572,7 @@ GType gst_element_get_type (void); * * Sets the name of the element, getting rid of the old name if there was one. */ -#define gst_element_set_name(elem,name) gst_object_set_name(GST_OBJECT_CAST(elem),name) +#define gst_element_set_name(elem,name) gst_object_set_name(GST_OBJECT_CAST(elem),name) /** * gst_element_get_parent: @@ -580,7 +580,7 @@ GType gst_element_get_type (void); * * Gets the parent of an element. */ -#define gst_element_get_parent(elem) gst_object_get_parent(GST_OBJECT_CAST(elem)) +#define gst_element_get_parent(elem) gst_object_get_parent(GST_OBJECT_CAST(elem)) /** * gst_element_set_parent: @@ -589,90 +589,90 @@ GType gst_element_get_type (void); * * Sets the parent of an element. */ -#define gst_element_set_parent(elem,parent) gst_object_set_parent(GST_OBJECT_CAST(elem),parent) +#define gst_element_set_parent(elem,parent) gst_object_set_parent(GST_OBJECT_CAST(elem),parent) /* clocking */ -gboolean gst_element_requires_clock (GstElement *element); -gboolean gst_element_provides_clock (GstElement *element); -GstClock* gst_element_provide_clock (GstElement *element); -GstClock* gst_element_get_clock (GstElement *element); -gboolean gst_element_set_clock (GstElement *element, GstClock *clock); -void gst_element_set_base_time (GstElement *element, GstClockTime time); -GstClockTime gst_element_get_base_time (GstElement *element); -void gst_element_set_start_time (GstElement *element, GstClockTime time); -GstClockTime gst_element_get_start_time (GstElement *element); +gboolean gst_element_requires_clock (GstElement *element); +gboolean gst_element_provides_clock (GstElement *element); +GstClock* gst_element_provide_clock (GstElement *element); +GstClock* gst_element_get_clock (GstElement *element); +gboolean gst_element_set_clock (GstElement *element, GstClock *clock); +void gst_element_set_base_time (GstElement *element, GstClockTime time); +GstClockTime gst_element_get_base_time (GstElement *element); +void gst_element_set_start_time (GstElement *element, GstClockTime time); +GstClockTime gst_element_get_start_time (GstElement *element); /* indexes */ -gboolean gst_element_is_indexable (GstElement *element); -void gst_element_set_index (GstElement *element, GstIndex *index); -GstIndex* gst_element_get_index (GstElement *element); +gboolean gst_element_is_indexable (GstElement *element); +void gst_element_set_index (GstElement *element, GstIndex *index); +GstIndex* gst_element_get_index (GstElement *element); /* bus */ -void gst_element_set_bus (GstElement * element, GstBus * bus); -GstBus * gst_element_get_bus (GstElement * element); +void gst_element_set_bus (GstElement * element, GstBus * bus); +GstBus * gst_element_get_bus (GstElement * element); /* pad management */ -gboolean gst_element_add_pad (GstElement *element, GstPad *pad); -gboolean gst_element_remove_pad (GstElement *element, GstPad *pad); -void gst_element_no_more_pads (GstElement *element); +gboolean gst_element_add_pad (GstElement *element, GstPad *pad); +gboolean gst_element_remove_pad (GstElement *element, GstPad *pad); +void gst_element_no_more_pads (GstElement *element); #ifndef GST_DISABLE_DEPRECATED -GstPad* gst_element_get_pad (GstElement *element, const gchar *name); +GstPad* gst_element_get_pad (GstElement *element, const gchar *name); #endif /* GST_DISABLE_DEPRECATED */ -GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name); -GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name); -void gst_element_release_request_pad (GstElement *element, GstPad *pad); +GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name); +GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name); +void gst_element_release_request_pad (GstElement *element, GstPad *pad); -GstIterator * gst_element_iterate_pads (GstElement * element); -GstIterator * gst_element_iterate_src_pads (GstElement * element); -GstIterator * gst_element_iterate_sink_pads (GstElement * element); +GstIterator * gst_element_iterate_pads (GstElement * element); +GstIterator * gst_element_iterate_src_pads (GstElement * element); +GstIterator * gst_element_iterate_sink_pads (GstElement * element); /* event/query/format stuff */ -gboolean gst_element_send_event (GstElement *element, GstEvent *event); -gboolean gst_element_seek (GstElement *element, gdouble rate, - GstFormat format, GstSeekFlags flags, - GstSeekType cur_type, gint64 cur, - GstSeekType stop_type, gint64 stop); +gboolean gst_element_send_event (GstElement *element, GstEvent *event); +gboolean gst_element_seek (GstElement *element, gdouble rate, + GstFormat format, GstSeekFlags flags, + GstSeekType cur_type, gint64 cur, + GstSeekType stop_type, gint64 stop); G_CONST_RETURN GstQueryType* - gst_element_get_query_types (GstElement *element); -gboolean gst_element_query (GstElement *element, GstQuery *query); + gst_element_get_query_types (GstElement *element); +gboolean gst_element_query (GstElement *element, GstQuery *query); /* messages */ -gboolean gst_element_post_message (GstElement * element, GstMessage * message); +gboolean gst_element_post_message (GstElement * element, GstMessage * message); /* error handling */ /* gcc versions < 3.3 warn about NULL being passed as format to printf */ #if (defined(GST_USING_PRINTF_EXTENSION) || !defined(__GNUC__) || (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 3)) -gchar * _gst_element_error_printf (const gchar *format, ...); +gchar * _gst_element_error_printf (const gchar *format, ...); #else -gchar * _gst_element_error_printf (const gchar *format, ...) G_GNUC_PRINTF (1, 2); +gchar * _gst_element_error_printf (const gchar *format, ...) G_GNUC_PRINTF (1, 2); #endif -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); +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); /* state management */ -gboolean gst_element_is_locked_state (GstElement *element); -gboolean gst_element_set_locked_state (GstElement *element, gboolean locked_state); -gboolean gst_element_sync_state_with_parent (GstElement *element); +gboolean gst_element_is_locked_state (GstElement *element); +gboolean gst_element_set_locked_state (GstElement *element, gboolean locked_state); +gboolean gst_element_sync_state_with_parent (GstElement *element); -GstStateChangeReturn gst_element_get_state (GstElement * element, - GstState * state, - GstState * pending, - GstClockTime timeout); -GstStateChangeReturn gst_element_set_state (GstElement *element, GstState state); +GstStateChangeReturn gst_element_get_state (GstElement * element, + GstState * state, + GstState * pending, + GstClockTime timeout); +GstStateChangeReturn gst_element_set_state (GstElement *element, GstState state); -void gst_element_abort_state (GstElement * element); +void gst_element_abort_state (GstElement * element); GstStateChangeReturn gst_element_change_state (GstElement * element, - GstStateChange transition); -GstStateChangeReturn gst_element_continue_state (GstElement * element, + GstStateChange transition); +GstStateChangeReturn gst_element_continue_state (GstElement * element, GstStateChangeReturn ret); -void gst_element_lost_state (GstElement * element); -void gst_element_lost_state_full (GstElement * element, gboolean new_base_time); +void gst_element_lost_state (GstElement * element); +void gst_element_lost_state_full (GstElement * element, gboolean new_base_time); /* factory management */ -GstElementFactory* gst_element_get_factory (GstElement *element); +GstElementFactory* gst_element_get_factory (GstElement *element); G_END_DECLS