summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-08-12 12:09:45 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2009-08-12 12:11:08 +0200
commit3b4c35e319809ff8bdc00fb364e9140cb9a4c2d7 (patch)
tree3b76109ec7bc6f3056c9fe6a2777cda2ff609679
parentcb19626c8c7fc8ac1ab7e740e4ec776800dc290f (diff)
typefindfunctions: Also detect SVG by the <svg> starting tag
Not all SVG images have the DOCTYPE specified.
-rw-r--r--gst/typefind/gsttypefindfunctions.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 88b7b2130..e308826d7 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -1280,6 +1280,7 @@ static void
svg_type_find (GstTypeFind * tf, gpointer unused)
{
static const gchar svg_doctype[] = "!DOCTYPE svg";
+ static const gchar svg_tag[] = "<svg";
DataScanCtx c = { 0, NULL, 0 };
while (c.offset <= 1024) {
@@ -1289,6 +1290,9 @@ svg_type_find (GstTypeFind * tf, gpointer unused)
if (memcmp (svg_doctype, c.data, 12) == 0) {
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, SVG_CAPS);
return;
+ } else if (memcmp (svg_tag, c.data, 4) == 0) {
+ gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY, SVG_CAPS);
+ return;
}
data_scan_ctx_advance (tf, &c, 1);
}