mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 03:16:14 +00:00
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.
This commit is contained in:
parent
0f4485fc66
commit
0ae4bc74ba
1 changed files with 11 additions and 2 deletions
|
@ -1056,11 +1056,20 @@ gst_camera_bin_handle_message (GstBin * bin, GstMessage * message)
|
||||||
g_mutex_unlock (&camerabin->preview_list_mutex);
|
g_mutex_unlock (&camerabin->preview_list_mutex);
|
||||||
|
|
||||||
if (location) {
|
if (location) {
|
||||||
|
GstStructure *new_structure;
|
||||||
GValue value = { 0 };
|
GValue value = { 0 };
|
||||||
|
|
||||||
g_value_init (&value, G_TYPE_STRING);
|
g_value_init (&value, G_TYPE_STRING);
|
||||||
g_value_take_string (&value, location);
|
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");
|
GST_LOG_OBJECT (bin, "received preview-image message");
|
||||||
|
|
Loading…
Reference in a new issue