mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-27 22:32:49 +00:00
more connect -> link updates
Original commit message from CVS: more connect -> link updates
This commit is contained in:
parent
3f68dd5744
commit
5a74101933
16 changed files with 60 additions and 60 deletions
|
@ -52,18 +52,18 @@ gst_autoplug_caps_intersect (GstCaps *src, GstCaps *sink)
|
||||||
{
|
{
|
||||||
GstCaps *caps;
|
GstCaps *caps;
|
||||||
|
|
||||||
/* if there are no caps, we can connect */
|
/* if there are no caps, we can link */
|
||||||
if ((src == NULL) && (sink == NULL))
|
if ((src == NULL) && (sink == NULL))
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
/* get an intersection */
|
/* get an intersection */
|
||||||
caps = gst_caps_intersect (src, sink);
|
caps = gst_caps_intersect (src, sink);
|
||||||
|
|
||||||
/* if the caps can't connect, there is no intersection */
|
/* if the caps can't link, there is no intersection */
|
||||||
if (caps == NULL)
|
if (caps == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* hurrah, we can connect, now remove the intersection */
|
/* hurrah, we can link, now remove the intersection */
|
||||||
gst_caps_unref (caps);
|
gst_caps_unref (caps);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,10 +85,10 @@ static GstSpiderConnection * gst_spider_link_get (GstSpiderIdentity *src);
|
||||||
|
|
||||||
/* autoplugging functions */
|
/* autoplugging functions */
|
||||||
static GstElement * gst_spider_find_element_to_plug (GstElement *src, GstElementFactory *fac, GstPadDirection dir);
|
static GstElement * gst_spider_find_element_to_plug (GstElement *src, GstElementFactory *fac, GstPadDirection dir);
|
||||||
static GstPadConnectReturn gst_spider_plug (GstSpiderConnection *conn);
|
static GstPadLinkReturn gst_spider_plug (GstSpiderConnection *conn);
|
||||||
static GstPadConnectReturn gst_spider_plug_from_srcpad (GstSpiderConnection *conn, GstPad *srcpad);
|
static GstPadLinkReturn gst_spider_plug_from_srcpad (GstSpiderConnection *conn, GstPad *srcpad);
|
||||||
/*static GstPadConnectReturn gst_spider_plug_peers (GstSpider *spider, GstPad *srcpad, GstPad *sinkpad); */
|
/*static GstPadLinkReturn gst_spider_plug_peers (GstSpider *spider, GstPad *srcpad, GstPad *sinkpad); */
|
||||||
static GstPadConnectReturn gst_spider_create_and_plug (GstSpiderConnection *conn, GList *plugpath);
|
static GstPadLinkReturn gst_spider_create_and_plug (GstSpiderConnection *conn, GList *plugpath);
|
||||||
|
|
||||||
/* random functions */
|
/* random functions */
|
||||||
static gchar * gst_spider_unused_elementname (GstBin *bin, const gchar *startwith);
|
static gchar * gst_spider_unused_elementname (GstBin *bin, const gchar *startwith);
|
||||||
|
@ -489,7 +489,7 @@ gst_spider_identity_unplug (GstSpiderIdentity *ident)
|
||||||
}
|
}
|
||||||
/* links src to sink using the elementfactories in plugpath
|
/* links src to sink using the elementfactories in plugpath
|
||||||
* plugpath will be removed afterwards */
|
* plugpath will be removed afterwards */
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_spider_create_and_plug (GstSpiderConnection *conn, GList *plugpath)
|
gst_spider_create_and_plug (GstSpiderConnection *conn, GList *plugpath)
|
||||||
{
|
{
|
||||||
GstSpider *spider = (GstSpider *) GST_OBJECT_PARENT (conn->src);
|
GstSpider *spider = (GstSpider *) GST_OBJECT_PARENT (conn->src);
|
||||||
|
@ -590,7 +590,7 @@ gst_spider_find_element_to_plug (GstElement *src, GstElementFactory *fac, GstPad
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
/* try to establish the link */
|
/* try to establish the link */
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_spider_plug (GstSpiderConnection *conn)
|
gst_spider_plug (GstSpiderConnection *conn)
|
||||||
{
|
{
|
||||||
GstSpider *spider = (GstSpider *) GST_OBJECT_PARENT (conn->src);
|
GstSpider *spider = (GstSpider *) GST_OBJECT_PARENT (conn->src);
|
||||||
|
@ -602,7 +602,7 @@ gst_spider_plug (GstSpiderConnection *conn)
|
||||||
return GST_PAD_LINK_REFUSED;
|
return GST_PAD_LINK_REFUSED;
|
||||||
}
|
}
|
||||||
/* try to establish the link using this pad */
|
/* try to establish the link using this pad */
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_spider_plug_from_srcpad (GstSpiderConnection *conn, GstPad *srcpad)
|
gst_spider_plug_from_srcpad (GstSpiderConnection *conn, GstPad *srcpad)
|
||||||
{
|
{
|
||||||
GstElement *element;
|
GstElement *element;
|
||||||
|
|
|
@ -29,7 +29,7 @@ GstElementDetails gst_spider_identity_details = {
|
||||||
"SpiderIdentity",
|
"SpiderIdentity",
|
||||||
"Generic",
|
"Generic",
|
||||||
"LGPL",
|
"LGPL",
|
||||||
"Connection between spider and outside elements",
|
"Link between spider and outside elements",
|
||||||
VERSION,
|
VERSION,
|
||||||
"Benjamin Otte <in7y118@public.uni-hamburg.de>",
|
"Benjamin Otte <in7y118@public.uni-hamburg.de>",
|
||||||
"(C) 2002",
|
"(C) 2002",
|
||||||
|
@ -71,7 +71,7 @@ static void gst_spider_identity_init (GstSpiderIdentity *spider_identity);
|
||||||
/* functions set in pads, elements and stuff */
|
/* functions set in pads, elements and stuff */
|
||||||
static void gst_spider_identity_chain (GstPad *pad, GstBuffer *buf);
|
static void gst_spider_identity_chain (GstPad *pad, GstBuffer *buf);
|
||||||
static GstElementStateReturn gst_spider_identity_change_state (GstElement *element);
|
static GstElementStateReturn gst_spider_identity_change_state (GstElement *element);
|
||||||
static GstPadConnectReturn gst_spider_identity_link (GstPad *pad, GstCaps *caps);
|
static GstPadLinkReturn gst_spider_identity_link (GstPad *pad, GstCaps *caps);
|
||||||
static GstCaps * gst_spider_identity_getcaps (GstPad *pad, GstCaps *caps);
|
static GstCaps * gst_spider_identity_getcaps (GstPad *pad, GstCaps *caps);
|
||||||
/* loop functions */
|
/* loop functions */
|
||||||
static void gst_spider_identity_dumb_loop (GstSpiderIdentity *ident);
|
static void gst_spider_identity_dumb_loop (GstSpiderIdentity *ident);
|
||||||
|
@ -221,7 +221,7 @@ gst_spider_identity_new_sink (gchar *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* shamelessly stolen from gstqueue.c to get proxy links */
|
/* shamelessly stolen from gstqueue.c to get proxy links */
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_spider_identity_link (GstPad *pad, GstCaps *caps)
|
gst_spider_identity_link (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstSpiderIdentity *spider_identity = GST_SPIDER_IDENTITY (gst_pad_get_parent (pad));
|
GstSpiderIdentity *spider_identity = GST_SPIDER_IDENTITY (gst_pad_get_parent (pad));
|
||||||
|
|
|
@ -154,7 +154,7 @@ gst_identity_getcaps (GstPad *pad, GstCaps *caps)
|
||||||
return gst_pad_get_allowed_caps (otherpad);
|
return gst_pad_get_allowed_caps (otherpad);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_identity_link (GstPad *pad, GstCaps *caps)
|
gst_identity_link (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstIdentity *identity;
|
GstIdentity *identity;
|
||||||
|
|
|
@ -119,12 +119,12 @@ gst_tee_class_init (GstTeeClass *klass)
|
||||||
gstelement_class->request_new_pad = GST_DEBUG_FUNCPTR(gst_tee_request_new_pad);
|
gstelement_class->request_new_pad = GST_DEBUG_FUNCPTR(gst_tee_request_new_pad);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_tee_sinklink (GstPad *pad, GstCaps *caps)
|
gst_tee_sinklink (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstTee *tee;
|
GstTee *tee;
|
||||||
const GList *pads;
|
const GList *pads;
|
||||||
GstPadConnectReturn set_retval;
|
GstPadLinkReturn set_retval;
|
||||||
|
|
||||||
tee = GST_TEE (gst_pad_get_parent (pad));
|
tee = GST_TEE (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
|
|
|
@ -615,9 +615,9 @@ gst_caps_check_compatibility_func (GstCaps *fromcaps, GstCaps *tocaps)
|
||||||
/**
|
/**
|
||||||
* gst_caps_is_always_compatible:
|
* gst_caps_is_always_compatible:
|
||||||
* @fromcaps: a #GstCaps capability to check compatibility of.
|
* @fromcaps: a #GstCaps capability to check compatibility of.
|
||||||
* @tocaps: the #GstCaps capabilty to check compatibility with.
|
* @tocaps: the #GstCaps capability to check compatibility with.
|
||||||
*
|
*
|
||||||
* Checks if a connection is always possible from fromcaps to tocaps, for all
|
* Checks if a link is always possible from fromcaps to tocaps, for all
|
||||||
* possible capabilities.
|
* possible capabilities.
|
||||||
*
|
*
|
||||||
* Returns: TRUE if compatible under all circumstances, FALSE otherwise.
|
* Returns: TRUE if compatible under all circumstances, FALSE otherwise.
|
||||||
|
@ -627,7 +627,7 @@ gst_caps_is_always_compatible (GstCaps *fromcaps, GstCaps *tocaps)
|
||||||
{
|
{
|
||||||
if (fromcaps == NULL) {
|
if (fromcaps == NULL) {
|
||||||
if (tocaps == NULL) {
|
if (tocaps == NULL) {
|
||||||
/* if both are NULL, they can always connect. Think filesrc ! filesink */
|
/* if both are NULL, they can always link. Think filesrc ! filesink */
|
||||||
GST_DEBUG (GST_CAT_CAPS, "both caps NULL, compatible");
|
GST_DEBUG (GST_CAT_CAPS, "both caps NULL, compatible");
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1406,7 +1406,7 @@ gst_element_get_compatible_pad (GstElement *element, GstPad *pad)
|
||||||
* @dest: the #GstElement containing the destination pad.
|
* @dest: the #GstElement containing the destination pad.
|
||||||
* @filtercaps: the #GstCaps to use as a filter.
|
* @filtercaps: the #GstCaps to use as a filter.
|
||||||
*
|
*
|
||||||
* Connects the source to the destination element using the filtercaps.
|
* Links the source to the destination element using the filtercaps.
|
||||||
* The link must be from source to destination, the other
|
* The link must be from source to destination, the other
|
||||||
* direction will not be tried.
|
* direction will not be tried.
|
||||||
* The functions looks for existing pads that aren't linked yet.
|
* The functions looks for existing pads that aren't linked yet.
|
||||||
|
@ -1554,7 +1554,7 @@ gst_element_link_many (GstElement *element_1, GstElement *element_2, ...)
|
||||||
* @src: a #GstElement containing the source pad.
|
* @src: a #GstElement containing the source pad.
|
||||||
* @dest: the #GstElement containing the destination pad.
|
* @dest: the #GstElement containing the destination pad.
|
||||||
*
|
*
|
||||||
* Connects the source to the destination element.
|
* Links the source to the destination element.
|
||||||
* The link must be from source to destination, the other
|
* The link must be from source to destination, the other
|
||||||
* direction will not be tried.
|
* direction will not be tried.
|
||||||
* The functions looks for existing pads and request pads that aren't
|
* The functions looks for existing pads and request pads that aren't
|
||||||
|
@ -1577,7 +1577,7 @@ gst_element_link (GstElement *src, GstElement *dest)
|
||||||
* @destpadname: the name of the #GstPad in destination element.
|
* @destpadname: the name of the #GstPad in destination element.
|
||||||
* @filtercaps: the #GstCaps to use as a filter.
|
* @filtercaps: the #GstCaps to use as a filter.
|
||||||
*
|
*
|
||||||
* Connects the two named pads of the source and destination elements.
|
* Links the two named pads of the source and destination elements.
|
||||||
* Side effect is that if one of the pads has no parent, it becomes a
|
* Side effect is that if one of the pads has no parent, it becomes a
|
||||||
* child of the parent of the other element. If they have different
|
* child of the parent of the other element. If they have different
|
||||||
* parents, the link fails.
|
* parents, the link fails.
|
||||||
|
@ -1621,7 +1621,7 @@ gst_element_link_pads_filtered (GstElement *src, const gchar *srcpadname,
|
||||||
* @dest: the #GstElement containing the destination pad.
|
* @dest: the #GstElement containing the destination pad.
|
||||||
* @destpadname: the name of the #GstPad in destination element.
|
* @destpadname: the name of the #GstPad in destination element.
|
||||||
*
|
*
|
||||||
* Connects the two named pads of the source and destination elements.
|
* Links the two named pads of the source and destination elements.
|
||||||
* Side effect is that if one of the pads has no parent, it becomes a
|
* Side effect is that if one of the pads has no parent, it becomes a
|
||||||
* child of the parent of the other element. If they have different
|
* child of the parent of the other element. If they have different
|
||||||
* parents, the link fails.
|
* parents, the link fails.
|
||||||
|
|
|
@ -91,7 +91,7 @@ enum {
|
||||||
GST_CAT_CLOCK, /* Clocking */
|
GST_CAT_CLOCK, /* Clocking */
|
||||||
GST_CAT_ELEMENT_PADS, /* Element pad management */
|
GST_CAT_ELEMENT_PADS, /* Element pad management */
|
||||||
GST_CAT_ELEMENT_FACTORY, /* Elementfactory stuff */
|
GST_CAT_ELEMENT_FACTORY, /* Elementfactory stuff */
|
||||||
GST_CAT_PADS, /* Pad creation/connection */
|
GST_CAT_PADS, /* Pad creation/linking */
|
||||||
GST_CAT_PIPELINE, /* Pipeline stuff */
|
GST_CAT_PIPELINE, /* Pipeline stuff */
|
||||||
GST_CAT_PLUGIN_LOADING, /* Plugin loading */
|
GST_CAT_PLUGIN_LOADING, /* Plugin loading */
|
||||||
GST_CAT_PLUGIN_ERRORS, /* Errors during plugin loading */
|
GST_CAT_PLUGIN_ERRORS, /* Errors during plugin loading */
|
||||||
|
|
34
gst/gstpad.c
34
gst/gstpad.c
|
@ -208,7 +208,7 @@ gst_real_pad_init (GstRealPad *pad)
|
||||||
pad->eventfunc = gst_pad_event_default;
|
pad->eventfunc = gst_pad_event_default;
|
||||||
pad->convertfunc = gst_pad_convert_default;
|
pad->convertfunc = gst_pad_convert_default;
|
||||||
pad->queryfunc = gst_pad_query_default;
|
pad->queryfunc = gst_pad_query_default;
|
||||||
pad->intconnfunc = gst_pad_get_internal_links_default;
|
pad->intlinkfunc = gst_pad_get_internal_links_default;
|
||||||
|
|
||||||
pad->eventmaskfunc = gst_pad_get_event_masks_default;
|
pad->eventmaskfunc = gst_pad_get_event_masks_default;
|
||||||
pad->formatsfunc = gst_pad_get_formats_default;
|
pad->formatsfunc = gst_pad_get_formats_default;
|
||||||
|
@ -697,20 +697,20 @@ gst_pad_get_query_types_default (GstPad *pad)
|
||||||
/**
|
/**
|
||||||
* gst_pad_set_internal_link_function:
|
* gst_pad_set_internal_link_function:
|
||||||
* @pad: a #GstPad to set the internal link function for.
|
* @pad: a #GstPad to set the internal link function for.
|
||||||
* @intconn: the #GstPadIntConnFunction to set.
|
* @intlink: the #GstPadIntLinkFunction to set.
|
||||||
*
|
*
|
||||||
* Sets the given internal link function for the pad.
|
* Sets the given internal link function for the pad.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_pad_set_internal_link_function (GstPad *pad,
|
gst_pad_set_internal_link_function (GstPad *pad,
|
||||||
GstPadIntConnFunction intconn)
|
GstPadIntLinkFunction intlink)
|
||||||
{
|
{
|
||||||
g_return_if_fail (pad != NULL);
|
g_return_if_fail (pad != NULL);
|
||||||
g_return_if_fail (GST_IS_REAL_PAD (pad));
|
g_return_if_fail (GST_IS_REAL_PAD (pad));
|
||||||
|
|
||||||
GST_RPAD_INTCONNFUNC (pad) = intconn;
|
GST_RPAD_INTLINKFUNC (pad) = intlink;
|
||||||
GST_DEBUG (GST_CAT_PADS, "internal link for %s:%s set to %s",
|
GST_DEBUG (GST_CAT_PADS, "internal link for %s:%s set to %s",
|
||||||
GST_DEBUG_PAD_NAME (pad), GST_DEBUG_FUNCPTR_NAME (intconn));
|
GST_DEBUG_PAD_NAME (pad), GST_DEBUG_FUNCPTR_NAME (intlink));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -734,14 +734,14 @@ gst_pad_set_formats_function (GstPad *pad, GstPadFormatsFunction formats)
|
||||||
/**
|
/**
|
||||||
* gst_pad_set_link_function:
|
* gst_pad_set_link_function:
|
||||||
* @pad: a #GstPad to set the link function for.
|
* @pad: a #GstPad to set the link function for.
|
||||||
* @link: the #GstPadConnectFunction to set.
|
* @link: the #GstPadLinkFunction to set.
|
||||||
*
|
*
|
||||||
* Sets the given link function for the pad. It will be called
|
* Sets the given link function for the pad. It will be called
|
||||||
* when the pad is linked or relinked with caps.
|
* when the pad is linked or relinked with caps.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_pad_set_link_function (GstPad *pad,
|
gst_pad_set_link_function (GstPad *pad,
|
||||||
GstPadConnectFunction link)
|
GstPadLinkFunction link)
|
||||||
{
|
{
|
||||||
g_return_if_fail (pad != NULL);
|
g_return_if_fail (pad != NULL);
|
||||||
g_return_if_fail (GST_IS_REAL_PAD (pad));
|
g_return_if_fail (GST_IS_REAL_PAD (pad));
|
||||||
|
@ -1079,7 +1079,7 @@ gst_pad_link_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps)
|
||||||
* @srcpad: the source #GstPad to link.
|
* @srcpad: the source #GstPad to link.
|
||||||
* @sinkpad: the sink #GstPad to link.
|
* @sinkpad: the sink #GstPad to link.
|
||||||
*
|
*
|
||||||
* Connects the source pad to the sink pad.
|
* Links the source pad to the sink pad.
|
||||||
*
|
*
|
||||||
* Returns: TRUE if the pad could be linked, FALSE otherwise.
|
* Returns: TRUE if the pad could be linked, FALSE otherwise.
|
||||||
*/
|
*/
|
||||||
|
@ -1268,7 +1268,7 @@ gst_pad_get_ghost_pad_list (GstPad *pad)
|
||||||
* 2. deals with the result code of the link function
|
* 2. deals with the result code of the link function
|
||||||
* 3. sets fixed caps on the pad.
|
* 3. sets fixed caps on the pad.
|
||||||
*/
|
*/
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_pad_try_set_caps_func (GstRealPad *pad, GstCaps *caps, gboolean notify)
|
gst_pad_try_set_caps_func (GstRealPad *pad, GstCaps *caps, gboolean notify)
|
||||||
{
|
{
|
||||||
GstCaps *oldcaps, *allowed = NULL;
|
GstCaps *oldcaps, *allowed = NULL;
|
||||||
|
@ -1322,7 +1322,7 @@ gst_pad_try_set_caps_func (GstRealPad *pad, GstCaps *caps, gboolean notify)
|
||||||
|
|
||||||
/* we need to notify the link function */
|
/* we need to notify the link function */
|
||||||
if (notify && GST_RPAD_LINKFUNC (pad)) {
|
if (notify && GST_RPAD_LINKFUNC (pad)) {
|
||||||
GstPadConnectReturn res;
|
GstPadLinkReturn res;
|
||||||
gchar *debug_string;
|
gchar *debug_string;
|
||||||
gboolean negotiating;
|
gboolean negotiating;
|
||||||
|
|
||||||
|
@ -1405,14 +1405,14 @@ gst_pad_try_set_caps_func (GstRealPad *pad, GstCaps *caps, gboolean notify)
|
||||||
*
|
*
|
||||||
* Tries to set the caps on the given pad.
|
* Tries to set the caps on the given pad.
|
||||||
*
|
*
|
||||||
* Returns: A GstPadConnectReturn value indicating whether the caps
|
* Returns: A #GstPadLinkReturn value indicating whether the caps
|
||||||
* could be set.
|
* could be set.
|
||||||
*/
|
*/
|
||||||
GstPadConnectReturn
|
GstPadLinkReturn
|
||||||
gst_pad_try_set_caps (GstPad *pad, GstCaps *caps)
|
gst_pad_try_set_caps (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstRealPad *peer, *realpad;
|
GstRealPad *peer, *realpad;
|
||||||
GstPadConnectReturn set_retval;
|
GstPadLinkReturn set_retval;
|
||||||
|
|
||||||
realpad = GST_PAD_REALIZE (pad);
|
realpad = GST_PAD_REALIZE (pad);
|
||||||
peer = GST_RPAD_PEER (realpad);
|
peer = GST_RPAD_PEER (realpad);
|
||||||
|
@ -1602,7 +1602,7 @@ gst_pad_perform_negotiate (GstPad *srcpad, GstPad *sinkpad)
|
||||||
|
|
||||||
/* no negotiation is performed if the pads have filtercaps */
|
/* no negotiation is performed if the pads have filtercaps */
|
||||||
if (intersection) {
|
if (intersection) {
|
||||||
GstPadConnectReturn res;
|
GstPadLinkReturn res;
|
||||||
|
|
||||||
res = gst_pad_try_set_caps_func (realsrc, intersection, TRUE);
|
res = gst_pad_try_set_caps_func (realsrc, intersection, TRUE);
|
||||||
if (res == GST_PAD_LINK_REFUSED)
|
if (res == GST_PAD_LINK_REFUSED)
|
||||||
|
@ -1693,7 +1693,7 @@ gst_pad_relink_filtered (GstPad *srcpad, GstPad *sinkpad,
|
||||||
*
|
*
|
||||||
* Returns: TRUE if the peer pad accepted the caps, FALSE otherwise.
|
* Returns: TRUE if the peer pad accepted the caps, FALSE otherwise.
|
||||||
*/
|
*/
|
||||||
GstPadConnectReturn
|
GstPadLinkReturn
|
||||||
gst_pad_proxy_link (GstPad *pad, GstCaps *caps)
|
gst_pad_proxy_link (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstRealPad *peer, *realpad;
|
GstRealPad *peer, *realpad;
|
||||||
|
@ -2632,8 +2632,8 @@ gst_pad_get_internal_links (GstPad *pad)
|
||||||
|
|
||||||
rpad = GST_PAD_REALIZE (pad);
|
rpad = GST_PAD_REALIZE (pad);
|
||||||
|
|
||||||
if (GST_RPAD_INTCONNFUNC (rpad))
|
if (GST_RPAD_INTLINKFUNC (rpad))
|
||||||
res = GST_RPAD_INTCONNFUNC (rpad) (GST_PAD_CAST (rpad));
|
res = GST_RPAD_INTLINKFUNC (rpad) (GST_PAD_CAST (rpad));
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
20
gst/gstpad.h
20
gst/gstpad.h
|
@ -116,7 +116,7 @@ typedef enum {
|
||||||
GST_PAD_LINK_DELAYED = 0,
|
GST_PAD_LINK_DELAYED = 0,
|
||||||
GST_PAD_LINK_OK = 1,
|
GST_PAD_LINK_OK = 1,
|
||||||
GST_PAD_LINK_DONE = 2
|
GST_PAD_LINK_DONE = 2
|
||||||
} GstPadConnectReturn;
|
} GstPadLinkReturn;
|
||||||
|
|
||||||
/* convenience functions */
|
/* convenience functions */
|
||||||
#ifdef G_HAVE_ISO_VARARGS
|
#ifdef G_HAVE_ISO_VARARGS
|
||||||
|
@ -141,12 +141,12 @@ typedef gboolean (*GstPadConvertFunction) (GstPad *pad,
|
||||||
GstFormat *dest_format, gint64 *dest_value);
|
GstFormat *dest_format, gint64 *dest_value);
|
||||||
typedef gboolean (*GstPadQueryFunction) (GstPad *pad, GstQueryType type,
|
typedef gboolean (*GstPadQueryFunction) (GstPad *pad, GstQueryType type,
|
||||||
GstFormat *format, gint64 *value);
|
GstFormat *format, gint64 *value);
|
||||||
typedef GList* (*GstPadIntConnFunction) (GstPad *pad);
|
typedef GList* (*GstPadIntLinkFunction) (GstPad *pad);
|
||||||
typedef const GstFormat* (*GstPadFormatsFunction) (GstPad *pad);
|
typedef const GstFormat* (*GstPadFormatsFunction) (GstPad *pad);
|
||||||
typedef const GstEventMask* (*GstPadEventMaskFunction) (GstPad *pad);
|
typedef const GstEventMask* (*GstPadEventMaskFunction) (GstPad *pad);
|
||||||
typedef const GstQueryType* (*GstPadQueryTypeFunction) (GstPad *pad);
|
typedef const GstQueryType* (*GstPadQueryTypeFunction) (GstPad *pad);
|
||||||
|
|
||||||
typedef GstPadConnectReturn (*GstPadConnectFunction) (GstPad *pad, GstCaps *caps);
|
typedef GstPadLinkReturn (*GstPadLinkFunction) (GstPad *pad, GstCaps *caps);
|
||||||
typedef GstCaps* (*GstPadGetCapsFunction) (GstPad *pad, GstCaps *caps);
|
typedef GstCaps* (*GstPadGetCapsFunction) (GstPad *pad, GstCaps *caps);
|
||||||
typedef GstBufferPool* (*GstPadBufferPoolFunction) (GstPad *pad);
|
typedef GstBufferPool* (*GstPadBufferPoolFunction) (GstPad *pad);
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ struct _GstRealPad {
|
||||||
|
|
||||||
GstPadDirection direction;
|
GstPadDirection direction;
|
||||||
|
|
||||||
GstPadConnectFunction linkfunc;
|
GstPadLinkFunction linkfunc;
|
||||||
GstRealPad *peer;
|
GstRealPad *peer;
|
||||||
|
|
||||||
gpointer sched_private;
|
gpointer sched_private;
|
||||||
|
@ -209,7 +209,7 @@ struct _GstRealPad {
|
||||||
GstPadQueryFunction queryfunc;
|
GstPadQueryFunction queryfunc;
|
||||||
GstPadFormatsFunction formatsfunc;
|
GstPadFormatsFunction formatsfunc;
|
||||||
GstPadQueryTypeFunction querytypefunc;
|
GstPadQueryTypeFunction querytypefunc;
|
||||||
GstPadIntConnFunction intconnfunc;
|
GstPadIntLinkFunction intlinkfunc;
|
||||||
|
|
||||||
GstPadBufferPoolFunction bufferpoolfunc;
|
GstPadBufferPoolFunction bufferpoolfunc;
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ struct _GstGhostPadClass {
|
||||||
#define GST_RPAD_EVENTHANDLER(pad) (((GstRealPad *)(pad))->eventhandler)
|
#define GST_RPAD_EVENTHANDLER(pad) (((GstRealPad *)(pad))->eventhandler)
|
||||||
#define GST_RPAD_CONVERTFUNC(pad) (((GstRealPad *)(pad))->convertfunc)
|
#define GST_RPAD_CONVERTFUNC(pad) (((GstRealPad *)(pad))->convertfunc)
|
||||||
#define GST_RPAD_QUERYFUNC(pad) (((GstRealPad *)(pad))->queryfunc)
|
#define GST_RPAD_QUERYFUNC(pad) (((GstRealPad *)(pad))->queryfunc)
|
||||||
#define GST_RPAD_INTCONNFUNC(pad) (((GstRealPad *)(pad))->intconnfunc)
|
#define GST_RPAD_INTLINKFUNC(pad) (((GstRealPad *)(pad))->intlinkfunc)
|
||||||
#define GST_RPAD_FORMATSFUNC(pad) (((GstRealPad *)(pad))->formatsfunc)
|
#define GST_RPAD_FORMATSFUNC(pad) (((GstRealPad *)(pad))->formatsfunc)
|
||||||
#define GST_RPAD_QUERYTYPEFUNC(pad) (((GstRealPad *)(pad))->querytypefunc)
|
#define GST_RPAD_QUERYTYPEFUNC(pad) (((GstRealPad *)(pad))->querytypefunc)
|
||||||
#define GST_RPAD_EVENTMASKFUNC(pad) (((GstRealPad *)(pad))->eventmaskfunc)
|
#define GST_RPAD_EVENTMASKFUNC(pad) (((GstRealPad *)(pad))->eventmaskfunc)
|
||||||
|
@ -419,7 +419,7 @@ const GstEventMask* gst_pad_get_event_masks (GstPad *pad);
|
||||||
const GstEventMask* gst_pad_get_event_masks_default (GstPad *pad);
|
const GstEventMask* gst_pad_get_event_masks_default (GstPad *pad);
|
||||||
|
|
||||||
/* pad links */
|
/* pad links */
|
||||||
void gst_pad_set_link_function (GstPad *pad, GstPadConnectFunction link);
|
void gst_pad_set_link_function (GstPad *pad, GstPadLinkFunction link);
|
||||||
gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad);
|
gboolean gst_pad_can_link (GstPad *srcpad, GstPad *sinkpad);
|
||||||
gboolean gst_pad_can_link_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps);
|
gboolean gst_pad_can_link_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps);
|
||||||
|
|
||||||
|
@ -432,11 +432,11 @@ GstPad* gst_pad_get_peer (GstPad *pad);
|
||||||
/* capsnego functions */
|
/* capsnego functions */
|
||||||
GstCaps* gst_pad_get_caps (GstPad *pad);
|
GstCaps* gst_pad_get_caps (GstPad *pad);
|
||||||
GstCaps* gst_pad_get_pad_template_caps (GstPad *pad);
|
GstCaps* gst_pad_get_pad_template_caps (GstPad *pad);
|
||||||
GstPadConnectReturn gst_pad_try_set_caps (GstPad *pad, GstCaps *caps);
|
GstPadLinkReturn gst_pad_try_set_caps (GstPad *pad, GstCaps *caps);
|
||||||
gboolean gst_pad_check_compatibility (GstPad *srcpad, GstPad *sinkpad);
|
gboolean gst_pad_check_compatibility (GstPad *srcpad, GstPad *sinkpad);
|
||||||
|
|
||||||
void gst_pad_set_getcaps_function (GstPad *pad, GstPadGetCapsFunction getcaps);
|
void gst_pad_set_getcaps_function (GstPad *pad, GstPadGetCapsFunction getcaps);
|
||||||
GstPadConnectReturn gst_pad_proxy_link (GstPad *pad, GstCaps *caps);
|
GstPadLinkReturn gst_pad_proxy_link (GstPad *pad, GstCaps *caps);
|
||||||
gboolean gst_pad_relink_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps);
|
gboolean gst_pad_relink_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps);
|
||||||
gboolean gst_pad_perform_negotiate (GstPad *srcpad, GstPad *sinkpad);
|
gboolean gst_pad_perform_negotiate (GstPad *srcpad, GstPad *sinkpad);
|
||||||
gboolean gst_pad_try_relink_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps);
|
gboolean gst_pad_try_relink_filtered (GstPad *srcpad, GstPad *sinkpad, GstCaps *filtercaps);
|
||||||
|
@ -475,7 +475,7 @@ gboolean gst_pad_query (GstPad *pad, GstQueryType type,
|
||||||
gboolean gst_pad_query_default (GstPad *pad, GstQueryType type,
|
gboolean gst_pad_query_default (GstPad *pad, GstQueryType type,
|
||||||
GstFormat *format, gint64 *value);
|
GstFormat *format, gint64 *value);
|
||||||
|
|
||||||
void gst_pad_set_internal_link_function(GstPad *pad, GstPadIntConnFunction intconn);
|
void gst_pad_set_internal_link_function(GstPad *pad, GstPadIntLinkFunction intlink);
|
||||||
GList* gst_pad_get_internal_links (GstPad *pad);
|
GList* gst_pad_get_internal_links (GstPad *pad);
|
||||||
GList* gst_pad_get_internal_links_default (GstPad *pad);
|
GList* gst_pad_get_internal_links_default (GstPad *pad);
|
||||||
|
|
||||||
|
|
|
@ -173,7 +173,7 @@ gst_queue_class_init (GstQueueClass *klass)
|
||||||
gstelement_class->release_locks = GST_DEBUG_FUNCPTR(gst_queue_release_locks);
|
gstelement_class->release_locks = GST_DEBUG_FUNCPTR(gst_queue_release_locks);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_queue_link (GstPad *pad, GstCaps *caps)
|
gst_queue_link (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstQueue *queue = GST_QUEUE (gst_pad_get_parent (pad));
|
GstQueue *queue = GST_QUEUE (gst_pad_get_parent (pad));
|
||||||
|
|
|
@ -1094,7 +1094,7 @@ typedef enum {
|
||||||
GST_OPT_CHAIN_TO_CHAIN,
|
GST_OPT_CHAIN_TO_CHAIN,
|
||||||
GST_OPT_CHAIN_TO_LOOP,
|
GST_OPT_CHAIN_TO_LOOP,
|
||||||
GST_OPT_LOOP_TO_LOOP,
|
GST_OPT_LOOP_TO_LOOP,
|
||||||
} ConnectionType;
|
} LinkType;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Entry points for this scheduler.
|
* Entry points for this scheduler.
|
||||||
|
@ -1263,7 +1263,7 @@ static void
|
||||||
gst_opt_scheduler_pad_link (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
|
gst_opt_scheduler_pad_link (GstScheduler *sched, GstPad *srcpad, GstPad *sinkpad)
|
||||||
{
|
{
|
||||||
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
|
GstOptScheduler *osched = GST_OPT_SCHEDULER_CAST (sched);
|
||||||
ConnectionType type = GST_OPT_INVALID;
|
LinkType type = GST_OPT_INVALID;
|
||||||
GstElement *element1, *element2;
|
GstElement *element1, *element2;
|
||||||
|
|
||||||
GST_INFO (GST_CAT_SCHEDULING, "pad link between \"%s:%s\" and \"%s:%s\"",
|
GST_INFO (GST_CAT_SCHEDULING, "pad link between \"%s:%s\" and \"%s:%s\"",
|
||||||
|
|
|
@ -154,7 +154,7 @@ gst_identity_getcaps (GstPad *pad, GstCaps *caps)
|
||||||
return gst_pad_get_allowed_caps (otherpad);
|
return gst_pad_get_allowed_caps (otherpad);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_identity_link (GstPad *pad, GstCaps *caps)
|
gst_identity_link (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstIdentity *identity;
|
GstIdentity *identity;
|
||||||
|
|
|
@ -173,7 +173,7 @@ gst_queue_class_init (GstQueueClass *klass)
|
||||||
gstelement_class->release_locks = GST_DEBUG_FUNCPTR(gst_queue_release_locks);
|
gstelement_class->release_locks = GST_DEBUG_FUNCPTR(gst_queue_release_locks);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_queue_link (GstPad *pad, GstCaps *caps)
|
gst_queue_link (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstQueue *queue = GST_QUEUE (gst_pad_get_parent (pad));
|
GstQueue *queue = GST_QUEUE (gst_pad_get_parent (pad));
|
||||||
|
|
|
@ -119,12 +119,12 @@ gst_tee_class_init (GstTeeClass *klass)
|
||||||
gstelement_class->request_new_pad = GST_DEBUG_FUNCPTR(gst_tee_request_new_pad);
|
gstelement_class->request_new_pad = GST_DEBUG_FUNCPTR(gst_tee_request_new_pad);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstPadConnectReturn
|
static GstPadLinkReturn
|
||||||
gst_tee_sinklink (GstPad *pad, GstCaps *caps)
|
gst_tee_sinklink (GstPad *pad, GstCaps *caps)
|
||||||
{
|
{
|
||||||
GstTee *tee;
|
GstTee *tee;
|
||||||
const GList *pads;
|
const GList *pads;
|
||||||
GstPadConnectReturn set_retval;
|
GstPadLinkReturn set_retval;
|
||||||
|
|
||||||
tee = GST_TEE (gst_pad_get_parent (pad));
|
tee = GST_TEE (gst_pad_get_parent (pad));
|
||||||
|
|
||||||
|
|
|
@ -644,9 +644,9 @@ print_element_info (GstElementFactory *factory)
|
||||||
print_query_types (gst_pad_get_query_types (GST_PAD (realpad)));
|
print_query_types (gst_pad_get_query_types (GST_PAD (realpad)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (realpad->intconnfunc != gst_pad_get_internal_links_default)
|
if (realpad->intlinkfunc != gst_pad_get_internal_links_default)
|
||||||
g_print (" Has custom intconnfunc(): %s\n",
|
g_print (" Has custom intconnfunc(): %s\n",
|
||||||
GST_DEBUG_FUNCPTR_NAME(realpad->intconnfunc));
|
GST_DEBUG_FUNCPTR_NAME(realpad->intlinkfunc));
|
||||||
|
|
||||||
if (realpad->bufferpoolfunc)
|
if (realpad->bufferpoolfunc)
|
||||||
g_print (" Has bufferpoolfunc(): %s\n",
|
g_print (" Has bufferpoolfunc(): %s\n",
|
||||||
|
|
Loading…
Reference in a new issue