summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sf.net>2009-06-26 13:09:27 +0300
committerStefan Kost <ensonic@users.sf.net>2009-06-26 18:36:24 +0300
commit4ab9f800a8fd757e44d511fe8265b99ef69b3532 (patch)
tree2c8cf75ce24f58674e87e796801707f3cf13f30e
parent024b44b090688e2e1b9726dadb6d21c6e853c936 (diff)
downloadgst-plugins-bad-4ab9f800a8fd757e44d511fe8265b99ef69b3532.tar.gz
gst-plugins-bad-4ab9f800a8fd757e44d511fe8265b99ef69b3532.tar.bz2
gst-plugins-bad-4ab9f800a8fd757e44d511fe8265b99ef69b3532.zip
camerabin: don't leak messages and element refs in preview
-rw-r--r--gst/camerabin/camerabinpreview.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/gst/camerabin/camerabinpreview.c b/gst/camerabin/camerabinpreview.c
index b64b2143..9b12bbac 100644
--- a/gst/camerabin/camerabinpreview.c
+++ b/gst/camerabin/camerabinpreview.c
@@ -183,7 +183,7 @@ gst_camerabin_preview_convert (GstCameraBin * camera, GstBuffer * buf)
if (!src || !sink) {
GST_WARNING ("pipeline doesn't have src / sink elements");
- goto no_pipeline;
+ goto missing_elements;
}
g_object_set (src, "size", (gint64) GST_BUFFER_SIZE (buf),
@@ -234,6 +234,7 @@ gst_camerabin_preview_convert (GstCameraBin * camera, GstBuffer * buf)
g_return_val_if_reached (NULL);
}
}
+ gst_message_unref (msg);
} else {
g_warning ("Could not make preview image: %s", "timeout during conversion");
result = NULL;
@@ -245,9 +246,21 @@ gst_camerabin_preview_convert (GstCameraBin * camera, GstBuffer * buf)
GST_BUFFER_FLAGS (buf) = bflags;
+done:
+ if (src)
+ gst_object_unref (src);
+ if (sink)
+ gst_object_unref (sink);
+
return result;
/* ERRORS */
+missing_elements:
+ {
+ g_warning ("Could not make preview image: %s",
+ "missing elements in pipeline (unknown error)");
+ goto done;
+ }
no_pipeline:
{
g_warning ("Could not make preview image: %s",