[FFmpeg-devel] [PATCH] avformat/mpl2dec: skip BOM when probing
Clément Bœsch
u at pkh.me
Sun Feb 12 13:57:49 EET 2017
On Sun, Feb 12, 2017 at 12:51:11PM +0100, Paul B Mahol wrote:
> On 2/11/17, Clement Boesch <u at pkh.me> wrote:
> > On Sat, Feb 11, 2017 at 11:56:07AM +0100, Paul B Mahol wrote:
> >> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> >> ---
> >> libavformat/mpl2dec.c | 8 ++++++++
> >> 1 file changed, 8 insertions(+)
> >>
> >> diff --git a/libavformat/mpl2dec.c b/libavformat/mpl2dec.c
> >> index 59589d5..0e30cb0 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)
> >> @@ -94,6 +99,9 @@ static int mpl2_read_header(AVFormatContext *s)
> >> if (!len)
> >> break;
> >>
> >> + if (AV_RB24(p) == 0xefbbbf)
> >> + p += 3;
> >> +
> >
> > The BOM is supposed to be at the beginning of the file, not at every line.
> > The check should be outside the while loop.
> >
> > --
> > Clement B.
> >
>
> Removed check which was there, it appears to still work.
Doesn't it skip the first event? Or maybe your libc skips it in sscanf?
--
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20170212/479bb55c/attachment.sig>
More information about the ffmpeg-devel
mailing list