[FFmpeg-devel] [PATCH]lavf/img2dec: Auto-detect svg images
Carl Eugen Hoyos
ceffmpeg at gmail.com
Mon Oct 2 12:42:02 EEST 2017
2017-10-02 7:52 GMT+02:00 Clément Bœsch <u at pkh.me>:
> On Mon, Oct 02, 2017 at 01:20:15AM +0200, Carl Eugen Hoyos wrote:
>> Hi!
>>
>> Attached patch implements auto-detection of svg images.
>>
>> Please review, Carl Eugen
>
>> From f06137f38f166740565e58d5c7c88777508f59ec Mon Sep 17 00:00:00 2001
>> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
>> Date: Mon, 2 Oct 2017 01:13:29 +0200
>> Subject: [PATCH] lavf/img2dec: Auto-detect svg images.
>>
>> ---
>> libavformat/img2dec.c | 17 +++++++++++++++--
>> 1 file changed, 15 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
>> index 19cae87..468c820 100644
>> --- a/libavformat/img2dec.c
>> +++ b/libavformat/img2dec.c
>> @@ -34,6 +34,7 @@
>> #include "internal.h"
>> #include "img2.h"
>> #include "libavcodec/mjpeg.h"
>> +#include "subtitles.h"
>>
>> #if HAVE_GLOB
>> /* Locally define as 0 (bitwise-OR no-op) any missing glob options that
>> @@ -875,8 +876,20 @@ static int sunrast_probe(AVProbeData *p)
>>
>> static int svg_probe(AVProbeData *p)
>> {
>> - if (av_match_ext(p->filename, "svg") || av_match_ext(p->filename, "svgz"))
>> - return AVPROBE_SCORE_EXTENSION + 1;
>> + const uint8_t *b = p->buf;
>> + const uint8_t *end = p->buf + p->buf_size;
>> + if (memcmp(p->buf, "<?xml", 5))
>> + return 0;
>> + while (b < end) {
>> + b += ff_subtitles_next_line(b);
>> + if (b >= end)
>> + return 0;
>
>> + if (!strstr(b, "<!DOCTYPE "))
>> + continue;
>
> at least the svg from inkscape do not have a doctype
Wrong check, thank you.
>> + b += 9;
>> + if (strstr(b, "svg"))
>> + return AVPROBE_SCORE_MAX;
>> + }
>
> don't you want to keep an extension fallback?
That's done by the image2 demuxer.
> also, I would guess strstr() is going to be slow, so maybe
> just look for a line starting with "<svg".
Done, thank you.
New patch attached, Carl Eugen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-lavf-img2dec-Auto-detect-svg-images.patch
Type: text/x-patch
Size: 1264 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171002/329d7743/attachment.bin>
More information about the ffmpeg-devel
mailing list