From: Aurélien Zanelli Date: Sat, 14 May 2016 17:02:57 +0000 (+0200) Subject: video-track: don't leak restriction caps in _sync_capsfilter_with_track() X-Git-Tag: 1.19.3~493^2~997 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7529e25b49f70c93b55adc6cc2c4548a3231d367;p=platform%2Fupstream%2Fgstreamer.git video-track: don't leak restriction caps in _sync_capsfilter_with_track() https://bugzilla.gnome.org/show_bug.cgi?id=766450 --- diff --git a/ges/ges-video-track.c b/ges/ges-video-track.c index 44fffc54fb..6064a80471 100644 --- a/ges/ges-video-track.c +++ b/ges/ges-video-track.c @@ -42,14 +42,15 @@ _sync_capsfilter_with_track (GESTrack * track, GstElement * capsfilter) GstStructure *structure; g_object_get (track, "restriction-caps", &restriction, NULL); - if (restriction && gst_caps_get_size (restriction) > 0) { - - structure = gst_caps_get_structure (restriction, 0); - if (!gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d)) - return; - } else { + if (restriction == NULL) return; - } + + if (gst_caps_get_size (restriction) == 0) + goto done; + + structure = gst_caps_get_structure (restriction, 0); + if (!gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d)) + goto done; caps = gst_caps_new_simple ("video/x-raw", "framerate", GST_TYPE_FRACTION, fps_n, @@ -57,6 +58,9 @@ _sync_capsfilter_with_track (GESTrack * track, GstElement * capsfilter) g_object_set (capsfilter, "caps", caps, NULL); gst_caps_unref (caps); + +done: + gst_caps_unref (restriction); } static void