summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2016-09-23 15:49:21 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2016-09-23 16:48:34 -0400
commit31d0a2c1eaff8e4824b47bbaa343297563712576 (patch)
tree993c870bbb2b38f057213dad30a7b1154341cc26
parentf6b270d8eb0583940b59af35ea8552876234d335 (diff)
downloadgstreamer-plugins-bad-31d0a2c1eaff8e4824b47bbaa343297563712576.tar.gz
waylandsink: Don't leak GValues in getcaps
-rw-r--r--ext/wayland/gstwaylandsink.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
index bc32e1c7d..e896c7fef 100644
--- a/ext/wayland/gstwaylandsink.c
+++ b/ext/wayland/gstwaylandsink.c
@@ -397,17 +397,18 @@ gst_wayland_sink_get_caps (GstBaseSink * bsink, GstCaps * filter)
enum wl_shm_format fmt;
g_value_init (&list, GST_TYPE_LIST);
- g_value_init (&value, G_TYPE_STRING);
formats = sink->display->shm_formats;
for (i = 0; i < formats->len; i++) {
+ g_value_init (&value, G_TYPE_STRING);
fmt = g_array_index (formats, uint32_t, i);
- g_value_set_string (&value, gst_wl_shm_format_to_string (fmt));
- gst_value_list_append_value (&list, &value);
+ g_value_set_static_string (&value, gst_wl_shm_format_to_string (fmt));
+ gst_value_list_append_and_take_value (&list, &value);
}
caps = gst_caps_make_writable (caps);
- gst_structure_set_value (gst_caps_get_structure (caps, 0), "format", &list);
+ gst_structure_take_value (gst_caps_get_structure (caps, 0), "format",
+ &list);
GST_DEBUG_OBJECT (sink, "display caps: %" GST_PTR_FORMAT, caps);
}