[FFmpeg-devel] [PATCH] mjpegdec: handle lowres with AVID cropping
James Almer
jamrial at gmail.com
Tue Mar 2 22:20:16 EET 2021
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.
More information about the ffmpeg-devel
mailing list