lavc/mjpeg2jpeg: Accept more mjpeg streams as input.

Fixes ticket #5151.
This commit is contained in:
Carl Eugen Hoyos 2016-01-13 09:01:29 +01:00
parent 9ca64c31d2
commit d3fe2e0dc9
1 changed files with 5 additions and 4 deletions

View File

@ -32,6 +32,7 @@
#include "avcodec.h"
#include "jpegtables.h"
#include "mjpeg.h"
static const uint8_t jpeg_header[] = {
0xff, 0xd8, // SOI
@ -93,11 +94,11 @@ static int mjpeg2jpeg_filter(AVBitStreamFilterContext *bsfc,
av_log(avctx, AV_LOG_ERROR, "input is not MJPEG\n");
return AVERROR_INVALIDDATA;
}
if (memcmp("AVI1", buf + 6, 4)) {
av_log(avctx, AV_LOG_ERROR, "input is not MJPEG/AVI1\n");
return AVERROR_INVALIDDATA;
if (buf[2] == 0xff && buf[3] == APP0) {
input_skip = (buf[4] << 8) + buf[5] + 4;
} else {
input_skip = 2;
}
input_skip = (buf[4] << 8) + buf[5] + 4;
if (buf_size < input_skip) {
av_log(avctx, AV_LOG_ERROR, "input is truncated\n");
return AVERROR_INVALIDDATA;