avformat/img2dec: fix unable to find svg format when the svg resources start with "<svg" or "<!--"

svg is xml, but <?xml is not required,
it can start with <svg and can have multiple empty lines,
or start with <!-- include some comments,
but must first line if start with <?xml.

Signed-off-by: Wang Yaqiang <wangyaqiang03@kuaishou.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
Wang Yaqiang 2023-03-09 17:29:12 +08:00 committed by Marton Balint
parent 1a4560ce4e
commit 81bc7bc52e

View File

@ -964,8 +964,13 @@ static int svg_probe(const AVProbeData *p)
{
const uint8_t *b = p->buf;
const uint8_t *end = p->buf + p->buf_size;
if (memcmp(p->buf, "<?xml", 5))
while (b < end && av_isspace(*b))
b++;
if (b >= end - 5)
return 0;
if (!memcmp(b, "<svg", 4))
return AVPROBE_SCORE_EXTENSION + 1;
if (memcmp(p->buf, "<?xml", 5) && memcmp(b, "<!--", 4))
return 0;
while (b < end) {
int inc = ff_subtitles_next_line(b);