Skip to content

GstValue: clean up serialization and deserialization

Henry Wilkes requested to merge hwilkes/gstreamer:clean_up_serialization into master

No longer call _priv_gst_value_parse_string with unescape set to TRUE before passing a value to gst_value_deserialize in _priv_gst_value_parse_value. This latter function is called by gst_structure_from_string and gst_caps_from_string.

When gst_structure_to_string and gst_caps_to_string are called, no escaping is performed after calling gst_value_serialize. Therefore, by unescaping the value string, we were introducing an additional operation that was not performed by the original *_to_string functions. In particular, this has meant that the derialization functions for many non-basic types are incomplete reverses of the corresponding serialization function (i.e., if you pipe the output of the serialization function into the deserialization function it could fail) because they have to compensate for this additional escaping operation, when really this should be the domain of the deserialization functions instead.

Correspondingly changed a few deserialization functions.

Also added some tests for the changes.

Fixes #452 (closed)

Edited by Thibault Saunier

Merge request reports