[FFmpeg-cvslog] lavc/mjpeg2jpeg: Accept more mjpeg streams as input.

Carl Eugen Hoyos git at videolan.org
Wed Jan 13 09:04:41 CET 2016


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Wed Jan 13 09:01:29 2016 +0100| [d3fe2e0dc991720bab723e6bc467976e0b14709a] | committer: Carl Eugen Hoyos

lavc/mjpeg2jpeg: Accept more mjpeg streams as input.

Fixes ticket #5151.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d3fe2e0dc991720bab723e6bc467976e0b14709a
---

 libavcodec/mjpeg2jpeg_bsf.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mjpeg2jpeg_bsf.c b/libavcodec/mjpeg2jpeg_bsf.c
index 71f0154..92dc3ca 100644
--- a/libavcodec/mjpeg2jpeg_bsf.c
+++ b/libavcodec/mjpeg2jpeg_bsf.c
@@ -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;



More information about the ffmpeg-cvslog mailing list