On 3/1/2021 6:13 AM, Anton Khirnov wrote:
---
  libavcodec/mjpegdec.c | 14 +++++++-------
  1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c
index 79c7d6e6cf..20f310fd70 100644
--- a/libavcodec/mjpegdec.c
+++ b/libavcodec/mjpegdec.c
@@ -445,16 +445,16 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
          if (ret < 0)
              return ret;
+ if ((s->avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
+             s->avctx->codec_tag == MKTAG('A', 'V', 'D', 'J')) &&
+            s->orig_height < height)
+            s->avctx->height = AV_CEIL_RSHIFT(s->orig_height, 
s->avctx->lowres);
+
          s->first_picture = 0;
      } else {
          size_change = 0;
      }
- if ((s->avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
-         s->avctx->codec_tag == MKTAG('A', 'V', 'D', 'J')) &&
-        s->orig_height < s->avctx->height)
-        s->avctx->height = s->orig_height;
-
      if (s->avctx->codec_id == AV_CODEC_ID_SMVJPEG) {
          s->avctx->height = s->avctx->coded_height / s->smv_frames_per_jpeg;
          if (s->avctx->height <= 0)
@@ -2863,8 +2863,8 @@ the_end:
      if ((avctx->codec_tag == MKTAG('A', 'V', 'R', 'n') ||
           avctx->codec_tag == MKTAG('A', 'V', 'D', 'J')) &&
          avctx->coded_height > s->orig_height) {
-        frame->height   = avctx->coded_height;
-        frame->crop_top = frame->height - s->orig_height;
+        frame->height   = AV_CEIL_RSHIFT(avctx->coded_height, avctx->lowres);
+        frame->crop_top = frame->height - avctx->height;
      }
ret = 0;

Seems to work, so LGTM.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to