X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fmjpeg_parser.c;h=16a5902c7cca6ea4b39337fd1f6a183e30d133a1;hb=cb9dbc60db1847fcb594684b92334da54ea8757e;hp=07a6b2bdc653235e5c5517076705276dab36f50f;hpb=03210fe138f3b3bd7f5272fe29aca810cf517329;p=ffmpeg diff --git a/libavcodec/mjpeg_parser.c b/libavcodec/mjpeg_parser.c index 07a6b2bdc65..16a5902c7cc 100644 --- a/libavcodec/mjpeg_parser.c +++ b/libavcodec/mjpeg_parser.c @@ -50,7 +50,7 @@ static int find_frame_end(MJPEGParserContext *m, const uint8_t *buf, int buf_siz for(i=0; i=0xFFC00000 && state<=0xFFFEFFFF){ - if(state>=0xFFD80000 && state<=0xFFD8FFFF){ + if(state>=0xFFD8FFC0 && state<=0xFFD8FFFF){ i++; vop_found=1; break; @@ -76,12 +76,14 @@ static int find_frame_end(MJPEGParserContext *m, const uint8_t *buf, int buf_siz for(; i=0xFFC00000 && state<=0xFFFEFFFF){ - if(state>=0xFFD80000 && state<=0xFFD8FFFF){ + if(state>=0xFFD8FFC0 && state<=0xFFD8FFFF){ pc->frame_start_found=0; pc->state=0; return i-3; } else if(state<0xFFD00000 || state>0xFFD9FFFF){ m->size= (state&0xFFFF)-1; + if (m->size >= 0xF000) + m->size = 0; } } if(m->size>0){ @@ -126,7 +128,7 @@ static int jpeg_parse(AVCodecParserContext *s, } -AVCodecParser ff_mjpeg_parser = { +const AVCodecParser ff_mjpeg_parser = { .codec_ids = { AV_CODEC_ID_MJPEG, AV_CODEC_ID_JPEGLS }, .priv_data_size = sizeof(MJPEGParserContext), .parser_parse = jpeg_parse,