gentlsrc: allow local or Local url, and show ZIP/XML file location in debug output

This commit is contained in:
Joshua M. Doe 2021-06-04 10:51:17 -04:00
parent 63731a3b6f
commit 872988255e

View File

@ -1185,7 +1185,7 @@ gst_gentlsrc_start (GstBaseSrc * bsrc)
GST_ELEMENT_ERROR (src, RESOURCE, TOO_LAZY, GST_ELEMENT_ERROR (src, RESOURCE, TOO_LAZY,
("file url not supported yet"), (NULL)); ("file url not supported yet"), (NULL));
goto error; goto error;
} else if (g_str_has_prefix (url, "local")) { } else if (g_ascii_strncasecmp (url, "local", 5) == 0) {
GError *err = NULL; GError *err = NULL;
GMatchInfo *matchInfo; GMatchInfo *matchInfo;
GRegex *regex; GRegex *regex;
@ -1196,7 +1196,7 @@ gst_gentlsrc_start (GstBaseSrc * bsrc)
regex = regex =
g_regex_new g_regex_new
("local:(?:///)?(?<filename>[^;]+);(?<address>[^;]+);(?<length>[^?]+)(?:[?]SchemaVersion=([^&]+))?", ("[lL]ocal:(?:///)?(?<filename>[^;]+);(?<address>[^;]+);(?<length>[^?]+)(?:[?]SchemaVersion=([^&]+))?",
(GRegexCompileFlags) 0, (GRegexMatchFlags) 0, &err); (GRegexCompileFlags) 0, (GRegexMatchFlags) 0, &err);
if (!regex) { if (!regex) {
goto error; goto error;
@ -1225,6 +1225,7 @@ gst_gentlsrc_start (GstBaseSrc * bsrc)
gchar *xml; gchar *xml;
zipfilepath = g_build_filename (g_get_tmp_dir (), filename, NULL); zipfilepath = g_build_filename (g_get_tmp_dir (), filename, NULL);
GST_DEBUG_OBJECT (src, "Writing XML ZIP file to %s", zipfilepath);
if (!g_file_set_contents (zipfilepath, buf, len, &err)) { if (!g_file_set_contents (zipfilepath, buf, len, &err)) {
GST_ELEMENT_ERROR (src, RESOURCE, TOO_LAZY, GST_ELEMENT_ERROR (src, RESOURCE, TOO_LAZY,
("Failed to write zipped XML to %s", zipfilepath), (NULL)); ("Failed to write zipped XML to %s", zipfilepath), (NULL));
@ -1270,6 +1271,7 @@ gst_gentlsrc_start (GstBaseSrc * bsrc)
g_free (zipfilepath); g_free (zipfilepath);
zipfilepath = g_build_filename (g_get_tmp_dir (), xmlfilename, NULL); zipfilepath = g_build_filename (g_get_tmp_dir (), xmlfilename, NULL);
GST_DEBUG_OBJECT (src, "Writing XML file to %s", zipfilepath);
g_file_set_contents (zipfilepath, xml, fileinfo.uncompressed_size, g_file_set_contents (zipfilepath, xml, fileinfo.uncompressed_size,
&err); &err);
g_free (zipfilepath); g_free (zipfilepath);