From patchwork Thu Apr 14 15:57:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35316 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp837859pzh; Thu, 14 Apr 2022 08:58:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwNs7XIqG6AIBFyN0f4hcUwpJA1wJGawkeRQlkC0UMlfiaAXoDx6KC4Qnsek+7najrgTi7B X-Received: by 2002:aa7:c789:0:b0:413:605d:8d17 with SMTP id n9-20020aa7c789000000b00413605d8d17mr3694389eds.100.1649951899540; Thu, 14 Apr 2022 08:58:19 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id x9-20020a1709064bc900b006e803d493dcsi2279636ejv.989.2022.04.14.08.58.17; Thu, 14 Apr 2022 08:58:19 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=nKupcLM+; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 380B368B47A; Thu, 14 Apr 2022 18:58:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069039.outbound.protection.outlook.com [40.92.69.39]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A39D068B488 for ; Thu, 14 Apr 2022 18:57:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A425Rv9mkJf8uLAS3TgWlLlzBmZrnnBK1F5rhK8w0rd6PWFy1quXS0Wd9fUiYeUkodCui4ylG2BqtZ0hIZ2s0t9hVmSnOxITkekvCHQOOu9jpBp3WrmwgaVEJYkITIMB9sCg/5OWMcYy1lP9/OLC+YNOCTf4IlbsJgwMHYruMJ1txxuNFrjtkguEdFH1qc6bupjgRfcCbeuFUtu2NuvDzPqmsMAyLJaQIl8SLLDbMm114KhnSTmq6eRVPYDkT3UFfVVBxIG/6UwA4cWViefevKjuJMH6DixmnMH6wnwWsUq2RX3KhBc/KztQK0P97mr3TtNmFpRr/P8pReMKQ1f/2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=i6UN6M/w1LvkyWx10imoBkz6lYMFewt4R7WSFIU+m1I=; b=VuZYeiYyrV+hQivl6qPL3pwYkPrUSNkMDpU+rxpOLgcaKK45L2wyn/vsaEBBz54njCFZVRQNvTlZfh+mRdWj2l5ycRULFtlwUcdX7eUA5OT846kA88fRJGNM+ZJnz18NdkwRfwgkLHkguDSijqXBOUU/JyqwuNYraCku8Qg5XEwJY/55DXnLlnrPwl3dN82oMWEpNw5N+lzO98zG3z4prMierzi1znD2OnUBwt8MFBuTj0exO9yn7rnyZ8rrnpBm3JBxx3vmqL7TJNHpXFgtMDIxa+WAvKsNWqfNwmk9vlqQ4HDHive0u/B66HuLH0elrDczIDpYA0sFflOVX1ZI8Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i6UN6M/w1LvkyWx10imoBkz6lYMFewt4R7WSFIU+m1I=; b=nKupcLM+Y8FFzjfN2pddcAirfQfO2g9LiOVSrFSPYA70EWkZcuGyTpnxP6dhhc8FgwELQCWM+7KEYYPly2GDMtgZNJxwEEc8Wu4J6qvP3sxsp+BqN92P0J+z7cd0wakZsA2vS/Mb1kHGeW4azn0E82teaQFUwbl7+t7g4exR43Lgpi0bJ6Hc1YkDC2IR3oJZyH4kN4Bwbn9sxtbB0fQ9dqyWDf4nMZzpTcpxcd9J3m2+hSJlv0HOyG2bi1WHGGPxgbzUsWoIJqLPh+pIL+PcW1MDYMcINiwd7cO73zfg+7sekVYNuzqjQlz6XJ22MQD5e7AJKWuaYKSNxeern6YXIw== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by AM0PR0102MB3666.eurprd01.prod.exchangelabs.com (2603:10a6:208:5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.30; Thu, 14 Apr 2022 15:57:50 +0000 Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::fcc3:1285:374c:9b2]) by AS8PR01MB7944.eurprd01.prod.exchangelabs.com ([fe80::fcc3:1285:374c:9b2%5]) with mapi id 15.20.5164.020; Thu, 14 Apr 2022 15:57:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 14 Apr 2022 17:57:38 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [/FfYWI0nquEXHZY8uNXceqHswHegbOYO] X-ClientProxiedBy: AS9P194CA0027.EURP194.PROD.OUTLOOK.COM (2603:10a6:20b:46d::22) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220414155740.1362987-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c6412fec-a2fd-434c-b54c-08da1e2f86ee X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWHNkBoEz0Th8qNHbYMiimCmDk43XFAENWacofBzq7Qn8lWrV8UurD3WM4tWwCITFWIFq4xsyEjWiGpMmLnVVcEsZ01rqHvzPeMkTWnCwYTojQUD/fRTXH44VqR+kuAFLaiLqbAmMnnojTjpr0C06Y2EF3BuJuPQm2Q1HjJ6x4rk1NTowAm2mCg6p4YulL2LJbIxmcshOiGbikHL8G9veglpRHBGyg5W/46aDB03tYwDEHeuretfS9ML0kl5xPjisvpG7PQOSZYlkqvENnHGd8oL4PkX3jfqWMOb4Zs/eJQskBhweaxzGGYKn47VffyzC1WjFnQEoGiGHcKxg8dMGU2OoMZgNKTTsdPf+v7qdUrrAUBU7oMRc+k3T59Tye3wXwny7ERaJWh6obvMDi54IeSeDn8w5zbkMrdoICJ3OvD6wwb8fNuHcPY89puk4h1dUN8XJ7JT9ArAfy6AER3rtJ5DaX7iPNGe3WMchpldxB49niFM46W6TGC7rqHCPWLaoaq61KyimDmCvErgOFYj9AoOqFaUt8oPrM6uBK6k6HhEmrs66JbxQ2WspSlVP5uWlm5/pHJ81ywiPqnSBw4KzWbcKvIO0qxmQAyklXzsKox2hRb70v3fCRzvfLZtGGTFDKrmoo9uRLvTPG5NcCe/GwYBu18HD5/CIUpuxRAvt8zMjCqlgvvWcY7z5qswXc3QtF6TXqJcfGKfj2+kYgsWnJd8rhQkQDILZM= X-MS-TrafficTypeDiagnostic: AM0PR0102MB3666:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CHqsU0csbh6Nrxt6xJK6/wz6NhnbXvYPrYH4+czRa1oeunU1JYn7RljFf+MgN4CAeRL4j9a2xQQr+aVfUFLYUGZfRLPbZxONAdVKVsB2OKje3Japycd1OgJV6btSaETqyX/wtSsHPhaqxtw65AYI6AvFx52ckYSIuhdFYkyMsaPW4d5YIGBA2bBDhcIsev3f7JobaOLxI+LAgmpEilJNTZfCHnsT0LiD1tSEs0fbJcDHOiVViqeYpQZTz+w8P/07lKUFPKKr22feAgKQ7HYo05Sm/+Cyz89KdnLI3tMqKcJ/jjHXyDCqZzWuaYmQCO8J+shDXjb8Bjy9zN0FQJCXgfMEIUcJyE/cJd5oeatEexMPsSqD0yk7Mv+nReIxDHyjqA+j2julerzEmeyTQeb49dZyJTgag29KqKyqG0zeuInjj8PdpZgmzVrD+rpKYAtsYsJrDwl/Qx2aq1pi1z74Cjz7jdc3FqoWMV3R6IWlQ3CRF2IHnHkr5l4ErzRZqdPaKBjFJWoik2Uo3u2SknnPFkuD6vSguf/1BbyxfTcYKP2Rg0AmLgtSwo5Ityq1RA4x/UZzefYSRWeYgkv2WX8g+g== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +xZvW2aaCg+/Z4oRJmYpYy9L93v+vXg+b2ehYcpVagEIPr456xFelLjGA8ifmJpw+1OdjZkQn7pvkp+slG6VrKsvBbu165Zys/2dPozKlUWr5KUJ6KneVc8i3Udmqv0vBaRDcPmvtcrFRkqW38xfkwGV2F6OWLe6v7pBSH/BXqi910dJXQeKYISpvEpUD6uWSQCZuhnqwNmfhkE5YQ1aFZE96V3OhY9YQ1RduPdsugrq8vkBZ50DLEjxG0heiZ9kTJUvy4hjTAtI/dzY0HHXYPRrnylOkkyN4mqAf00nfK5xs2uPzZ3bwbv0iHe6raFY2G1KejNPUYjdvAgPkcrs9qbF27sTC1Yqef9kI7XIZdhWSn8K+uDtciKstocKpipiDs7+ZsjbRNzqdvGlfNqY9HL0xo76NYgiyLgprSNugGJXqnt2WckewyHXpEkUd6Tgtr93NuT/NuT39tcKbmyPhM99QK5S/lw83dW5H61htzDhROH9RphJplSwFMlq4DxVYiS+fA0H+ki3MVAHXkkBRySQlURG0V+djpSausBtNliU6OfBU/3vGTSr5LvPhX1aPjuvkNkeuU10PtOzxbuzDAp7mOq7a0LvcfSC2cJOZdrhpnRw+qr9KNHlaHg+76J35lPyk7cN5EXSQNXo+CJPx+zrFV55pE8nhaWimAAK3fhFtdypbOtJAI+PPVTwzyUA/ZplipCvuYcXkf1mSVl9A8cA5o28ISu3D7tGSt1/XqcvT6pEhbLXdwyHP5tDDuEGS2flgJGU3HrYoG0d5Q3KqIklwKddVd0TA3vqNEsTHWaQV6qyTb6vy3Z9tZLoBKHWnl4uUYiQpqdkOcvwAcXBrgQy+SinsIqckAhwQPr8cmcfFJ3LNcnLP7Vw76VZH9nnTJKapyWddn4OgKZQP0F5MzS7Wm1f/0Db3h+bLYPAoo7LMaRQKFHmd+XVeGWRaCUxdWnG50e+aX3GQ8m71yTbAM5VfQHC0SZ8coh/NPVR36tt8B1sij2ziIC1AlgU1fiwJ8BZjVnHVKU57nq1OFs2a1huO+bmB8iFdGlEtu5w1phyy0FPw5Jvl5HVyzitFdg61AJfw5dvO5jlQmiSpMUgkU5iUyZwm2Eiyp047DzrXRLIR4RBSoW6wUvLbHo2jl+WYegtigBeF9N7Gu2+AFmo0vh1vMfArOO1xK+uY7zmvmKcSsXg1ZONOeNCkorTYHcKeXE9rl1oBPqYLYdV+HDn6RHiUx4eERoMjZcyTSKQn16Vz69pXsIOwwbf7VGg869YmHuaiSaeZUezdTkqX2gyd++YXU+qoAQpFIWW6cQdCMvi+MXhI83hhJgfZd6wJ/9NhLL3qftfSizCPPN/fr4z2COi/8W/DszwYyg3jP1kLqOs+ndDkEa4/vXtZyTA2My1gUzVBV7Wqz2jxcbXySc6wxFPV3A2/sw63zXnAnTnXSfk6502ngNTqs3+ag/BFzs+ X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6412fec-a2fd-434c-b54c-08da1e2f86ee X-MS-Exchange-CrossTenant-AuthSource: AS8PR01MB7944.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2022 15:57:50.4776 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0102MB3666 Subject: [FFmpeg-devel] [PATCH 3/5] avcodec/mjpegdec: Avoid copying data when flipping image X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ocundsE3dKJg Basically reverts af15c17daa5d8d2940c0263ba4d3ecec761c11ee. Flipping a picture by modifying the pointers is so common that even users of direct rendering should take it into account. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 939dedce33..33beda12ea 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2762,28 +2762,18 @@ the_end: } } if (s->flipped && !s->rgb) { - int j; ret = av_pix_fmt_get_chroma_sub_sample(s->avctx->pix_fmt, &hshift, &vshift); if (ret) return ret; av_assert0(s->nb_components == av_pix_fmt_count_planes(frame->format)); for (index=0; indexnb_components; index++) { - uint8_t *dst = frame->data[index]; - int w = frame->width; int h = frame->height; - if(index && index<3){ - w = AV_CEIL_RSHIFT(w, hshift); + if (index && index < 3) h = AV_CEIL_RSHIFT(h, vshift); - } - if(dst){ - uint8_t *dst2 = dst + frame->linesize[index]*(h-1); - for (i=0; ilinesize[index]; - dst2 -= frame->linesize[index]; - } + if (frame->data[index]) { + frame->data[index] += (h - 1) * frame->linesize[index]; + frame->linesize[index] *= -1; } } }