diff options
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-01-10 17:48:44 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-01-10 18:29:21 +0000 |
commit | b794f78d267737c3c4b8ce58370c3182d403a28a (patch) | |
tree | 95fe3feaa37a924a5b690868d13acdf073c4fe04 | |
parent | 35df9d2ad9b3787d4934041d66adbeee1ae4d152 (diff) |
discoverer: fix potential caps leak
in last else chunk.
-rw-r--r-- | gst-libs/gst/pbutils/gstdiscoverer.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c index 581739e9a..a7c49681b 100644 --- a/gst-libs/gst/pbutils/gstdiscoverer.c +++ b/gst-libs/gst/pbutils/gstdiscoverer.c @@ -908,24 +908,21 @@ parse_stream_topology (GstDiscoverer * dc, const GstStructure * topology, /* We sometimes get an extra sub-stream from the parser. If this is * the case, we just replace the parent caps with this stream's caps * since they might contain more information */ - gst_caps_unref (parent->caps); - parent->caps = caps; + gst_caps_replace (&parent->caps, caps); parse_stream_topology (dc, st, parent); add_to_list = FALSE; - } else if (child_is_raw_stream (parent->caps, caps)) { /* This is the "raw" stream corresponding to the parent. This * contains more information than the parent, tags etc. */ parse_stream_topology (dc, st, parent); add_to_list = FALSE; - gst_caps_unref (caps); - } else { GstDiscovererStreamInfo *next = parse_stream_topology (dc, st, NULL); res->next = next; next->previous = res; } + gst_caps_unref (caps); } } |