From 0ae4bc74ba3cedcb59b92804d5fb798a9b097a55 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Fri, 30 May 2014 02:10:25 -0300 Subject: [PATCH] camerabin: fix structure handling in preview message Avoid trying to modify the message structure as it isn't mutable. Use a copy and post a new message if necessary. Fixes failing tests. --- gst/camerabin2/gstcamerabin2.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gst/camerabin2/gstcamerabin2.c b/gst/camerabin2/gstcamerabin2.c index e651a35..c77585a 100644 --- a/gst/camerabin2/gstcamerabin2.c +++ b/gst/camerabin2/gstcamerabin2.c @@ -1056,11 +1056,20 @@ gst_camera_bin_handle_message (GstBin * bin, GstMessage * message) g_mutex_unlock (&camerabin->preview_list_mutex); if (location) { + GstStructure *new_structure; GValue value = { 0 }; + g_value_init (&value, G_TYPE_STRING); g_value_take_string (&value, location); - gst_structure_take_value ((GstStructure *) structure, "location", - &value); + + /* need to do a copy because the structure isn't mutable */ + new_structure = gst_structure_copy (structure); + gst_structure_take_value (new_structure, "location", &value); + + gst_message_unref (message); + message = + gst_message_new_element (GST_OBJECT_CAST (camerabin), + new_structure); } GST_LOG_OBJECT (bin, "received preview-image message"); -- 2.7.4