removed GST_*_CAST. Disabling of type checking is done in glib.

Original commit message from CVS:
removed GST_*_CAST. Disabling of type checking is done in glib.
This commit is contained in:
Benjamin Otte 2003-12-13 16:58:29 +00:00
parent 6611ab723b
commit 46a70fddfb
29 changed files with 284 additions and 342 deletions

View file

@ -72,6 +72,34 @@ The GstBin object
</para>
<!-- ##### SIGNAL GstBin::element-added ##### -->
<para>
</para>
@gstbin: the object which received the signal.
@arg1: the element that was added to the bin
<!-- ##### SIGNAL GstBin::element-removed ##### -->
<para>
</para>
@gstbin: the object which received the signal.
@arg1: the element that was removed from the bin
<!-- ##### SIGNAL GstBin::iterate ##### -->
<para>
This signal is emitted when a bin iterates, either automatically or
due to a #gst_bin_iterate() call. The return value is used to
determine if the object method handler processed any data.
In most normal cases, a user-provided signal handler should return
FALSE.
</para>
@gstbin: the object which received the signal.
@Returns: TRUE if the state of the bin was advanced.
<!-- ##### USER_FUNCTION GstBinPrePostIterateFunction ##### -->
<para>
The signature of the callback for the post and pre iterate function as set with
@ -224,31 +252,3 @@ gst_bin_set_pre_iterate_function() and gst_bin_set_post_iterate_function().
@clock:
<!-- ##### SIGNAL GstBin::element-added ##### -->
<para>
</para>
@gstbin: the object which received the signal.
@arg1: the element that was added to the bin
<!-- ##### SIGNAL GstBin::element-removed ##### -->
<para>
</para>
@gstbin: the object which received the signal.
@arg1: the element that was removed from the bin
<!-- ##### SIGNAL GstBin::iterate ##### -->
<para>
This signal is emitted when a bin iterates, either automatically or
due to a #gst_bin_iterate() call. The return value is used to
determine if the object method handler processed any data.
In most normal cases, a user-provided signal handler should return
FALSE.
</para>
@gstbin: the object which received the signal.
@Returns: TRUE if the state of the bin was advanced.

View file

@ -265,6 +265,7 @@ The basic structure of a buffer.
@offset_end:
@pool:
@pool_private:
@_gst_reserved:
<!-- ##### FUNCTION gst_buffer_new ##### -->
<para>

View file

@ -92,6 +92,7 @@ The bufferpool structure
@buffer_copy:
@buffer_free:
@user_data:
@_gst_reserved:
<!-- ##### USER_FUNCTION GstBufferPoolBufferNewFunction ##### -->
<para>

View file

@ -235,6 +235,16 @@ The GstClock object
</para>
<!-- ##### ARG GstClock:max-diff ##### -->
<para>
Maximum allowed diff for clock sync requests against the real time.
</para>
<!-- ##### ARG GstClock:stats ##### -->
<para>
Boolean property to activate stat generation on the clock.
</para>
<!-- ##### FUNCTION gst_clock_set_speed ##### -->
<para>
@ -402,13 +412,3 @@ The GstClock object
@id:
<!-- ##### ARG GstClock:max-diff ##### -->
<para>
Maximum allowed diff for clock sync requests against the real time.
</para>
<!-- ##### ARG GstClock:stats ##### -->
<para>
Boolean property to activate stat generation on the clock.
</para>

View file

@ -85,6 +85,7 @@ The base structure
@flags: The flags of this GstData
@free: A pointer to a custom free function
@copy: A pointer to a custom copy function
@_gst_reserved:
<!-- ##### USER_FUNCTION GstDataFreeFunction ##### -->
<para>

View file

@ -71,6 +71,58 @@ The element object
</para>
<!-- ##### SIGNAL GstElement::eos ##### -->
<para>
Signal emited when the element goes to PAUSED due to an end-of-stream
condition.
</para>
@gstelement: the object which received the signal.
<!-- ##### SIGNAL GstElement::error ##### -->
<para>
Is triggered whenever an error occured.
</para>
@gstelement: the object which received the signal.
@arg1: the error message
@arg2:
<!-- ##### SIGNAL GstElement::found-tag ##### -->
<para>
</para>
@gstelement: the object which received the signal.
@arg1:
@arg2:
<!-- ##### SIGNAL GstElement::new-pad ##### -->
<para>
Is triggered whenever a new pad is added to an element.
</para>
@gstelement: the object which received the signal.
@arg1: the new pad that was added
<!-- ##### SIGNAL GstElement::pad-removed ##### -->
<para>
Is triggered whenever a pad has been removed from the element.
</para>
@gstelement: the object which received the signal.
@arg1: The pad that was removed.
<!-- ##### SIGNAL GstElement::state-change ##### -->
<para>
Is triggered whenever the state of an element changes.
</para>
@gstelement: the object which received the signal.
@arg1: the new state of the object
@arg2:
<!-- ##### MACRO gst_element_get_name ##### -->
<para>
Gets the name of the element.
@ -963,55 +1015,3 @@ Helper macro to create query type functions
@...: list of query types.
<!-- ##### SIGNAL GstElement::eos ##### -->
<para>
Signal emited when the element goes to PAUSED due to an end-of-stream
condition.
</para>
@gstelement: the object which received the signal.
<!-- ##### SIGNAL GstElement::error ##### -->
<para>
Is triggered whenever an error occured.
</para>
@gstelement: the object which received the signal.
@arg1: the error message
@arg2:
<!-- ##### SIGNAL GstElement::found-tag ##### -->
<para>
</para>
@gstelement: the object which received the signal.
@arg1:
@arg2:
<!-- ##### SIGNAL GstElement::new-pad ##### -->
<para>
Is triggered whenever a new pad is added to an element.
</para>
@gstelement: the object which received the signal.
@arg1: the new pad that was added
<!-- ##### SIGNAL GstElement::pad-removed ##### -->
<para>
Is triggered whenever a pad has been removed from the element.
</para>
@gstelement: the object which received the signal.
@arg1: The pad that was removed.
<!-- ##### SIGNAL GstElement::state-change ##### -->
<para>
Is triggered whenever the state of an element changes.
</para>
@gstelement: the object which received the signal.
@arg1: the new state of the object
@arg2:

View file

@ -64,6 +64,7 @@ describes the element, mostly for the benefit of editors.
@klass:
@description:
@author:
@_gst_reserved:
<!-- ##### FUNCTION gst_element_factory_find ##### -->
<para>

View file

@ -209,6 +209,19 @@ The GstIndex object
</para>
<!-- ##### SIGNAL GstIndex::entry-added ##### -->
<para>
Is emited when a new entry is added to the index.
</para>
@gstindex: the object which received the signal.
@arg1: The entry added to the index.
<!-- ##### ARG GstIndex:resolver ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_index_new ##### -->
<para>
@ -401,16 +414,3 @@ The GstIndex object
@id:
<!-- ##### SIGNAL GstIndex::entry-added ##### -->
<para>
Is emited when a new entry is added to the index.
</para>
@gstindex: the object which received the signal.
@arg1: The entry added to the index.
<!-- ##### ARG GstIndex:resolver ##### -->
<para>
</para>

View file

@ -40,6 +40,47 @@ The GstObject
</para>
<!-- ##### SIGNAL GstObject::deep-notify ##### -->
<para>
The deep notify signal is used to be notified of property changes.
it is typically attached to the toplevel bin to receive notifications
from all the elements contained in that bin.
</para>
@gstobject: the object which received the signal.
@arg1: the object that originated the signal
@arg2: the property that changed
<!-- ##### SIGNAL GstObject::object-saved ##### -->
<para>
Is trigered whenever a new object is saved to XML. You can connect to
this signal to insert custom XML tags into the core XML.
</para>
@gstobject: the object which received the signal.
@arg1: the xmlNodePtr of the parent node
<!-- ##### SIGNAL GstObject::parent-set ##### -->
<para>
Is emitted when the parent of an object is set.
</para>
@gstobject: the object which received the signal.
@arg1: the new parent
<!-- ##### SIGNAL GstObject::parent-unset ##### -->
<para>
Is emitted when the parent of an object is unset.
</para>
@gstobject: the object which received the signal.
@arg1: the old parent
<!-- ##### ARG GstObject:name ##### -->
<para>
The name of the object
</para>
<!-- ##### MACRO GST_FLAGS ##### -->
<para>
This macro returns the entire set of flags for the object.
@ -290,44 +331,3 @@ Check if the object has been destroyed.
@Returns:
<!-- ##### SIGNAL GstObject::deep-notify ##### -->
<para>
The deep notify signal is used to be notified of property changes.
it is typically attached to the toplevel bin to receive notifications
from all the elements contained in that bin.
</para>
@gstobject: the object which received the signal.
@arg1: the object that originated the signal
@arg2: the property that changed
<!-- ##### SIGNAL GstObject::object-saved ##### -->
<para>
Is trigered whenever a new object is saved to XML. You can connect to
this signal to insert custom XML tags into the core XML.
</para>
@gstobject: the object which received the signal.
@arg1: the xmlNodePtr of the parent node
<!-- ##### SIGNAL GstObject::parent-set ##### -->
<para>
Is emitted when the parent of an object is set.
</para>
@gstobject: the object which received the signal.
@arg1: the new parent
<!-- ##### SIGNAL GstObject::parent-unset ##### -->
<para>
Is emitted when the parent of an object is unset.
</para>
@gstobject: the object which received the signal.
@arg1: the old parent
<!-- ##### ARG GstObject:name ##### -->
<para>
The name of the object
</para>

View file

@ -1095,6 +1095,7 @@ The realpad object
@intlinkfunc:
@bufferpoolfunc:
@probedisp:
@_gst_reserved:
<!-- ##### MACRO GST_RPAD_DIRECTION ##### -->
<para>

View file

@ -87,6 +87,15 @@ The padtemplate object.
</para>
<!-- ##### SIGNAL GstPadTemplate::pad-created ##### -->
<para>
This signal is fired when an element creates a pad from this
template.
</para>
@gstpadtemplate: the object which received the signal.
@arg1: The pad that was created.
<!-- ##### ENUM GstPadTemplateFlags ##### -->
<para>
Flags for the padtemplate
@ -199,12 +208,3 @@ Check if the properties of the padtemplate are fixed
@Returns:
<!-- ##### SIGNAL GstPadTemplate::pad-created ##### -->
<para>
This signal is fired when an element creates a pad from this
template.
</para>
@gstpadtemplate: the object which received the signal.
@arg1: The pad that was created.

View file

@ -69,6 +69,7 @@ The plugin object
@numfeatures:
@manager:
@module:
@_gst_reserved:
<!-- ##### USER_FUNCTION GstPluginInitFunc ##### -->
<para>
@ -98,6 +99,7 @@ loaded will use this variable to initialize the plugin.
@license:
@package:
@origin:
@_gst_reserved:
<!-- ##### FUNCTION gst_plugin_set_name ##### -->
<para>

View file

@ -5978,6 +5978,15 @@ Query the element for the current mime type
</para>
<!-- ##### SIGNAL GstXML::object-loaded ##### -->
<para>
</para>
@gstxml: the object which received the signal.
@arg1:
@arg2:
<!-- ##### USER_FUNCTION GstXMLRegistryAddPathList ##### -->
<para>

View file

@ -49,6 +49,7 @@ The registry object
@loaded:
@plugins:
@paths:
@_gst_reserved:
<!-- ##### FUNCTION gst_registry_load ##### -->
<para>

View file

@ -34,15 +34,6 @@ The GstThread object
</para>
<!-- ##### FUNCTION gst_thread_new ##### -->
<para>
</para>
@name:
@Returns:
<!-- ##### SIGNAL GstThread::shutdown ##### -->
<para>
@ -55,3 +46,12 @@ The GstThread object
The thread priority
</para>
<!-- ##### FUNCTION gst_thread_new ##### -->
<para>
</para>
@name:
@Returns:

View file

@ -105,25 +105,3 @@ All GstElements can be serialized to an XML presentation and subsequently loaded
@Returns:
<!-- ##### SIGNAL GstXML::object-loaded ##### -->
<para>
</para>
@:
@:
@:
@gstxml: the object which received the signal.
@arg1:
@arg2:
<!-- ##### SIGNAL GstXML::object-loaded ##### -->
<para>
</para>
@gstxml: the object which received the signal.
@arg1:
@arg2:

View file

@ -200,7 +200,7 @@ gst_tee_getcaps (GstPad *pad, GstCaps *filter)
pads = gst_element_get_pad_list (GST_ELEMENT (tee));
while (pads) {
GstPad *srcpad = GST_PAD_CAST (pads->data);
GstPad *srcpad = GST_PAD (pads->data);
GstPad *peer;
GstCaps *peercaps;
GstCaps *newcaps;

View file

@ -34,17 +34,8 @@ extern GType _gst_bin_type;
#define GST_IS_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_BIN))
#define GST_IS_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_BIN))
#define GST_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_BIN, GstBinClass))
#define GST_BIN_CAST(obj) ((GstBin*)(obj))
#define GST_BIN_CLASS_CAST(klass) ((GstBinClass*)(klass))
#ifdef GST_TYPE_PARANOID
# define GST_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_BIN, GstBin))
# define GST_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_BIN, GstBinClass))
#else
# define GST_BIN GST_BIN_CAST
# define GST_BIN_CLASS GST_BIN_CLASS_CAST
#endif
#define GST_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_BIN, GstBin))
#define GST_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_BIN, GstBinClass))
typedef void (*GstBinPrePostIterateFunction) (GstBin *bin, gpointer user_data);

View file

@ -1866,7 +1866,7 @@ gst_element_unlink (GstElement *src, GstElement *dest)
srcpads = gst_element_get_pad_list (src);
while (srcpads) {
pad = GST_PAD_CAST (srcpads->data);
pad = GST_PAD (srcpads->data);
/* we only care about real src pads */
if (GST_IS_REAL_PAD (pad) && GST_PAD_IS_SRC (pad)) {
@ -1908,7 +1908,7 @@ gst_element_get_random_pad (GstElement *element, GstPadDirection dir)
GList *pads = element->pads;
GST_CAT_DEBUG (GST_CAT_ELEMENT_PADS, "getting a random pad");
while (pads) {
GstPad *pad = GST_PAD_CAST (pads->data);
GstPad *pad = GST_PAD (pads->data);
GST_CAT_DEBUG (GST_CAT_ELEMENT_PADS, "checking pad %s:%s",
GST_DEBUG_PAD_NAME (pad));
@ -2521,7 +2521,7 @@ gst_element_pads_activate (GstElement *element, gboolean active)
GList *pads = element->pads;
while (pads) {
GstPad *pad = GST_PAD_CAST (pads->data);
GstPad *pad = GST_PAD (pads->data);
pads = g_list_next (pads);
if (!GST_IS_REAL_PAD (pad))
@ -3227,10 +3227,10 @@ gst_element_get_managing_bin (GstElement *element)
g_return_val_if_fail (element != NULL, NULL);
bin = GST_BIN (gst_object_get_parent (GST_OBJECT_CAST (element)));
bin = GST_BIN (gst_object_get_parent (GST_OBJECT (element)));
while (bin && !GST_FLAG_IS_SET (GST_OBJECT_CAST (bin), GST_BIN_FLAG_MANAGER))
bin = GST_BIN (gst_object_get_parent (GST_OBJECT_CAST (bin)));
while (bin && !GST_FLAG_IS_SET (GST_OBJECT (bin), GST_BIN_FLAG_MANAGER))
bin = GST_BIN (gst_object_get_parent (GST_OBJECT (bin)));
return bin;
}

View file

@ -73,20 +73,11 @@ struct _GstElementDetails {
extern GType _gst_element_type;
#define GST_TYPE_ELEMENT (_gst_element_type)
#define GST_ELEMENT_CAST(obj) ((GstElement*)(obj))
#define GST_ELEMENT_CLASS_CAST(klass) ((GstElementClass*)(klass))
#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))
#ifdef GST_TYPE_PARANOID
# 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))
#else
# define GST_ELEMENT GST_ELEMENT_CAST
# define GST_ELEMENT_CLASS GST_ELEMENT_CLASS_CAST
#endif
#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))
/* convenience functions */
#ifdef G_HAVE_ISO_VARARGS

View file

@ -35,21 +35,12 @@ G_BEGIN_DECLS
extern GType _gst_object_type;
#define GST_TYPE_OBJECT (_gst_object_type)
#define GST_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OBJECT))
#define GST_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_OBJECT))
#define GST_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_OBJECT, GstObjectClass))
#define GST_OBJECT_CAST(obj) ((GstObject*)(obj))
#define GST_OBJECT_CLASS_CAST(klass) ((GstObjectClass*)(klass))
#ifdef GST_TYPE_PARANOID
# define GST_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_OBJECT, GstObject))
# define GST_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_OBJECT, GstObjectClass))
#else
# define GST_OBJECT GST_OBJECT_CAST
# define GST_OBJECT_CLASS GST_OBJECT_CLASS_CAST
#endif
#define GST_TYPE_OBJECT (_gst_object_type)
#define GST_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OBJECT))
#define GST_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_OBJECT))
#define GST_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_OBJECT, GstObjectClass))
#define GST_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_OBJECT, GstObject))
#define GST_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_OBJECT, GstObjectClass))
/* make sure we don't change the object size but stil make it compile
* without libxml */
@ -102,7 +93,7 @@ struct _GstObjectClass {
gpointer _gst_reserved[GST_PADDING];
};
#define GST_FLAGS(obj) (GST_OBJECT_CAST (obj)->flags)
#define GST_FLAGS(obj) (GST_OBJECT (obj)->flags)
#define GST_FLAG_IS_SET(obj,flag) (GST_FLAGS (obj) & (1<<(flag)))
#define GST_FLAG_SET(obj,flag) G_STMT_START{ (GST_FLAGS (obj) |= (1<<(flag))); }G_STMT_END
#define GST_FLAG_UNSET(obj,flag) G_STMT_START{ (GST_FLAGS (obj) &= ~(1<<(flag))); }G_STMT_END
@ -114,10 +105,10 @@ struct _GstObjectClass {
#define GST_OBJECT_FLOATING(obj) (GST_FLAG_IS_SET (obj, GST_FLOATING))
/* CR1: object locking - GObject 2.0 doesn't have threadsafe locking */
#define GST_LOCK(obj) (g_mutex_lock(GST_OBJECT_CAST(obj)->lock))
#define GST_TRYLOCK(obj) (g_mutex_trylock(GST_OBJECT_CAST(obj)->lock))
#define GST_UNLOCK(obj) (g_mutex_unlock(GST_OBJECT_CAST(obj)->lock))
#define GST_GET_LOCK(obj) (GST_OBJECT_CAST(obj)->lock)
#define GST_LOCK(obj) (g_mutex_lock(GST_OBJECT(obj)->lock))
#define GST_TRYLOCK(obj) (g_mutex_trylock(GST_OBJECT(obj)->lock))
#define GST_UNLOCK(obj) (g_mutex_unlock(GST_OBJECT(obj)->lock))
#define GST_GET_LOCK(obj) (GST_OBJECT(obj)->lock)
/* normal GObject stuff */

View file

@ -558,7 +558,7 @@ gst_pad_get_event_masks (GstPad *pad)
g_return_val_if_fail (rpad, FALSE);
if (GST_RPAD_EVENTMASKFUNC (rpad))
return GST_RPAD_EVENTMASKFUNC (rpad) (GST_PAD_CAST (pad));
return GST_RPAD_EVENTMASKFUNC (rpad) (GST_PAD (pad));
return NULL;
}
@ -671,7 +671,7 @@ gst_pad_get_query_types (GstPad *pad)
g_return_val_if_fail (rpad, FALSE);
if (GST_RPAD_QUERYTYPEFUNC (rpad))
return GST_RPAD_QUERYTYPEFUNC (rpad) (GST_PAD_CAST (pad));
return GST_RPAD_QUERYTYPEFUNC (rpad) (GST_PAD (pad));
return NULL;
}
@ -863,15 +863,15 @@ gst_pad_unlink (GstPad *srcpad,
(GST_RPAD_DIRECTION (realsink) == GST_PAD_SINK));
if (GST_RPAD_UNLINKFUNC (realsrc)) {
GST_RPAD_UNLINKFUNC (realsrc) (GST_PAD_CAST (realsrc));
GST_RPAD_UNLINKFUNC (realsrc) (GST_PAD (realsrc));
}
if (GST_RPAD_UNLINKFUNC (realsink)) {
GST_RPAD_UNLINKFUNC (realsink) (GST_PAD_CAST (realsink));
GST_RPAD_UNLINKFUNC (realsink) (GST_PAD (realsink));
}
/* get the schedulers before we unlink */
src_sched = gst_pad_get_scheduler (GST_PAD_CAST (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD_CAST (realsink));
src_sched = gst_pad_get_scheduler (GST_PAD (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD (realsink));
/* first clear peers */
GST_RPAD_PEER (realsrc) = NULL;
@ -886,8 +886,8 @@ gst_pad_unlink (GstPad *srcpad,
/* now tell the scheduler */
if (src_sched && src_sched == sink_sched) {
gst_scheduler_pad_unlink (src_sched,
GST_PAD_CAST (realsrc),
GST_PAD_CAST (realsink));
GST_PAD (realsrc),
GST_PAD (realsink));
}
/* hold a reference, as they can go away in the signal handlers */
@ -914,8 +914,8 @@ gst_pad_check_schedulers (GstRealPad *realsrc, GstRealPad *realsink)
GstScheduler *src_sched, *sink_sched;
gint num_decoupled = 0;
src_sched = gst_pad_get_scheduler (GST_PAD_CAST (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD_CAST (realsink));
src_sched = gst_pad_get_scheduler (GST_PAD (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD (realsink));
if (src_sched && sink_sched) {
if (GST_FLAG_IS_SET (GST_PAD_PARENT (realsrc), GST_ELEMENT_DECOUPLED))
@ -1095,13 +1095,13 @@ gst_pad_link_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps)
g_signal_emit (G_OBJECT (realsink), gst_real_pad_signals[REAL_LINKED],
0, realsrc);
src_sched = gst_pad_get_scheduler (GST_PAD_CAST (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD_CAST (realsink));
src_sched = gst_pad_get_scheduler (GST_PAD (realsrc));
sink_sched = gst_pad_get_scheduler (GST_PAD (realsink));
/* now tell the scheduler */
if (src_sched && src_sched == sink_sched) {
gst_scheduler_pad_link (src_sched,
GST_PAD_CAST (realsrc), GST_PAD_CAST (realsink));
GST_PAD (realsrc), GST_PAD (realsink));
}
else {
GST_CAT_INFO (GST_CAT_PADS, "not telling link to scheduler %s:%s and %s:%s, %p %p",
@ -1219,7 +1219,7 @@ gst_pad_get_scheduler (GstPad *pad)
GstRealPad *peer = GST_RPAD_PEER (pad);
if (peer) {
scheduler = gst_element_get_scheduler (gst_pad_get_parent (GST_PAD_CAST (peer)));
scheduler = gst_element_get_scheduler (gst_pad_get_parent (GST_PAD (peer)));
}
}
else {
@ -1344,7 +1344,7 @@ gst_pad_try_set_caps_func (GstRealPad *pad, GstCaps *caps, gboolean notify)
* going to unref it later on */
if (!(allowed = gst_caps_ref (GST_RPAD_FILTER (pad)))) {
/* no filter, make sure we check against the padtemplate then */
if ((template = gst_pad_get_pad_template (GST_PAD_CAST (pad)))) {
if ((template = gst_pad_get_pad_template (GST_PAD (pad)))) {
allowed = gst_pad_template_get_caps (template);
}
}
@ -1864,7 +1864,7 @@ gst_pad_get_caps (GstPad *pad)
GstCaps *caps;
GST_CAT_DEBUG (GST_CAT_CAPS, "using pad get function");
caps = GST_RPAD_GETCAPSFUNC (realpad) (GST_PAD_CAST (realpad), NULL);
caps = GST_RPAD_GETCAPSFUNC (realpad) (GST_PAD (realpad), NULL);
if(caps)g_return_val_if_fail(caps->refcount > 0, NULL);
return caps;
@ -2344,7 +2344,7 @@ gst_pad_push (GstPad *pad, GstData *data)
if (!gst_probe_dispatcher_dispatch (&peer->probedisp, &data))
return;
(peer->chainhandler) (GST_PAD_CAST (peer), data);
(peer->chainhandler) (GST_PAD (peer), data);
return;
}
else {
@ -2398,7 +2398,7 @@ restart:
GST_DEBUG_FUNCPTR_NAME (peer->gethandler),
GST_DEBUG_PAD_NAME (peer));
data = (peer->gethandler) (GST_PAD_CAST (peer));
data = (peer->gethandler) (GST_PAD (peer));
if (data) {
if (!gst_probe_dispatcher_dispatch (&peer->probedisp, &data))
@ -2893,7 +2893,7 @@ gst_pad_get_internal_links (GstPad *pad)
rpad = GST_PAD_REALIZE (pad);
if (GST_RPAD_INTLINKFUNC (rpad))
res = GST_RPAD_INTLINKFUNC (rpad) (GST_PAD_CAST (rpad));
res = GST_RPAD_INTLINKFUNC (rpad) (GST_PAD (rpad));
return res;
}
@ -2919,7 +2919,7 @@ gst_pad_event_default_dispatch (GstPad *pad, GstElement *element,
gst_pad_push (eventpad, GST_DATA (event));
}
else {
GstPad *peerpad = GST_PAD_CAST (GST_RPAD_PEER (eventpad));
GstPad *peerpad = GST_PAD (GST_RPAD_PEER (eventpad));
/* we only send the event on one pad, multi-sinkpad elements
* should implement a handler */
@ -3004,7 +3004,7 @@ gst_pad_dispatcher (GstPad *pad, GstPadDispatcherFunction dispatch,
GstRealPad *int_peer = GST_RPAD_PEER (int_rpad);
if (int_peer) {
res = dispatch (GST_PAD_CAST (int_peer), data);
res = dispatch (GST_PAD (int_peer), data);
if (res)
break;
}
@ -3043,7 +3043,7 @@ gst_pad_send_event (GstPad *pad, GstEvent *event)
GST_EVENT_TYPE (event), GST_DEBUG_PAD_NAME (rpad));
if (GST_RPAD_EVENTHANDLER (rpad))
success = GST_RPAD_EVENTHANDLER (rpad) (GST_PAD_CAST (rpad), event);
success = GST_RPAD_EVENTHANDLER (rpad) (GST_PAD (rpad), event);
else {
g_warning ("pad %s:%s has no event handler", GST_DEBUG_PAD_NAME (rpad));
gst_event_unref (event);
@ -3133,7 +3133,7 @@ gst_pad_convert (GstPad *pad,
rpad = GST_PAD_REALIZE (pad);
if (GST_RPAD_CONVERTFUNC (rpad)) {
return GST_RPAD_CONVERTFUNC (rpad) (GST_PAD_CAST (rpad), src_format,
return GST_RPAD_CONVERTFUNC (rpad) (GST_PAD (rpad), src_format,
src_value, dest_format, dest_value);
}
@ -3212,7 +3212,7 @@ gst_pad_query (GstPad *pad, GstQueryType type,
g_return_val_if_fail (rpad, FALSE);
if (GST_RPAD_QUERYFUNC (rpad))
return GST_RPAD_QUERYFUNC (rpad) (GST_PAD_CAST (pad), type, format, value);
return GST_RPAD_QUERYFUNC (rpad) (GST_PAD (pad), type, format, value);
return FALSE;
}
@ -3262,7 +3262,7 @@ gst_pad_get_formats (GstPad *pad)
rpad = GST_PAD_REALIZE (pad);
if (GST_RPAD_FORMATSFUNC (rpad))
return GST_RPAD_FORMATSFUNC (rpad) (GST_PAD_CAST (pad));
return GST_RPAD_FORMATSFUNC (rpad) (GST_PAD (pad));
return NULL;
}

View file

@ -40,65 +40,36 @@ extern GType _gst_pad_type;
extern GType _gst_real_pad_type;
extern GType _gst_ghost_pad_type;
#define GST_TYPE_PARANOID
/*
* Pad base class
*/
#define GST_TYPE_PAD (_gst_pad_type)
#define GST_PAD_CAST(obj) ((GstPad*)(obj))
#define GST_PAD_CLASS_CAST(klass) ((GstPadClass*)(klass))
#define GST_IS_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PAD))
#define GST_IS_PAD_FAST(obj) (G_OBJECT_TYPE(obj) == GST_TYPE_REAL_PAD || \
G_OBJECT_TYPE(obj) == GST_TYPE_GHOST_PAD)
#define GST_IS_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PAD))
#ifdef GST_TYPE_PARANOID
# define GST_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PAD, GstPad))
# define GST_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PAD, GstPadClass))
#else
# define GST_PAD GST_PAD_CAST
# define GST_PAD_CLASS GST_PAD_CLASS_CAST
#endif
#define GST_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PAD, GstPad))
#define GST_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PAD, GstPadClass))
/*
* Real Pads
*/
#define GST_TYPE_REAL_PAD (_gst_real_pad_type)
#define GST_REAL_PAD_CAST(obj) ((GstRealPad*)(obj))
#define GST_REAL_PAD_CLASS_CAST(klass) ((GstRealPadClass*)(klass))
#define GST_IS_REAL_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_REAL_PAD))
#define GST_IS_REAL_PAD_FAST(obj) (G_OBJECT_TYPE(obj) == GST_TYPE_REAL_PAD)
#define GST_IS_REAL_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_REAL_PAD))
#ifdef GST_TYPE_PARANOID
# define GST_REAL_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REAL_PAD, GstRealPad))
# define GST_REAL_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_REAL_PAD, GstRealPadClass))
#else
# define GST_REAL_PAD GST_REAL_PAD_CAST
# define GST_REAL_PAD_CLASS GST_REAL_PAD_CLASS_CAST
#endif
#define GST_REAL_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_REAL_PAD, GstRealPad))
#define GST_REAL_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_REAL_PAD, GstRealPadClass))
/*
* Ghost Pads
*/
#define GST_TYPE_GHOST_PAD (_gst_ghost_pad_type)
#define GST_GHOST_PAD_CAST(obj) ((GstGhostPad*)(obj))
#define GST_GHOST_PAD_CLASS_CAST(klass) ((GstGhostPadClass*)(klass))
#define GST_IS_GHOST_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GHOST_PAD))
#define GST_IS_GHOST_PAD_FAST(obj) (G_OBJECT_TYPE(obj) == GST_TYPE_GHOST_PAD)
#define GST_IS_GHOST_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GHOST_PAD))
#ifdef GST_TYPE_PARANOID
# define GST_GHOST_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GHOST_PAD, GstGhostPad))
# define GST_GHOST_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GHOST_PAD, GstGhostPadClass))
#else
# define GST_GHOST_PAD GST_GHOST_PAD_CAST
# define GST_GHOST_PAD_CLASS GST_GHOST_PAD_CLASS_CAST
#endif
#define GST_GHOST_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GHOST_PAD, GstGhostPad))
#define GST_GHOST_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GHOST_PAD, GstGhostPadClass))
/*typedef struct _GstPad GstPad; */
@ -289,7 +260,7 @@ struct _GstGhostPadClass {
#define GST_PAD_REALIZE(pad) (GST_IS_REAL_PAD(pad) ? ((GstRealPad *)(pad)) : GST_GPAD_REALPAD(pad))
#define GST_PAD_DIRECTION(pad) GST_RPAD_DIRECTION(GST_PAD_REALIZE(pad))
#define GST_PAD_CAPS(pad) GST_RPAD_CAPS(GST_PAD_REALIZE(pad))
#define GST_PAD_PEER(pad) GST_PAD_CAST(GST_RPAD_PEER(GST_PAD_REALIZE(pad)))
#define GST_PAD_PEER(pad) GST_PAD(GST_RPAD_PEER(GST_PAD_REALIZE(pad)))
/* Some check functions (unused?) */
#define GST_PAD_IS_LINKED(pad) (GST_PAD_PEER(pad) != NULL)

View file

@ -671,8 +671,8 @@ gst_queue_change_state (GstElement *element)
else {
GstScheduler *src_sched, *sink_sched;
src_sched = gst_pad_get_scheduler (GST_PAD_CAST (queue->srcpad));
sink_sched = gst_pad_get_scheduler (GST_PAD_CAST (queue->sinkpad));
src_sched = gst_pad_get_scheduler (GST_PAD (queue->srcpad));
sink_sched = gst_pad_get_scheduler (GST_PAD (queue->sinkpad));
if (src_sched == sink_sched) {
GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, queue, "queue %s does not connect different schedulers",

View file

@ -799,8 +799,14 @@ gst_scheduler_factory_class_init (GstSchedulerFactoryClass *klass)
factory_parent_class = g_type_class_ref (GST_TYPE_PLUGIN_FEATURE);
if (!_default_name)
_default_name = g_strdup (GST_SCHEDULER_DEFAULT_NAME);
if (!_default_name) {
if (g_getenv ("GST_SCHEDULER")) {
_default_name = g_strdup (g_getenv ("GST_SCHEDULER"));
} else {
_default_name = g_strdup (GST_SCHEDULER_DEFAULT_NAME);
}
}
g_assert (_default_name);
}
static void

View file

@ -34,8 +34,8 @@ GST_DEBUG_CATEGORY_STATIC(debug_scheduler);
typedef struct _GstSchedulerChain GstSchedulerChain;
#define GST_ELEMENT_THREADSTATE(elem) (cothread*) (GST_ELEMENT_CAST (elem)->sched_private)
#define GST_RPAD_BUFPEN(pad) (GstData*) (GST_REAL_PAD_CAST(pad)->sched_private)
#define GST_ELEMENT_THREADSTATE(elem) (cothread*) (GST_ELEMENT (elem)->sched_private)
#define GST_RPAD_BUFPEN(pad) (GstData*) (GST_REAL_PAD(pad)->sched_private)
#define GST_ELEMENT_COTHREAD_STOPPING GST_ELEMENT_SCHEDULER_PRIVATE1
#define GST_ELEMENT_IS_COTHREAD_STOPPING(element) GST_FLAG_IS_SET((element), GST_ELEMENT_COTHREAD_STOPPING)
@ -74,8 +74,7 @@ struct _GstSchedulerChain {
#define GST_IS_BASIC_SCHEDULER_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BASIC_SCHEDULER))
#define GST_BASIC_SCHEDULER_CAST(sched) ((GstBasicScheduler *)(sched))
#define SCHED(element) GST_BASIC_SCHEDULER_CAST (GST_ELEMENT_SCHED (element))
#define SCHED(element) GST_BASIC_SCHEDULER (GST_ELEMENT_SCHED (element))
typedef enum {
GST_BASIC_SCHEDULER_STATE_NONE,
@ -280,7 +279,7 @@ GST_PLUGIN_DEFINE (
static int
gst_basic_scheduler_loopfunc_wrapper (int argc, char **argv)
{
GstElement *element = GST_ELEMENT_CAST (argv);
GstElement *element = GST_ELEMENT (argv);
G_GNUC_UNUSED const gchar *name = GST_ELEMENT_NAME (element);
GST_DEBUG("entering loopfunc wrapper of %s", name);
@ -314,7 +313,7 @@ static int
gst_basic_scheduler_chain_wrapper (int argc, char **argv)
{
GSList *already_iterated = NULL;
GstElement *element = GST_ELEMENT_CAST (argv);
GstElement *element = GST_ELEMENT (argv);
G_GNUC_UNUSED const gchar *name = GST_ELEMENT_NAME (element);
GST_DEBUG ("entered chain wrapper of element %s", name);
@ -386,7 +385,7 @@ gst_basic_scheduler_chain_wrapper (int argc, char **argv)
static int
gst_basic_scheduler_src_wrapper (int argc, char **argv)
{
GstElement *element = GST_ELEMENT_CAST (argv);
GstElement *element = GST_ELEMENT (argv);
GList *pads;
GstRealPad *realpad;
GstData *data = NULL;
@ -401,17 +400,17 @@ gst_basic_scheduler_src_wrapper (int argc, char **argv)
if (!GST_IS_REAL_PAD (pads->data))
continue;
realpad = GST_REAL_PAD_CAST (pads->data);
realpad = GST_REAL_PAD (pads->data);
pads = g_list_next (pads);
if (GST_RPAD_DIRECTION (realpad) == GST_PAD_SRC && GST_PAD_IS_USABLE (realpad)) {
GST_CAT_DEBUG (debug_dataflow, "calling _getfunc for %s:%s", GST_DEBUG_PAD_NAME (realpad));
g_return_val_if_fail (GST_RPAD_GETFUNC (realpad) != NULL, 0);
data = GST_RPAD_GETFUNC (realpad) (GST_PAD_CAST (realpad));
data = GST_RPAD_GETFUNC (realpad) (GST_PAD (realpad));
if (data) {
GST_CAT_DEBUG (debug_dataflow, "calling gst_pad_push on pad %s:%s %p",
GST_DEBUG_PAD_NAME (realpad), data);
gst_pad_push (GST_PAD_CAST (realpad), data);
gst_pad_push (GST_PAD (realpad), data);
}
}
}
@ -603,7 +602,7 @@ gst_basic_scheduler_cothreaded_chain (GstBin * bin, GstSchedulerChain * chain)
while (elements) {
gboolean decoupled;
element = GST_ELEMENT_CAST (elements->data);
element = GST_ELEMENT (elements->data);
elements = g_list_next (elements);
decoupled = GST_FLAG_IS_SET (element, GST_ELEMENT_DECOUPLED);
@ -649,7 +648,7 @@ gst_basic_scheduler_cothreaded_chain (GstBin * bin, GstSchedulerChain * chain)
peerpad = GST_PAD_PEER (pad);
if (peerpad) {
GstElement *peerelement = GST_ELEMENT_CAST (GST_PAD_PARENT (peerpad));
GstElement *peerelement = GST_ELEMENT (GST_PAD_PARENT (peerpad));
gboolean different_sched = (peerelement->sched != GST_SCHEDULER (chain->sched));
gboolean peer_decoupled = GST_FLAG_IS_SET (peerelement, GST_ELEMENT_DECOUPLED);
@ -1042,9 +1041,9 @@ static void
gst_basic_scheduler_setup (GstScheduler *sched)
{
/* first create thread context */
if (GST_BASIC_SCHEDULER_CAST (sched)->context == NULL) {
if (GST_BASIC_SCHEDULER (sched)->context == NULL) {
GST_DEBUG ("initializing cothread context");
GST_BASIC_SCHEDULER_CAST (sched)->context = do_cothread_context_init ();
GST_BASIC_SCHEDULER (sched)->context = do_cothread_context_init ();
}
}
@ -1052,7 +1051,7 @@ static void
gst_basic_scheduler_reset (GstScheduler *sched)
{
cothread_context *ctx;
GList *elements = GST_BASIC_SCHEDULER_CAST (sched)->elements;
GList *elements = GST_BASIC_SCHEDULER (sched)->elements;
while (elements) {
GstElement *element = GST_ELEMENT (elements->data);
@ -1063,11 +1062,11 @@ gst_basic_scheduler_reset (GstScheduler *sched)
elements = g_list_next (elements);
}
ctx = GST_BASIC_SCHEDULER_CAST (sched)->context;
ctx = GST_BASIC_SCHEDULER (sched)->context;
do_cothread_context_destroy (ctx);
GST_BASIC_SCHEDULER_CAST (sched)->context = NULL;
GST_BASIC_SCHEDULER (sched)->context = NULL;
}
static void
@ -1261,8 +1260,8 @@ gst_basic_scheduler_pad_unlink (GstScheduler * sched, GstPad * srcpad, GstPad *
GST_DEBUG_PAD_NAME (srcpad), GST_DEBUG_PAD_NAME (sinkpad));
/* we need to have the parent elements of each pad */
element1 = GST_ELEMENT_CAST (GST_PAD_PARENT (srcpad));
element2 = GST_ELEMENT_CAST (GST_PAD_PARENT (sinkpad));
element1 = GST_ELEMENT (GST_PAD_PARENT (srcpad));
element2 = GST_ELEMENT (GST_PAD_PARENT (sinkpad));
/* first task is to remove the old chain they belonged to.
* this can be accomplished by taking either of the elements,
@ -1390,7 +1389,7 @@ gst_basic_scheduler_iterate (GstScheduler * sched)
GST_DEBUG ("there are %d elements in this chain", chain->num_elements);
elements = chain->elements;
while (elements) {
entry = GST_ELEMENT_CAST (elements->data);
entry = GST_ELEMENT (elements->data);
elements = g_list_next (elements);
if (GST_FLAG_IS_SET (entry, GST_ELEMENT_DECOUPLED)) {
GST_DEBUG ("entry \"%s\" is DECOUPLED, skipping",

View file

@ -36,9 +36,9 @@ GST_DEBUG_CATEGORY_STATIC(debug_scheduler);
# define COTHREADS_NAME ""
#endif
#define GST_ELEMENT_SCHED_CONTEXT(elem) ((GstOptSchedulerCtx*) (GST_ELEMENT_CAST (elem)->sched_private))
#define GST_ELEMENT_SCHED_CONTEXT(elem) ((GstOptSchedulerCtx*) (GST_ELEMENT (elem)->sched_private))
#define GST_ELEMENT_SCHED_GROUP(elem) (GST_ELEMENT_SCHED_CONTEXT (elem)->group)
#define GST_PAD_BUFLIST(pad) ((GList*) (GST_REAL_PAD_CAST(pad)->sched_private))
#define GST_PAD_BUFLIST(pad) ((GList*) (GST_REAL_PAD(pad)->sched_private))
#define GST_ELEMENT_COTHREAD_STOPPING GST_ELEMENT_SCHEDULER_PRIVATE1
#define GST_ELEMENT_IS_COTHREAD_STOPPING(element) GST_FLAG_IS_SET((element), GST_ELEMENT_COTHREAD_STOPPING)
@ -59,8 +59,6 @@ typedef struct _GstOptSchedulerClass GstOptSchedulerClass;
#define GST_IS_OPT_SCHEDULER_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_OPT_SCHEDULER))
#define GST_OPT_SCHEDULER_CAST(sched) ((GstOptScheduler *)(sched))
typedef enum {
GST_OPT_SCHEDULER_STATE_NONE,
GST_OPT_SCHEDULER_STATE_STOPPED,
@ -953,7 +951,7 @@ get_group_schedule_function (int argc, char *argv[])
while (pads) {
GstData *data;
GstPad *pad = GST_PAD_CAST (pads->data);
GstPad *pad = GST_PAD (pads->data);
pads = g_list_next (pads);
/* skip sinks and ghostpads */
@ -1246,7 +1244,7 @@ setup_group_scheduler (GstOptScheduler *osched, GstOptSchedulerGroup *group)
static GstElementStateReturn
gst_opt_scheduler_state_transition (GstScheduler *sched, GstElement *element, gint transition)
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GstOptSchedulerGroup *group;
GstElementStateReturn res = GST_STATE_SUCCESS;
@ -1476,7 +1474,7 @@ static void
gst_opt_scheduler_setup (GstScheduler *sched)
{
#ifdef USE_COTHREADS
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
/* first create thread context */
if (osched->context == NULL) {
@ -1490,7 +1488,7 @@ static void
gst_opt_scheduler_reset (GstScheduler *sched)
{
#ifdef USE_COTHREADS
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GSList *chains = osched->chains;
while (chains) {
@ -1515,7 +1513,7 @@ gst_opt_scheduler_reset (GstScheduler *sched)
static void
gst_opt_scheduler_add_element (GstScheduler *sched, GstElement *element)
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GstOptSchedulerCtx *ctx;
const GList *pads;
@ -1583,14 +1581,14 @@ gst_opt_scheduler_remove_element (GstScheduler *sched, GstElement *element)
static void
gst_opt_scheduler_lock_element (GstScheduler *sched, GstElement *element)
{
//GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
//GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
g_warning ("lock element, implement me");
}
static void
gst_opt_scheduler_unlock_element (GstScheduler *sched, GstElement *element)
{
//GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
//GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
g_warning ("unlock element, implement me");
}
@ -1624,7 +1622,7 @@ gst_opt_scheduler_interrupt (GstScheduler *sched, GstElement *element)
return FALSE;
#else
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GST_INFO ( "scheduler set interrupted state");
osched->state = GST_OPT_SCHEDULER_STATE_INTERRUPTED;
@ -1636,7 +1634,7 @@ gst_opt_scheduler_interrupt (GstScheduler *sched, GstElement *element)
static void
gst_opt_scheduler_error (GstScheduler *sched, GstElement *element)
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GstOptSchedulerGroup *group;
get_group (element, &group);
if (group)
@ -1649,7 +1647,7 @@ gst_opt_scheduler_error (GstScheduler *sched, GstElement *element)
static void
gst_opt_scheduler_pad_link (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
LinkType type = GST_OPT_INVALID;
GstElement *element1, *element2;
@ -1827,7 +1825,7 @@ element_has_link_with_group (GstElement *element, GstOptSchedulerGroup *group, G
/* see if the element has no more links to the peer group */
pads = gst_element_get_pad_list (element);
while (pads && !linked) {
GstPad *pad = GST_PAD_CAST (pads->data);
GstPad *pad = GST_PAD (pads->data);
pads = g_list_next (pads);
/* we only operate on real pads and on the pad that is not broken */
@ -1915,7 +1913,7 @@ group_can_reach_group (GstOptSchedulerGroup *group, GstOptSchedulerGroup *target
static void
gst_opt_scheduler_pad_unlink (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GstElement *element1, *element2;
GstOptSchedulerGroup *group1, *group2;
@ -2039,7 +2037,7 @@ gst_opt_scheduler_pad_unlink (GstScheduler *sched, GstPad *srcpad, GstPad *sinkp
static void
gst_opt_scheduler_pad_select (GstScheduler *sched, GList *padlist)
{
//GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
//GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
g_warning ("pad select, implement me");
}
@ -2056,7 +2054,7 @@ static GstSchedulerState
gst_opt_scheduler_iterate (GstScheduler *sched)
{
GstSchedulerState state = GST_SCHEDULER_STATE_STOPPED;
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
gint iterations = osched->iterations;
osched->state = GST_OPT_SCHEDULER_STATE_RUNNING;
@ -2120,7 +2118,7 @@ gst_opt_scheduler_iterate (GstScheduler *sched)
static void
gst_opt_scheduler_show (GstScheduler *sched)
{
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
GstOptScheduler *osched = GST_OPT_SCHEDULER (sched);
GSList *chains;
g_print ("iterations: %d\n", osched->iterations);
@ -2163,7 +2161,7 @@ gst_opt_scheduler_get_property (GObject *object, guint prop_id,
g_return_if_fail (GST_IS_OPT_SCHEDULER (object));
osched = GST_OPT_SCHEDULER_CAST (object);
osched = GST_OPT_SCHEDULER (object);
switch (prop_id) {
case ARG_ITERATIONS:
@ -2186,7 +2184,7 @@ gst_opt_scheduler_set_property (GObject *object, guint prop_id,
g_return_if_fail (GST_IS_OPT_SCHEDULER (object));
osched = GST_OPT_SCHEDULER_CAST (object);
osched = GST_OPT_SCHEDULER (object);
switch (prop_id) {
case ARG_ITERATIONS:

View file

@ -671,8 +671,8 @@ gst_queue_change_state (GstElement *element)
else {
GstScheduler *src_sched, *sink_sched;
src_sched = gst_pad_get_scheduler (GST_PAD_CAST (queue->srcpad));
sink_sched = gst_pad_get_scheduler (GST_PAD_CAST (queue->sinkpad));
src_sched = gst_pad_get_scheduler (GST_PAD (queue->srcpad));
sink_sched = gst_pad_get_scheduler (GST_PAD (queue->sinkpad));
if (src_sched == sink_sched) {
GST_CAT_DEBUG_OBJECT (GST_CAT_STATES, queue, "queue %s does not connect different schedulers",

View file

@ -200,7 +200,7 @@ gst_tee_getcaps (GstPad *pad, GstCaps *filter)
pads = gst_element_get_pad_list (GST_ELEMENT (tee));
while (pads) {
GstPad *srcpad = GST_PAD_CAST (pads->data);
GstPad *srcpad = GST_PAD (pads->data);
GstPad *peer;
GstCaps *peercaps;
GstCaps *newcaps;