From: Robert Swain Date: Wed, 29 Jun 2011 09:30:51 +0000 (+0200) Subject: streamsplitter: Fix getcaps src pad caps merge X-Git-Tag: 1.19.3~511^2~6555^2~789 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dc79c424849133d4ee1687beff40e33d472f8919;p=platform%2Fupstream%2Fgstreamer.git streamsplitter: Fix getcaps src pad caps merge Caps returned from gst_pad_peer_get_caps_reffed () may not be writable. If they are not is should cause an assertion in gst_caps_merge (), however, sometimes assertions are disabled in binary builds of -base and it's safer to just be sure the caps are writable. Also, check that the reffed caps pointer is not NULL. --- diff --git a/gst/encoding/gststreamsplitter.c b/gst/encoding/gststreamsplitter.c index c473386..c531b4c 100644 --- a/gst/encoding/gststreamsplitter.c +++ b/gst/encoding/gststreamsplitter.c @@ -268,10 +268,13 @@ resync: GstPad *srcpad = (GstPad *) tmp->data; STREAMS_UNLOCK (stream_splitter); - if (res) - gst_caps_merge (res, gst_pad_peer_get_caps_reffed (srcpad)); - else + if (res) { + GstCaps *peercaps = gst_pad_peer_get_caps_reffed (srcpad); + if (peercaps) + gst_caps_merge (res, gst_caps_make_writable (peercaps)); + } else { res = gst_pad_peer_get_caps (srcpad); + } STREAMS_LOCK (stream_splitter); if (G_UNLIKELY (cookie != stream_splitter->cookie)) {