xvimagesink: Update for negotiation related API changes

This commit is contained in:
Sebastian Dröge 2011-05-16 12:04:39 +02:00
parent e21ec369f0
commit 8d6e2c8a89

View file

@ -1509,18 +1509,29 @@ gst_xvimagesink_xcontext_clear (GstXvImageSink * xvimagesink)
/* Element stuff */ /* Element stuff */
static GstCaps * static GstCaps *
gst_xvimagesink_getcaps (GstBaseSink * bsink) gst_xvimagesink_getcaps (GstBaseSink * bsink, GstCaps * filter)
{ {
GstXvImageSink *xvimagesink; GstXvImageSink *xvimagesink;
xvimagesink = GST_XVIMAGESINK (bsink); xvimagesink = GST_XVIMAGESINK (bsink);
if (xvimagesink->xcontext) if (xvimagesink->xcontext) {
return gst_caps_ref (xvimagesink->xcontext->caps); if (filter)
return gst_caps_intersect_full (filter, xvimagesink->xcontext->caps,
GST_CAPS_INTERSECT_FIRST);
else
return gst_caps_ref (xvimagesink->xcontext->caps);
}
return if (filter) {
gst_caps_copy (gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD return gst_caps_intersect_full (filter,
(xvimagesink))); gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD (xvimagesink)),
GST_CAPS_INTERSECT_FIRST);
} else {
return
gst_caps_copy (gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD
(xvimagesink)));
}
} }
static gboolean static gboolean