diff --git a/subprojects/gstreamer/plugins/elements/gsttypefindelement.c b/subprojects/gstreamer/plugins/elements/gsttypefindelement.c index 84e60a9c68..41dedb27fe 100644 --- a/subprojects/gstreamer/plugins/elements/gsttypefindelement.c +++ b/subprojects/gstreamer/plugins/elements/gsttypefindelement.c @@ -803,6 +803,8 @@ gst_type_find_get_extension (GstTypeFindElement * typefind, GstPad * pad) gchar *uri, *result, *path, *base_path, *find; GstUri *gst_uri; + base_path = NULL; + query = gst_query_new_uri (); /* try getting the caps with an uri query and from the extension */ @@ -813,6 +815,11 @@ gst_type_find_get_extension (GstTypeFindElement * typefind, GstPad * pad) if (uri == NULL) goto no_uri; + /* data URIs paths are opaque and do not semantically represent a + filesystem-like resource path, so skip URI parsing for this case. */ + if (g_str_has_prefix (uri, "data:")) + goto no_extension; + GST_DEBUG_OBJECT (typefind, "finding extension of %s", uri); gst_uri = gst_uri_from_string (uri);