[gstreamermm] Gst::Structure: fix setting glib::value field



commit b0b9270b29b65361dcd8715c414c2e67cbb2bace
Author: Marcin Kolny <marcin kolny gmail com>
Date:   Sat Aug 27 12:30:50 2016 +0200

    Gst::Structure: fix setting glib::value field

 gstreamer/src/structure.hg |    2 +-
 tests/test-structure.cc    |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/gstreamer/src/structure.hg b/gstreamer/src/structure.hg
index 8e85cd3..df96c7f 100644
--- a/gstreamer/src/structure.hg
+++ b/gstreamer/src/structure.hg
@@ -382,7 +382,7 @@ void Structure::get_field(const Glib::ustring& fieldname, Glib::Value<DataType>&
 template<typename DataType>
 void Structure::set_field(const Glib::ustring& fieldname, const Glib::Value<DataType>& value)
 {
-  set_field(fieldname, reinterpret_cast<const Glib::Value<DataType>&>(value));
+  set_field(fieldname, reinterpret_cast<const Glib::ValueBase&>(value));
 }
 
 } //namespace Gst
diff --git a/tests/test-structure.cc b/tests/test-structure.cc
index b67869e..31f5cdb 100644
--- a/tests/test-structure.cc
+++ b/tests/test-structure.cc
@@ -134,3 +134,16 @@ TEST_F(StructureTest, CreateStructureWithCustomFields)
   ASSERT_EQ(14, d1.x);
   ASSERT_EQ(85, d2.get().x);
 }
+
+TEST_F(StructureTest, UseStructureWithGlibValue)
+{
+  structure = Structure("dummy");
+  Glib::Value<int> value;
+  value.init(Glib::Value<int>::value_type());
+  value.set(123);
+  structure.set_field("field1", value);
+
+  Glib::Value<int> read_value;
+  structure.get_field("field1", read_value);
+  ASSERT_EQ(123, read_value.get());
+}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]