[FFmpeg-cvslog] avcodec/mjpegenc: allow encoding amv with height % 16 != 0 when strict -1 is set

Michael Niedermayer git at videolan.org
Sun Jun 1 20:05:40 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Jun  1 19:53:04 2014 +0200| [d41a4a765b702f89d1f757d9c96e25be8fa77016] | committer: Michael Niedermayer

avcodec/mjpegenc: allow encoding amv with height % 16 != 0 when strict -1 is set

This should make it simpler for users to test if such videos work

Suggested-by: carl
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/mjpegenc.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c
index 7a87f24..d76e9ba 100644
--- a/libavcodec/mjpegenc.c
+++ b/libavcodec/mjpegenc.c
@@ -539,11 +539,13 @@ static int amv_encode_picture(AVCodecContext *avctx, AVPacket *pkt,
     if(s->avctx->flags & CODEC_FLAG_EMU_EDGE)
         return AVERROR(EINVAL);
 
-    if (avctx->height & 15) {
+    if ((avctx->height & 15) && avctx->strict_std_compliance > FF_COMPLIANCE_UNOFFICIAL) {
         av_log(avctx, AV_LOG_ERROR,
-               "Height must be a multiple of 16, also note, "
-               "if you have a AMV sample thats mod 16 != 0, please contact us\n");
-        return AVERROR(EINVAL);
+               "Heights which are not a multiple of 16 might fail with some decoders, "
+               "use vstrict=-1 / -strict -1 to use %d anyway.\n", avctx->height);
+        av_log(avctx, AV_LOG_WARNING, "If you have a device that plays AMV videos, please test if videos "
+               "with such heights work with it and report your findings to ffmpeg-devel at ffmpeg.org\n");
+        return AVERROR_EXPERIMENTAL;
     }
 
     pic = av_frame_clone(pic_arg);



More information about the ffmpeg-cvslog mailing list