From patchwork Wed Oct 17 19:01:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Carl Eugen Hoyos X-Patchwork-Id: 10699 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id AFB51446E4F for ; Wed, 17 Oct 2018 22:01:32 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 072C468A621; Wed, 17 Oct 2018 22:01:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it1-f194.google.com (mail-it1-f194.google.com [209.85.166.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 84E8C68A4DB for ; Wed, 17 Oct 2018 22:01:07 +0300 (EEST) Received: by mail-it1-f194.google.com with SMTP id i76-v6so3889599ita.3 for ; Wed, 17 Oct 2018 12:01:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=Q8jBGfe/v52UWEHdGh0JxYaPL013mxpeWjsgtn/Vxps=; b=XRRoGgM7F90oaGmgb/SFOmJF3c1PllcnGejWNLXOrnKVa3xygXVeZcH2T1GKIge87/ 0tFiU5RW0AwL1frLXlqETNR39KTOVTGuN9n3DqpgcWPmUsBAmxiT51k1c2v3GemlR64Z 4LzDX/+RJrVynZ39o5UzoFd6qhAdH35SfcIjF6QB/N/z4Loz9FX++hnpIbc9R0j4SZ9O iyq+VdnnjDpkIArgjqRurN63s5LWT916YgbLEdO2JCMBnAP4Q/zn7whRdYgpgMgynBpO LRTLOFJvhNWMkUgaMyPTqWW+WRFG32NviXwV1UHsWL/Odnr/lQLH2PESgNZ9rtGgejoC HJoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=Q8jBGfe/v52UWEHdGh0JxYaPL013mxpeWjsgtn/Vxps=; b=Tmtat/4zdIlKcfTJZsm4UwH7cxtZDG5ruJLG8Zl17tovuJfF9oB3bbgsZ3IrhptI16 GA5xbcveND9VFKQJKk6nj7jcwErmtDnR4o6i45syFdn7XrbX9tTNiyi9LYb7Yg4ry9aG bw5UZWashCaUG8s+hznn2yV8c+Aoyoy4P3LJPDJiAQgs77RR6lHlbUSQzwG5RYCwZIDJ OmQ/R2JvAxonOFlDhqrVku0OtCZyU71pr5Kic+PYvoJDhS1GEViofgMJiLtec8fDjZq/ ouFhJV+dQJZGReew0UJE0IkzgtaUuTu15YbZDaKxB/UB+Oj+hKXKGVogu8BS2Iz6FkYG eqaw== X-Gm-Message-State: ABuFfoiqBtiv9+ZLkseCWXlNDuKwD8HcVteAsAGeWOeWO3LMcaArBmH+ NWvyQKNCQEk/jerILEqJC8+XZBlGZLQcz92gd5EcnQ== X-Google-Smtp-Source: ACcGV62duJfJ0ht4DPWPChaZBGC9lPwZuGRr+etfME3rKQSgcKWLD8/W2rFnXvHZgR6CxSaJu7HJ3Sin8lMf2Cc8yVY= X-Received: by 2002:a24:d147:: with SMTP id w68-v6mr2683891itg.149.1539802891569; Wed, 17 Oct 2018 12:01:31 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a02:c489:0:0:0:0:0 with HTTP; Wed, 17 Oct 2018 12:01:30 -0700 (PDT) In-Reply-To: <20181017155125.GV26838@michaelspb> References: <20181017155125.GV26838@michaelspb> From: Carl Eugen Hoyos Date: Wed, 17 Oct 2018 21:01:30 +0200 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH]lavc/mjpegdec: Support 2:3 subsampling X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" 2018-10-17 17:51 GMT+02:00, Michael Niedermayer : > On Wed, Oct 17, 2018 at 12:22:51AM +0200, Carl Eugen Hoyos wrote: >> Hi! >> >> Attached patch allows decoding the sample from ticket #7495. >> >> Please review, Carl Eugen > >> mjpegdec.c | 17 ++++++++++++++--- >> 1 file changed, 14 insertions(+), 3 deletions(-) >> 8f0d03a533b42c35f2bd8d5bdae4dabd24b18f4c >> 0001-lavc-mjpegdec-Support-2-3-subsampling.patch >> From 0e9d2ec4e0cba36ba03a6b7470a707c0a3f88b8c Mon Sep 17 00:00:00 2001 >> From: Carl Eugen Hoyos >> Date: Wed, 17 Oct 2018 00:21:26 +0200 >> Subject: [PATCH] lavc/mjpegdec: Support 2:3 subsampling. >> >> Fixes ticket #7495. >> --- >> libavcodec/mjpegdec.c | 17 ++++++++++++++--- >> 1 file changed, 14 insertions(+), 3 deletions(-) > > breaks > make -j12 fate-tdsc New patch attached, please review. Thank you, Carl Eugen From 2a8917ad5f82184c10e41be776bf3d138b676a85 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Wed, 17 Oct 2018 21:00:37 +0200 Subject: [PATCH] lavc/mjpegdec: Support 2:3 subsampling. Fixes ticket #7495. --- libavcodec/mjpegdec.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 35ee10d..cfc5de8 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -594,6 +594,7 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) s->avctx->color_range = s->cs_itu601 ? AVCOL_RANGE_MPEG : AVCOL_RANGE_JPEG; break; case 0x22111100: + case 0x23111100: case 0x42111100: case 0x24111100: if (s->bits <= 8) s->avctx->pix_fmt = s->cs_itu601 ? AV_PIX_FMT_YUV420P : AV_PIX_FMT_YUVJ420P; @@ -607,6 +608,10 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s) if (s->bits > 8) goto unk_pixfmt; s->upscale_v[1] = s->upscale_v[2] = 1; + } else if (pix_fmt_id == 0x23111100) { + if (s->bits > 8) + goto unk_pixfmt; + s->upscale_v[1] = s->upscale_v[2] = 2; } break; case 0x41111100: @@ -2592,9 +2597,9 @@ the_end: } dst = &((uint8_t *)s->picture_ptr->data[p])[(h - 1) * s->linesize[p]]; for (i = h - 1; i; i--) { - uint8_t *src1 = &((uint8_t *)s->picture_ptr->data[p])[i / 2 * s->linesize[p]]; - uint8_t *src2 = &((uint8_t *)s->picture_ptr->data[p])[(i + 1) / 2 * s->linesize[p]]; - if (src1 == src2 || i == h - 1) { + uint8_t *src1 = &((uint8_t *)s->picture_ptr->data[p])[i * s->upscale_v[p] / (s->upscale_v[p] + 1) * s->linesize[p]]; + uint8_t *src2 = &((uint8_t *)s->picture_ptr->data[p])[(i + 1) * s->upscale_v[p] / (s->upscale_v[p] + 1) * s->linesize[p]]; + if (s->upscale_v[p] != 2 && (src1 == src2 || i == h - 1)) { memcpy(dst, src1, w); } else { for (index = 0; index < w; index++) -- 1.7.10.4