[FFmpeg-devel] [PATCH 3/3] avformat/microdvd: skip BOM properly
wm4
nfxjfg at googlemail.com
Mon Feb 17 21:49:36 CET 2014
The BOM is already skipped in the probe function, but not the header
read function. This could cause the header to be misparsed (not reading
the FPS line).
---
libavformat/microdvddec.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/libavformat/microdvddec.c b/libavformat/microdvddec.c
index 51f7f48..0a301b6 100644
--- a/libavformat/microdvddec.c
+++ b/libavformat/microdvddec.c
@@ -77,17 +77,23 @@ static int microdvd_read_header(AVFormatContext *s)
MicroDVDContext *microdvd = s->priv_data;
AVStream *st = avformat_new_stream(s, NULL);
int i = 0;
- char line[MAX_LINESIZE];
+ char line_buf[MAX_LINESIZE];
int has_real_fps = 0;
if (!st)
return AVERROR(ENOMEM);
while (!url_feof(s->pb)) {
- char *p = line;
+ char *p;
AVPacket *sub;
int64_t pos = avio_tell(s->pb);
- int len = ff_get_line(s->pb, line, sizeof(line));
+ int len = ff_get_line(s->pb, line_buf, sizeof(line_buf));
+ const char *bom = "\xEF\xBB\xBF";
+ char *line = line_buf;
+
+ if (!strncmp(line, bom, 3))
+ line += 3;
+ p = line;
if (!len)
break;
--
1.9.0.rc3
More information about the ffmpeg-devel
mailing list