playsink: fix caps negotiation through the new convenience bins

The bins' getcaps was bypassing the inner elements, and thus
failing to account for the caps transformations they allow,
which caused YUV video pipelines to fail with ximagesink, which
does not support YUV, even though the convenience bin includes
a colorspace converter for just this purpose.

https://bugzilla.gnome.org/show_bug.cgi?id=660816
This commit is contained in:
Vincent Penquerc'h 2011-10-06 15:38:49 +01:00 committed by Sebastian Dröge
parent 76b29367e7
commit 8d617f4037
2 changed files with 2 additions and 8 deletions

View file

@ -351,10 +351,7 @@ gst_play_sink_audio_convert_getcaps (GstPad * pad)
GstPad *otherpad, *peer;
GST_PLAY_SINK_AUDIO_CONVERT_LOCK (self);
if (pad == self->srcpad)
otherpad = gst_object_ref (self->sinkpad);
else
otherpad = gst_object_ref (self->srcpad);
otherpad = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (pad));
GST_PLAY_SINK_AUDIO_CONVERT_UNLOCK (self);
peer = gst_pad_get_peer (otherpad);

View file

@ -331,10 +331,7 @@ gst_play_sink_video_convert_getcaps (GstPad * pad)
GstPad *otherpad, *peer;
GST_PLAY_SINK_VIDEO_CONVERT_LOCK (self);
if (pad == self->srcpad)
otherpad = gst_object_ref (self->sinkpad);
else
otherpad = gst_object_ref (self->srcpad);
otherpad = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (pad));
GST_PLAY_SINK_VIDEO_CONVERT_UNLOCK (self);
peer = gst_pad_get_peer (otherpad);