From 74267333a10e0be4355221d7be22dab73bd7184c Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sat, 11 Feb 2017 11:47:22 +0100 Subject: avformat/mpl2dec: skip BOM when probing Fixes #5442. Signed-off-by: Paul B Mahol --- libavformat/mpl2dec.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavformat/mpl2dec.c b/libavformat/mpl2dec.c index 59589d5b5e..dfcdf5a564 100644 --- a/libavformat/mpl2dec.c +++ b/libavformat/mpl2dec.c @@ -23,6 +23,8 @@ * MPL2 subtitles format demuxer */ +#include "libavutil/intreadwrite.h" + #include "avformat.h" #include "internal.h" #include "subtitles.h" @@ -39,6 +41,9 @@ static int mpl2_probe(AVProbeData *p) const unsigned char *ptr = p->buf; const unsigned char *ptr_end = ptr + p->buf_size; + if (AV_RB24(ptr) == 0xefbbbf) + ptr += 3; + for (i = 0; i < 2; i++) { if (sscanf(ptr, "[%"SCNd64"][%"SCNd64"]%c", &start, &end, &c) != 3 && sscanf(ptr, "[%"SCNd64"][]%c", &start, &c) != 2) @@ -83,6 +88,9 @@ static int mpl2_read_header(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE; st->codecpar->codec_id = AV_CODEC_ID_MPL2; + if (avio_rb24(s->pb) != 0xefbbbf) + avio_seek(s->pb, -3, SEEK_CUR); + while (!avio_feof(s->pb)) { char line[4096]; char *p = line; -- cgit v1.2.3