From: Wang Yaqiang <[email protected]> svg is xml, but <?xml is not required, it can start with <svg and can have multiple empty lines.
Signed-off-by: Wang Yaqiang <[email protected]> --- libavformat/img2dec.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index 5a63d7c81d..448a574b59 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -25,6 +25,7 @@ #define _DEFAULT_SOURCE #define _BSD_SOURCE #include <sys/stat.h> +#include <ctype.h> #include "libavutil/avstring.h" #include "libavutil/log.h" #include "libavutil/opt.h" @@ -964,18 +965,19 @@ 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 && b < end && isspace(*b)) b++; + if (b >= end - 5) return 0; + if (memcmp(p->buf, "<?xml", 5) && memcmp(b, "<svg", 4)) return 0; while (b < end) { int inc = ff_subtitles_next_line(b); if (!inc) break; + if (!memcmp(b, "<svg", 4)) + return AVPROBE_SCORE_EXTENSION + 1; b += inc; if (b >= end - 4) return 0; - if (!memcmp(b, "<svg", 4)) - return AVPROBE_SCORE_EXTENSION + 1; } return 0; } -- 2.39.2 _______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
