mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +00:00
Clean up some code in last checkin. Fix minor bug where allowed_caps were incorrectly used for negotiation.
Original commit message from CVS: Clean up some code in last checkin. Fix minor bug where allowed_caps were incorrectly used for negotiation.
This commit is contained in:
parent
9ad670e297
commit
15a286a3ec
1 changed files with 11 additions and 12 deletions
21
gst/gstpad.c
21
gst/gstpad.c
|
@ -1304,10 +1304,10 @@ gst_pad_try_set_caps (GstPad *pad, const GstCaps *caps)
|
||||||
}
|
}
|
||||||
if (link->srcpad == pad) {
|
if (link->srcpad == pad) {
|
||||||
link->srccaps = gst_caps_copy(caps);
|
link->srccaps = gst_caps_copy(caps);
|
||||||
link->sinkcaps = gst_pad_get_allowed_caps (link->sinkpad);
|
link->sinkcaps = gst_pad_get_caps (link->sinkpad);
|
||||||
link->srcnotify = FALSE;
|
link->srcnotify = FALSE;
|
||||||
} else {
|
} else {
|
||||||
link->srccaps = gst_pad_get_allowed_caps (link->srcpad);
|
link->srccaps = gst_pad_get_caps (link->srcpad);
|
||||||
link->sinkcaps = gst_caps_copy(caps);
|
link->sinkcaps = gst_caps_copy(caps);
|
||||||
link->sinknotify = FALSE;
|
link->sinknotify = FALSE;
|
||||||
}
|
}
|
||||||
|
@ -2120,23 +2120,20 @@ gst_pad_set_explicit_caps (GstPad *pad, GstCaps *caps)
|
||||||
|
|
||||||
g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
|
g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
|
||||||
|
|
||||||
if (caps == NULL) {
|
GST_CAT_DEBUG (GST_CAT_PADS, "setting explicit caps to %s",
|
||||||
gst_caps_replace (&GST_RPAD_EXPLICIT_CAPS (pad), NULL);
|
gst_caps_to_string (caps));
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!GST_PAD_IS_LINKED (pad)) {
|
|
||||||
gst_caps_replace (&GST_RPAD_EXPLICIT_CAPS (pad), caps);
|
gst_caps_replace (&GST_RPAD_EXPLICIT_CAPS (pad), caps);
|
||||||
|
|
||||||
|
if (caps == NULL || !GST_PAD_IS_LINKED (pad)) {
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
link_ret = gst_pad_try_set_caps (pad, caps);
|
link_ret = gst_pad_try_set_caps (pad, caps);
|
||||||
if (GST_PAD_LINK_FAILED (link_ret)) {
|
if (link_ret == GST_PAD_LINK_REFUSED) {
|
||||||
gst_element_error (gst_pad_get_parent (pad), "negotiation failed");
|
gst_element_error (gst_pad_get_parent (pad), "negotiation failed");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
gst_caps_replace (&GST_RPAD_EXPLICIT_CAPS (pad), caps);
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2146,7 +2143,9 @@ gst_pad_explicit_getcaps (GstPad *pad)
|
||||||
g_return_val_if_fail (GST_IS_PAD (pad), NULL);
|
g_return_val_if_fail (GST_IS_PAD (pad), NULL);
|
||||||
|
|
||||||
if (GST_RPAD_EXPLICIT_CAPS (pad) == NULL) {
|
if (GST_RPAD_EXPLICIT_CAPS (pad) == NULL) {
|
||||||
return gst_caps_copy (gst_pad_get_pad_template_caps (pad));
|
const GstCaps *caps = gst_pad_get_pad_template_caps (pad);
|
||||||
|
|
||||||
|
return gst_caps_copy (caps);
|
||||||
}
|
}
|
||||||
return gst_caps_copy (GST_RPAD_EXPLICIT_CAPS (pad));
|
return gst_caps_copy (GST_RPAD_EXPLICIT_CAPS (pad));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue