gstreamer/gst
Henry Wilkes 445df0c799 gstvalue: make gst_string_unwrap less strict
Allow a string in gst_string_unwrap to include unescaped characters that
are not in GST_STRING_IS_ASCII. This extra leniency allows
gst_structure_from_string to, e.g., receive
    name, val=(string)"string with space";

Note that many gst tests, and potentially users, exploited this behaviour
by giving
    name, val="string with space";
i.e. without the (string) type specifier. This was allowed before
because, without a type specifier, the string was passed to
_priv_gst_value_parse_string with unescape set to TRUE, *rather* than
being sent to gst_string_unwrap. This caused a difference in behaviour
between strings that are or are not preceded by (string). E.g.
    name, val=(string)"string with space";
would fail, whilst
    name, val="string with space";
would not. And
    name, val=(string)"\316\261";
would produce a val="α", whereas
    name, val=(string)"\316\261";
would produce a val="316261" (a bug).

The current behaviour is to treat both of these cases the same, which is
desirable. But in order to not break potentially common usage of this
discrepancy (it was in our own tests), the best option is to make string
parsing less strict in general.

New behaviour would be for
    name, val=(string)"string with space";
to pass and give val="string with space", and
    name, val="\316\261";
would produce a val="α".

Also changed deserializing string test to expect successes where
previously a failure was expected.

In a similar way, this also effected the deserializing of GstStructure,
GstCaps, GstTagList and GstCapsFeatures. So, now
    name, val=(structure)"sub-name, sub-val=(string)\"a: \\316\\261\";";
will also pass and give sub-val="a: α". Note that the quote marks
and backslash still need to be escaped for the sub-structure, but other
characters need not be.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/303>
2021-01-19 13:25:07 +00:00
..
parse gstvalue: expose gst_value_deserialize_with_pspec() 2020-10-03 01:02:55 +02:00
printf Remove autotools build system 2019-10-13 16:10:42 +01:00
gettext.h Fix FSF address 2012-11-03 20:44:48 +00:00
glib-compat-private.h Fix FSF address 2012-11-03 20:44:48 +00:00
glib-compat.c Whenever we include windows.h, also define WIN32_LEAN_AND_MEAN 2016-02-20 10:07:42 +00:00
glib-compat.h Headers: add missing includes. 2015-08-15 13:17:07 +02:00
gst-i18n-app.h Fix FSF address 2012-11-03 20:44:48 +00:00
gst-i18n-lib.h Fix FSF address 2012-11-03 20:44:48 +00:00
gst.c gst_init: Call gst_init_static_plugins() when available 2020-10-05 16:09:10 -04:00
gst.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gst_private.h gst: Add new structure/caps/_to_string using the brackets for nesting 2020-12-03 21:46:27 -03:00
gstallocator.c Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:49:14 +02:00
gstallocator.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstatomicqueue.c introspection: add missing (nullable) annotations to return values 2014-06-26 18:56:38 +02:00
gstatomicqueue.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstbin.c bin: When removing a sink, check if the EOS status changed. 2020-10-30 03:56:02 +11:00
gstbin.h gstbin: Fix docs typo 2020-07-01 02:22:43 +10:00
gstbuffer.c gstbuffer: Mark buffer_map* @info as caller-allocates 2021-01-14 10:21:10 +01:00
gstbuffer.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstbufferlist.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstbufferlist.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstbufferpool.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstbufferpool.h gst: Fix various Since markers 2019-04-23 15:08:18 +03:00
gstbus.c gstbus: change log level of repeated messages from INFO to DEBUG 2020-12-20 23:40:43 +01:00
gstbus.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstcaps.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstcaps.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstcapsfeatures.c doc: Add some missing docstrings 2019-05-13 11:33:49 -04:00
gstcapsfeatures.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstchildproxy.c Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
gstchildproxy.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstclock.c gst/systemclock: wait on each entry individually 2020-04-16 01:26:59 +00:00
gstclock.h clock: remove documentation link on GTimeVal 2020-03-12 05:02:33 +00:00
gstcompat.h Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gstconfig.h.in gstconfig.h.in: Windows ARM64 does not allow unaligned access 2019-06-28 13:01:14 +05:30
gstcontext.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstcontext.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstcontrolbinding.c documentation: fix a number of typos 2019-10-06 11:12:11 -04:00
gstcontrolbinding.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstcontrolsource.c gst: Don't ref_sink() GstObject subclasses in instance_init/constructor 2017-05-17 10:40:37 +03:00
gstcontrolsource.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdatetime.c datetime: Make use of new g_time_zone_new_identifier() that properly handles errors 2020-12-07 12:14:50 +02:00
gstdatetime.h datetime: Add constructor for timestamps in microseconds 2019-11-25 13:31:11 +01:00
gstdebugutils.c debugutils: Skip multiqueue stats in dot dump 2020-04-21 19:53:33 +00:00
gstdebugutils.h debugutils: Make sure that GST_DEBUG_GRAPH_SHOW_VERBOSE gets the correct value in introspection 2018-11-10 19:08:52 +00:00
gstdevice.c device, elementfactory: relax floating requirement 2019-12-10 13:31:50 +01:00
gstdevice.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdevicemonitor.c devicemonitor: Stop only the already started providers 2020-10-22 11:48:05 +00:00
gstdevicemonitor.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdeviceprovider.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstdeviceprovider.h gir: Fix parser warning due to empty line 2020-12-10 14:08:53 -05:00
gstdeviceproviderfactory.c fix clang 10 warnings 2020-08-04 10:44:16 +00:00
gstdeviceproviderfactory.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdynamictypefactory.c Fix up and add various "Since" markers and other related docs fixes 2020-06-19 13:10:53 +01:00
gstdynamictypefactory.h gir: Fix parser warning due to empty line 2020-12-10 14:08:53 -05:00
gstelement.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstelement.h gir: Fix parser warning due to empty line 2020-12-10 14:08:53 -05:00
gstelementfactory.c fix clang 10 warnings 2020-08-04 10:44:16 +00:00
gstelementfactory.h elementfactory: add GST_ELEMENT_FACTORY_TYPE_HARDWARE 2019-11-02 15:11:12 +01:00
gstelementmetadata.h Headers: add missing includes. 2015-08-15 13:17:07 +02:00
gsterror.c doc: remove xml from comments 2019-05-29 21:33:42 +02:00
gsterror.h doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00
gstevent.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstevent.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstformat.c Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gstformat.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstghostpad.c ghostpad: Deprecate gst_ghost_pad_construct() 2020-06-22 12:30:48 +03:00
gstghostpad.h ghostpad: Deprecate gst_ghost_pad_construct() 2020-06-22 12:30:48 +03:00
gstinfo.c info: Warn if logging with a non-GObject object if GST_ENABLE_EXTRA_CHECKS is enabled 2020-12-02 09:35:26 +02:00
gstinfo.h Revert "gstinfo: Check threshold for category from macro" 2020-07-13 08:02:26 +02:00
gstiterator.c meson: update glib minimum version to 2.56 2020-10-15 18:12:32 +02:00
gstiterator.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstmacros.h gstmacros.h: Fix restrict definition on MSVC 2019-02-20 17:51:40 +05:30
gstmemory.c gstmemory: Mark memory_map @info as caller-allocates 2021-01-14 11:46:07 +02:00
gstmemory.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstmessage.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstmessage.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstmeta.c meta: expose API to register and create custom meta 2020-09-27 11:08:03 +00:00
gstmeta.h meta: expose API to register and create custom meta 2020-09-27 11:08:03 +00:00
gstminiobject.c fix clang 10 warnings 2020-08-04 10:44:16 +00:00
gstminiobject.h gst: Fix various Since markers 2019-04-23 15:08:18 +03:00
gstobject.c fix clang 10 warnings 2020-08-04 10:44:16 +00:00
gstobject.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpad.c gstpad: Simplify task name creation 2020-05-04 12:26:10 +00:00
gstpad.h pad: More explicitly explain how to post errors on GST_FLOW_ERROR 2020-07-16 16:34:05 -04:00
gstpadtemplate.c padtemplate: mark documentation caps as may be leaked 2020-09-30 11:59:04 +10:00
gstpadtemplate.h padtemplate: expose getters and setters "documentation caps" 2020-06-06 00:38:29 +02:00
gstparamspecs.c gst: Fix up a bunch of GIR annotations 2018-01-27 10:41:24 +00:00
gstparamspecs.h Fix up and add various "Since" markers and other related docs fixes 2020-06-19 13:10:53 +01:00
gstparse.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstparse.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpipeline.c pipeline: clarify that applications should handle bus messages 2020-12-22 14:00:02 +00:00
gstpipeline.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstplugin.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstplugin.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpluginfeature.c pluginfeature: Allow updating initial rank of plugin feature 2019-12-26 19:49:00 +00:00
gstpluginfeature.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpluginloader.c pluginloader: handle fsync interrupted by signal (EINTR) 2019-12-12 20:49:36 +01:00
gstpluginloader.h Headers: add missing includes. 2015-08-15 13:17:07 +02:00
gstpoll.c Port to hotdoc 2019-05-13 16:34:09 -04:00
gstpoll.h poll: add API to watch for POLLPRI 2018-06-08 11:53:55 -04:00
gstpreset.c Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
gstpreset.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstpromise.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstpromise.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstprotection.c protection: Release decryptors list, even if it's empty 2018-06-25 16:38:13 +01:00
gstprotection.h doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00
gstquark.c event: Add optional flags to the GAP event 2020-09-10 16:01:19 +00:00
gstquark.h event: Add optional flags to the GAP event 2020-09-10 16:01:19 +00:00
gstquery.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstquery.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstregistry.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstregistry.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstregistrybinary.c registrybinary: Also call fclose() if fflush()/fsync() failed 2020-05-06 07:33:42 +00:00
gstregistrybinary.h tracer: initial prototype for the tracing subsystem 2015-10-05 20:59:39 +02:00
gstregistrychunks.c registry: Print the pointer when printing features 2020-06-23 12:16:49 +01:00
gstregistrychunks.h dynamic types: Implement dynamic types in the registry 2016-11-02 11:21:37 +11:00
gstsample.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstsample.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gstsegment.c gstsegment: Refuse instant-rate seeks in gst_segment_do_seek() 2020-03-26 13:51:41 +00:00
gstsegment.h segment: Enhance the GstSegment structure documentation 2020-05-05 20:52:11 +00:00
gststreamcollection.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gststreamcollection.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gststreams.c streams: gst_stream_type_get_name() is not nullable 2020-12-02 14:21:46 +00:00
gststreams.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gststructure.c structure: Handle trailing comas in serialized structs 2020-12-10 13:35:17 +00:00
gststructure.h gst: Add new structure/caps/_to_string using the brackets for nesting 2020-12-03 21:46:27 -03:00
gstsystemclock.c systemclock: Use clock_nanosleep for higher accuracy 2020-11-06 11:22:14 +01:00
gstsystemclock.h Add missing colons to Since markers in the docs 2020-05-01 10:07:09 +03:00
gsttaglist.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gsttaglist.h gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gsttagsetter.c Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gsttagsetter.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gsttask.c task: Use SetThreadDescription Win32 API for setting thread name 2021-01-14 18:33:42 +00:00
gsttask.h task: Introduce gst_task_resume() API 2020-04-01 15:13:59 +00:00
gsttaskpool.c taskpool: fix docs warnings 2020-11-20 14:57:55 +00:00
gsttaskpool.h taskpool: expose new "shared" task pool implementation 2020-11-05 18:18:28 +00:00
gsttoc.c gst: Add poisoning to more types 2018-08-03 14:31:34 +03:00
gsttoc.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsttocsetter.c Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gsttocsetter.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gsttracer.c tracer: declare GstTracer API stable 2020-07-24 13:33:50 +01:00
gsttracer.h tracer: declare GstTracer API stable 2020-07-24 13:33:50 +01:00
gsttracerfactory.c Fix up and add various "Since" markers and other related docs fixes 2020-06-19 13:10:53 +01:00
gsttracerfactory.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsttracerrecord.c tracer: declare GstTracer API stable 2020-07-24 13:33:50 +01:00
gsttracerrecord.h tracer: declare GstTracer API stable 2020-07-24 13:33:50 +01:00
gsttracerutils.c tracer: declare GstTracer API stable 2020-07-24 13:33:50 +01:00
gsttracerutils.h gst: Documentation fixes 2018-04-02 12:42:30 +02:00
gsttypefind.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gsttypefind.h gir: Fix parser warning due to empty line 2020-12-10 14:08:53 -05:00
gsttypefindfactory.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gsttypefindfactory.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsturi.c gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00
gsturi.h uri: Remove leftover documentation 2021-01-13 03:05:10 +09:00
gstutils.c Add some missing nullable annotations 2020-11-05 14:22:24 +02:00
gstutils.h utils: silence g-ir-scanner warnings about float conversion macros 2020-07-26 15:34:54 +01:00
gstvalue.c gstvalue: make gst_string_unwrap less strict 2021-01-19 13:25:07 +00:00
gstvalue.h gstvalue: expose gst_value_deserialize_with_pspec() 2020-10-03 01:02:55 +02:00
gstversion.h.in gstversion: Add missing include in .in file. 2015-08-15 13:26:12 +02:00
math-compat.h math-compat.h: silence g-ir-scanner warnings 2020-07-26 15:34:54 +01:00
meson.build gst: Add non-inline methods for bindings to able to use core APIs 2021-01-11 21:54:48 +09:00