From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id CA07B4107A for ; Thu, 14 Apr 2022 15:57:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0E49268B443; Thu, 14 Apr 2022 18:57:57 +0300 (EEST) 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 8078E68B41F for ; Thu, 14 Apr 2022 18:57:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cP66WTXr7L+ktAphWe8lZPwllSRU07MMFIr1+TgdiplIQ0xIe6imCKY3t9n887F7434rH0NQAOizJAmn6yX3xLyKcUhuS9sCunhXjxMsIX2VqRTXVBMWiidp9hMd6Fgicd4w5SZUhr8R8UWXuyBlU27mkZeBg2UlFBVr684clRU+8kcXU0gCCzIy3bTE1D0n29rKplY/cp7R1JhJiUR6yQTEjMQPcC+ifcKCOKHtpfU4vsfrXPKsukazS6VRIigdcbkrSzgL6zBDar8K3CI8hQi6ReC+1a2k2B3+Z0BU/S9aFlmuHjsgANORTntn0lHbAZEWz3nqTNNJIHmJXytl4w== 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=Sx8pf+mvTAafv7IsJ864WQNaNOIpB1rbiBpovSMcduA=; b=UCeIoTFXSKH921rkiySVO+iioL0kSV5vxj8A2uT6gH/4Qmttj3dxQGX1e130HHdc6J+j5Uc0Pe17KWy4Dp7VyNDiPmXN5NWzcIHO9Gkp0WHeTbjMKsU3KnkZbDVm0rNWSITkLF8RDP7kFMmRFrYFQXPJwfZU9K9RY+2pZijXDf5UteQqmDPP07KXVQQ61V8C6iWhEk+0p5CdzHVyz/J/rqfvFoXLYwwbCo6QahdR0laWAHbr1OWKxCifErCLqQP4RmSQXXK3aIaGYI3EamVZGK7bhY9c1Bmx5J6Vo8TDrm+QvnlcJXt+9sK3ti3sp+zvHKmLDbWzxmjXetUjETd+6A== 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=Sx8pf+mvTAafv7IsJ864WQNaNOIpB1rbiBpovSMcduA=; b=DZMer358R4MzUlOUQzzW5nfelEsdKQ5cg12IBAUKcVtmkkSp9XElOui8d2NH3R5B5iERCLnHNjEyPLlQu6fwKakUY6VEAy+94flOkAzhSumkujpbyAPIQUxKCbhJU6qzxgNuzZ8itN/b5s4eHDpGczdBGY5Pvf5qLL23+mEDuTsYSt26HQ5JJE4q/GHh8E52qtGO6LiJ+VU1Kq8EFQYxB3Q3/YeKxuyl7Z/5oFqRoeSLWpKLulg/fW5AXHuSWdo2pfn2C5vliAdqVujfNh3bHpwsxca9TqC2tksWbmnBIxUlxtIFJO/KpHVegh6xyNXKsjOecPXNjG3DPZxKYTRCZw== 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:48 +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:48 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 14 Apr 2022 17:57:37 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [B2NSh5V+VeuO4koicaAdGa/2YAPyXvYL] 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-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 18255284-7c62-4ca9-3d60-08da1e2f85ef X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRC6LfFJetu3uBCNNIpQ3yIEyY0oeZ0+MAYVrEvvA5jrnBXGTaq738WQO0eXhxry7PESzPHmcVZYjOZaQ3hw8BdPNOaBWBUYzkWYPy1V5YAnnUMMQcR60Ew9zkpsY0ooJKAqAw1qpTC8nzGKpqBn1fBKCNdslLF2cYIymn1Yc60lRWQzm2JEtt0nSKYj8/JsXkjf3uHWAX4iT1pMpxNkcF1Mu6cn1MEyPe3bN+SDozdaliMijsivzvbu8AfNY6RWFOT1NeITUDrir6dztp7/UhQfiS2AEOpt1ZwjMb+u4Bd39hjJdBBYcRkARbGzGdHcKLzf97LNt589weE6ACnDDu8xvm0bu9+dyfYUeT05JiS+yn692KaFuoH/27P27+0gANx2hPjbqbLU+qB0Bo+ZtZofdY3xKwVYlOprUjQ/1TiWd2bDdhpNzX8AU7Qmmu4h/BoD3JdeDBazeN++PJyFokZ6C4Hv/8sv+am77MYuqobUHo7x5BHXonw9SvyEPVTPuBNxlWpDF7RlIYEMbldP+J3UclWmKQxotD5h9FjKt7Tem/oV2IcFEkKCwZIsjQKjsjhI95TbqXH64qlHDRwoU+VBkgICmgU/Nyb7Xpl5fMNTv+XuAKySLdcMHBENKKdHizkIeUtJdT+H5ynptYlgL/RTkcGTmbDN3EK8zevpESV0i04ahdk7W3YBkEBhZWZiffv4tYPLc/O6iXS38/XPfmy8AWkxA1nrsNpN3Nw+nbDsheTgqcO1io2m2hPT9iXJh8= X-MS-TrafficTypeDiagnostic: AM0PR0102MB3666:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Db7UfF7MZXLBOFChhfZwdD/p4iTS6ROTu+8xspSVIZEpOxPRZHLm4+/kpuD8bq4HPlULAZr8eqTX1BAqQF6+fuiRFMv3qhC5CyVIXD8wMhUgIPNM+2Y8wzS5ycU/gac9pHsYk0yUgxe3PrQhR5DbQxtbZRcpAxNfCSjS4or5KbDitUb+sQCdK49D65EfzCRWHdV+iVMdQaoyo+udoCKqA207LxJf11TuJ/NoUM3huMrXoX08EoAKzRacT1H9xI1gXzywqXJ8B3tua9slsySQjYNKCm7JmaL01oQPViaJuK9asvye+c7FrftZUpW1z3F/JWyDQy5G1K5sG0Fq2vTHcCDZCRnCR5vKRBHowGG0DoW/SWz53F+wY3aKrnjC0PGZmmuQUk1ZC5ZD+J9b2SRlVzDQLghw2RbKTqX0yVFphRjOmLhFBLziiuMAJxpEkxw6sfNkPf3mFy5dtY389w8OkbldS3UdnC77fs3pw7YBh9xTBU24WJNoSdHq1gSnoVq6FDj+n1W6cDfalgSJNgAheyC9IhHCN+5B7JxyO0bplYl+mlKI98OKS8/OIx5RIQqFCnxbIjgTV5wiD4Uw8nFL1A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WuZAIrOIyE5fiSiYWw9CQ2cNbtDCVnMFmPh17rA6XgEh3JeEgBJlJDTvjwb/?= =?us-ascii?Q?0psqAIP+39e+DzD++/nrrobfeVFWFqk+LQKKDAmv8f7u3wdA9cZ4geJFgVh3?= =?us-ascii?Q?cy0cnKfwaSeV42BeoV20UfOdLrU0ci/J96VvfsojywpwVwVjksF5fcwiZBqR?= =?us-ascii?Q?QU0W0BDn+oWS+1GpY7SYXJibKC2shqN7Y8GEPcvg4fVFzNoRoE8Wjg4uVam7?= =?us-ascii?Q?/rePxyCyfrZ8K26Qu4jom2sU16FNR3xGlOMq/8CLKuDKaL3ml8760ODt3m5D?= =?us-ascii?Q?dpMN2Q0BviXGAGivNrsjIBEjqhVWhtGo/1ES5degktuGSDAcMNSU03zMZIUo?= =?us-ascii?Q?Tp3YTkKMsqD1gaU3Kl1DREHGoN/tD3PXfQGaEsw3EL0eoM93Pa5xga0anw1A?= =?us-ascii?Q?Dj0hntnAyAEO8r/Rd8ncEu6MU74m+p6Nsv3diqtWNBdZx1yn+P1x1h8NX+DS?= =?us-ascii?Q?svk22D3E50wOUWsWk38l7VrcFdEuA/HEDzgWEstUcmOTsanI8iyWXhXYQwBo?= =?us-ascii?Q?qkxFad/Ff8g4YQ/oW2XphsiSKKaFPypKsBvv7W35fDdOygwIh44sLX/Dj4lj?= =?us-ascii?Q?bOYLwzJ3JRMo/tO57sfl8iZlbTI5LOzhTGUj3uRiQkPOmKXKdQIDzqbWT2m9?= =?us-ascii?Q?wUx4KY6h7MwcOweB/6oHqxGTgn3ONyxKbsVP701Y5cVrCORDzBXNDU88EifJ?= =?us-ascii?Q?o+CIhz04qbfyXBhTvew+NRVY4M7x5X8YoQ31Y7+vWHQeiiCGH77v9IjwrcQj?= =?us-ascii?Q?Ih+z9FJrb1XDYFh8pQ7n2YEYoan5YQBDZ99Vvj/l0vk3m//VGaqNJRw2J+tB?= =?us-ascii?Q?ll7V9pWLJQO/1SbJUbPDKamJUxfpgJeszKIWnCHD5JDUe+uiws6k8GNW9W20?= =?us-ascii?Q?t6J8Ug4i+NLWzkXnVGsIbrB38pIcUz5ddLeJixhmT9KQmUQ4xrraoNe8wn+Q?= =?us-ascii?Q?WBRdjcA5RIZ6ler9IV22BGYzp208n2kWtubjiZLWl8MLtVRTdtgoMmOQmBuG?= =?us-ascii?Q?F/lT1ke5MB6SNSDuk5uC8CVmfw/K/uQ7IbVHj4IrVxi7DkhUmUOjmkx1ye0o?= =?us-ascii?Q?+yNYBV7Txi2big9XxUiftzO49IzDusxvLRIauDVeSWZiaPy0EuOmpIn2lsKl?= =?us-ascii?Q?Y7yBQkN0hTyKSUB6YGkZHhi1RrtmYWhOAEZCven+Yds4trFN86Vcw8ibdYr1?= =?us-ascii?Q?vTG6G2R7sU3azx5VtDDFm6GSsu+M8uqYZWULLeS6zghrzyNwnEIm1OE1nBm3?= =?us-ascii?Q?QmbrdM/ZM36uox4nQ/+o9GGQpApSteyvxBJ6uXmfrEwGWznZ/upnYc3wDCoH?= =?us-ascii?Q?DuuOqRDB/p6N8Rtr7lUcDG8pH5eNyEGV7qUqvKS/cw+1C4yahpbxFfWSk7xw?= =?us-ascii?Q?CvYcWUgND/jFXIyfrMdqSBdcsv5B4j8LBsd/To61sl10CryatCiSvfVA5uz5?= =?us-ascii?Q?whsGazdD21vImWjR5t4Bwq2Ed7L+o9et?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18255284-7c62-4ca9-3d60-08da1e2f85ef 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:48.7580 (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 2/5] avcodec/mjpegdec: Don't create unnecessary AVFrame reference 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: MJPEG is an intra-codec, so it makes no sense to keep the reference. It is basically unused lateron anyway. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegdec.c | 45 +++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 0e76bf4c26..939dedce33 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2589,8 +2589,7 @@ eoi_parser: av_freep(&s->hwaccel_picture_private); } - if ((ret = av_frame_ref(frame, s->picture_ptr)) < 0) - return ret; + av_frame_move_ref(frame, s->picture_ptr); s->got_picture = 0; frame->pkt_dts = s->pkt->dts; @@ -2675,9 +2674,9 @@ the_end: if (ret) return ret; - av_assert0(s->nb_components == av_pix_fmt_count_planes(s->picture_ptr->format)); + av_assert0(s->nb_components == av_pix_fmt_count_planes(frame->format)); for (p = 0; pnb_components; p++) { - uint8_t *line = s->picture_ptr->data[p]; + uint8_t *line = frame->data[p]; int w = s->width; int h = s->height; if (!s->upscale_h[p]) @@ -2737,7 +2736,7 @@ the_end: if (ret) return ret; - av_assert0(s->nb_components == av_pix_fmt_count_planes(s->picture_ptr->format)); + av_assert0(s->nb_components == av_pix_fmt_count_planes(frame->format)); for (p = 0; p < s->nb_components; p++) { uint8_t *dst; int w = s->width; @@ -2748,10 +2747,10 @@ the_end: w = AV_CEIL_RSHIFT(w, hshift); h = AV_CEIL_RSHIFT(h, vshift); } - dst = &((uint8_t *)s->picture_ptr->data[p])[(h - 1) * s->linesize[p]]; + dst = &frame->data[p][(h - 1) * s->linesize[p]]; for (i = h - 1; i; i--) { - 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]]; + uint8_t *src1 = &frame->data[p][ i * s->upscale_v[p] / (s->upscale_v[p] + 1) * s->linesize[p]]; + uint8_t *src2 = &frame->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 { @@ -2768,36 +2767,36 @@ the_end: if (ret) return ret; - av_assert0(s->nb_components == av_pix_fmt_count_planes(s->picture_ptr->format)); + av_assert0(s->nb_components == av_pix_fmt_count_planes(frame->format)); for (index=0; indexnb_components; index++) { - uint8_t *dst = s->picture_ptr->data[index]; - int w = s->picture_ptr->width; - int h = s->picture_ptr->height; + uint8_t *dst = frame->data[index]; + int w = frame->width; + int h = frame->height; if(index && index<3){ w = AV_CEIL_RSHIFT(w, hshift); h = AV_CEIL_RSHIFT(h, vshift); } if(dst){ - uint8_t *dst2 = dst + s->picture_ptr->linesize[index]*(h-1); + uint8_t *dst2 = dst + frame->linesize[index]*(h-1); for (i=0; ipicture_ptr->linesize[index]; - dst2 -= s->picture_ptr->linesize[index]; + dst += frame->linesize[index]; + dst2 -= frame->linesize[index]; } } } } if (s->adobe_transform == 0 && s->avctx->pix_fmt == AV_PIX_FMT_GBRAP) { - int w = s->picture_ptr->width; - int h = s->picture_ptr->height; + int w = frame->width; + int h = frame->height; av_assert0(s->nb_components == 4); for (i=0; ipicture_ptr->data[index] - + s->picture_ptr->linesize[index]*i; + dst[index] = frame->data[index] + + frame->linesize[index]*i; } for (j=0; jadobe_transform == 2 && s->avctx->pix_fmt == AV_PIX_FMT_YUVA444P) { - int w = s->picture_ptr->width; - int h = s->picture_ptr->height; + int w = frame->width; + int h = frame->height; av_assert0(s->nb_components == 4); for (i=0; ipicture_ptr->data[index] - + s->picture_ptr->linesize[index]*i; + dst[index] = frame->data[index] + + frame->linesize[index]*i; } for (j=0; j