From patchwork Thu Apr 14 15:56:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35313 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp837285pzh; Thu, 14 Apr 2022 08:56:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyhE4b4MEZs6pe7KsO+ylKjtEravY/goBZehEdPymdj//qC3eBlDXdnya573xs7tkvlwShG X-Received: by 2002:a05:6402:d0e:b0:413:3d99:f2d6 with SMTP id eb14-20020a0564020d0e00b004133d99f2d6mr3735548edb.189.1649951815622; Thu, 14 Apr 2022 08:56:55 -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 h18-20020a1709066d9200b006e7e6c83ea0si2093878ejt.157.2022.04.14.08.56.54; Thu, 14 Apr 2022 08:56:55 -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="b2/yVo36"; 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 23A1268B44A; Thu, 14 Apr 2022 18:56:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073030.outbound.protection.outlook.com [40.92.73.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AB16C68AF88 for ; Thu, 14 Apr 2022 18:56:43 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IwNrmWIJU0PvEkRrbDSGbpejXt/yu7cR9bQsh79timcZ9W4rnqtVkpEOHiXmNUQrZUROqrwfEqhF6ktKojNGUUb0LIJSU4Lfyif/nfhATk03ADeDlDWjYqvZDgw300on6XJyihdhN/SeeCxEGzlbCUTBioQ5dtKf/oSngwuC8NDb+Bo4ak3HqWyzcrUHtauAvHAQsayzH7aXAtXiMgQSUyB73nBivyjPB8nSAmG7xIbuznFU5Fm7PBrYtHtR2/DWUQq0FbFpzxDvFZZWmLeVgtV3MzxYKN6uySA9nCq8/70VKXASGySCdC6/MHuKJDlxSccG1npT8IdDkIoyyuvtCA== 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=0HBinyXnRK8FpkFj9xBhzRohiBb7R7kUuFiEfS7TWW8=; b=lOPOlgp2wQhybKpn4R7uMe4ulSlx5dwbE3UgSywzcjMqPwxmFzQLpySDUUeUN07YJapFKwEgd+0mU0q0G85ZjrxTDUHRjnl5Li3m/IdzULdYZrsEGCQf3MiOLhKhL/oH2HqTNcoIn2c6U3qqhro0g1rMGS6D4+LkztQ4O7Ub89fEU36NoyKgp0TKbeyfFUFkNxXlWtILIgVI1NuYPQp5xzADdOumZ1VvY0KbHQpmJh8sEyNB2H/sV/ASjscwL/VtcTnrrlp4DFE1rgA9pnZNRWF5b/1ncb3kb13ml/2JLhiD/sRJGFCSBZJt5wq9/SRDBelh1dJJpitNNOrgKQpYGw== 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=0HBinyXnRK8FpkFj9xBhzRohiBb7R7kUuFiEfS7TWW8=; b=b2/yVo36Ywituf6JjCKGTFQQhA2uq/6VOxSC0mv7jWD+evFP9sErhz8RJxUdim7QshKGZuJQk4arHL85fKXopSlqRnZ8jIKkQ+xCOMj1XzhAVjv+2e7F45O6EC0Ds1lYHVtW8tEakt4WppH+URQesx1HedLP6NBPv+f2bKB4Ee5qiH5FDJqJq6SVGke/Zxav4FBgIPXaj9ZMgFKsV+5S8DW73o+MN0AE/K/0wO7NS72RWpBWWaKIYx7TcvTrAsZpR1jHu1pdtG+iHGuPt+SoqdEGLndacS0kL3HVm3yIupfaRCDbvAlCAujb/KggJ5Wb74f/nUsNV4IBB0WPiRbpuQ== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB9PR01MB9029.eurprd01.prod.exchangelabs.com (2603:10a6:10:36b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Thu, 14 Apr 2022 15:56:41 +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:56:41 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 14 Apr 2022 17:56:30 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [P7YQB8Zmxv/UPqXprtiYJZVIaS4CMK2g] X-ClientProxiedBy: AS9PR04CA0114.eurprd04.prod.outlook.com (2603:10a6:20b:531::19) To AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) X-Microsoft-Original-Message-ID: <20220414155634.1362545-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fdc42b59-dff5-43cf-360e-08da1e2f5dce X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRC6LfFJetu3uBCNNIpQ3yI8S0aTQoZZGyPOl5om1z6kn4SwtVTyWy3b7eNdmlBbgAfkc4PxxP5mtS6Tj+sFn7YWFGqELIEq/LJEvAnAMxNhrfkkRLAQsoEStO8t4gEqetumv5Mjll3KhAyC4RudrsTJQOAlQRPLFNpE58cNSSdBBd+nISt8WBjKE+m/JqRQHE6SPHvGb0E0U69/ltyC8F/mD40uRkr8tVDSqcZRY7IKN4+fNhEFAcDQm8EqrO8CuJzLQ18U174aZUJouA3iVn7dqnsL3W6DKxTmsjt4bM9qZ3nZZFD6YUKH4oLWo6fEShoVU9PNImXh0kG4Mq5UBEyZwuZfpON7E+K9DqLx56v6QOBYSzpnwAaMaeBmnz6JK87qZMaZn5bx0DSdzEsoX81yCQsnsXICRTMWqC72HzCuUlJUM7lxrKe7ghS0WrJ4oOue7zwmQbkooLuTgv0xlQTtWJrODDbx1Z3az7KGzQsPd8wMam3qexmctnYx22RnEBe+1X4+nVcHSMYvFNj2ELgm8/sigcKFUZPM/kRe4dKutCme3iA7XhstqKMT0S8/xysPj8OnF2G87r16nQ6Y430NIoiz+TWv/3VF+zl5mK8Wet6lSmQjXAmYIFp0cXIfFhvsC0LJRBbPS2f3PfIhrvsD//qSEb0YdyJkEFYWu9MHJ4cC2Kl9E7rK+PjcVyrN3+p/mG7nH3wCP8t3p6ymc5obFhfkU4RJ2dhduGNYITfn0oeQ5haAZTzf5kM58/0zkE= X-MS-TrafficTypeDiagnostic: DB9PR01MB9029:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aHLkpeqxWaSO7tDfbQs4RzoY0jWrrFpUYOGBVwRtgZehMOPZRzwajZEjuby3Y06kGYXG/RjFlx1Yw3az7JDORtyURle1G7FTZC3wIjM0NVOyRMV9Uf/BEYfqCcw8S5xrqIB/CpqBZabhzXlULi7e3slpYMMygS+9jtFukKt6NRKJyeA5ZkK1/bk7l8sGkG7130vePpKlsRHuv6/xBRwutMiqCpU+HWOu1U7vQN/ZN5X3S08aVDjknBukpNAOoL+0UD2IHr/4eZ4/PGNWu6mqzPp1SQICrDe2kCx4xABMoEeX3V0iqSERNFj8RMmzLdgxUaafpOv8lYIxLKmk4LDnxFjvw2I0tD1xAVGMaV5JKujcR/Vi6CrfL0LIq91r1HfVOW56f+wAjejeAJEbWH0ixO9FD53d50V7oFznJZfbZFymNxilfAgGZ9ewu3YB0STSEnC6PtRTAekFOuPZf57evJbV2Fl6LA2kPCjSYTcPPlz1YfPM8GOHZULo0uUigd/Ta6xn+SKYZso2F8L4sYgPC2unwhj0Z+OiLEpIn6+zc/EO8YxAbFiy/TAGFOybabrzdVQdW8UVoZXjxfZidDtTJw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9UJGG5eKsl7vVTvCOZEx1l0+Bpj+3MmgIGovw1HwGjBQADqSGFmhXoWc3KgDget9Ms5ovtiZWgayjv5gT2vYGAzuBnnJ5inKPaSJ73I2WQCVq7KNS48OhKVYTpAK+dhqC/AJUt8vJeb/2BW5Bu7VzrYBNszumGdMKHhNijUsZuAhYQdvFsjzhobkGvgUEwFWbWZxmrrXndLUOXlf8f02Vt/cNnlJDuDSbg+WVZ2I3H2imxSCL8zJ/viOdW+8dbs4v+oeST4BSPYWOuzo1cROxegyvWk8tVTpWbxxC2ptbZLP2e6X34Jd0iMxV0Jlcb0sjka6+Q+IGlM4VBAwKdE3YW55/uZ5P5xZKofHtWO9iHhT87Vdz1Oq6Ql76GLCpPcYP7pHOJ1Z4d0Jcc/Ihkn4Er+l0kBgF7ytdwu6KZ6x+5J82v6MKKU6ZVmd1OOUQcnZaavrjL7qrChmEoQgAJqB/RnN/TcCOvfTwThDkLm1p9ZPN41dMGawu0Wp0h/Cy7JT9KVqbXHPu6YhVAyFNa/Cy5gV/TgSwgRBCYjlazvdD4aFLi9rV/JqoVa0b5XuQ8WkcIZo0S6RzOU1wffL80LrLCaQUgCSwAnrnvQNlQLzzUQC+tybvzF7yXKn9xWBp6Bt3t+ahmV3hfo2k+yEwMQH5PZgj6M/6+LMMCq3GuOKkik0b6Xjxbybmx03IMceo9EgS7vR7GA+pyMZpO4//9IGT2Tze+FU7SEGGUSC8ehmlb1WqiUG0RmN9ciBwjwZYN2ycVDUGed+/E8iph367VtzCVfrwmI/y/DQ0BNzDtUe9gDsdVGsoHflSk+vAlnaWcymd/3umwEug48ymC3IZ1Lfme0fTwbmc7HxwpK5763xuWY/UjExXr3wSuhcKdIebWFnWve+jS7swtFwOl/gemJmVJNfaRm+wzmhf642rQXSYELwgBeyrR9/7h8FLAcDRyQEiG8mWQ+rl3VOcQHTby4O7RK0AB1YXwxMUt7LD10VedY3Q8ZAnVee00h22O28xP9Ff2T0SnbmZowUZnwl3Z/AaFE1UJnQgy4m7nPxbYYOgA4MOttZr+gljDOO56znueapXmYwP2oLWtIBg5JkjpWEAGpBgO8tuywdHFAnvsRRN3zKtgyCwVNb+iWBaG6NXY3eYxEVpsmDeWO6VamEsWQR0cnI2/E/ZQ1rFwJq16KE3WlojKDWno5cb7QzSxCZWxlJu915xOkmubIPFSlcBckGXBtedX4yG1uKxHGYFIMpOBX3IsM9VLBQ6S2RyjXeZaFHFS1G9NaLMwGoqPxMFUS1/qwKkdXTQll/jv5UUfpsbCfPIWitLK2fx3NCJeAT2oo7MbWn4a2NpnMHLhSnsTS/Lr7jd/XHRGr52ap269v5kBRCRVPb1Feg9ShVeuw8jKsXNEi47BOKcX0ec998csTjFQVME1BYhnGaQmEwEeGANROk1DFSm/TJ7TUEwvVJxlJf X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fdc42b59-dff5-43cf-360e-08da1e2f5dce 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:56:41.6803 (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: DB9PR01MB9029 Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/mjpegdec: Always reset got_picture at the beginnig of decoding 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: SAaLiVnR5Pwk Said field is set when parsing a SOF; yet a picture is only allocated if skip_frame is != AVDISCARD_ALL. This leads to a crash in the following case: If a jpeg is split into two parts, the first containing everything before the scans including the SOF and the second part containing the rest, and the first part is sent to the decoder with skip_frame set to AVDISCARD_ALL, got_picture is set, yet no picture is allocated. If the next part is sent with skip_frame set to AVDISCARD_NONE, the code presumes that a picture has been allocated, although it hasn't leading to segfaults. Fix this by resetting got_picture at the beginning of decoding. Signed-off-by: Andreas Rheinhardt --- This patch presumes that there is not use-case for partitioning the data corresponding to a single AVFrame accross multiple packets. I am not certain whether this is actually true, in particular wrt interlaced input where it might be common to put the data for one field into one packet. Anyway, no such use is covered by FATE. libavcodec/mjpegdec.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c index 32874a5a19..0e76bf4c26 100644 --- a/libavcodec/mjpegdec.c +++ b/libavcodec/mjpegdec.c @@ -2419,6 +2419,7 @@ int ff_mjpeg_receive_frame(AVCodecContext *avctx, AVFrame *frame) av_dict_free(&s->exif_metadata); av_freep(&s->stereo3d); s->adobe_transform = -1; + s->got_picture = 0; if (s->iccnum != 0) reset_icc_profile(s); @@ -2578,7 +2579,6 @@ eoi_parser: break; } if (avctx->skip_frame == AVDISCARD_ALL) { - s->got_picture = 0; ret = AVERROR(EAGAIN); goto the_end_no_picture; } @@ -2651,7 +2651,6 @@ skip: av_log(avctx, AV_LOG_FATAL, "No JPEG data found in image\n"); return AVERROR_INVALIDDATA; fail: - s->got_picture = 0; return ret; the_end: @@ -2987,10 +2986,9 @@ av_cold int ff_mjpeg_decode_end(AVCodecContext *avctx) return 0; } -static void decode_flush(AVCodecContext *avctx) +static void smv_decode_flush(AVCodecContext *avctx) { MJpegDecodeContext *s = avctx->priv_data; - s->got_picture = 0; s->smv_next_frame = 0; av_frame_unref(s->smv_frame); @@ -3021,7 +3019,6 @@ const FFCodec ff_mjpeg_decoder = { .init = ff_mjpeg_decode_init, .close = ff_mjpeg_decode_end, FF_CODEC_RECEIVE_FRAME_CB(ff_mjpeg_receive_frame), - .flush = decode_flush, .p.capabilities = AV_CODEC_CAP_DR1, .p.max_lowres = 3, .p.priv_class = &mjpegdec_class, @@ -3049,7 +3046,6 @@ const FFCodec ff_thp_decoder = { .init = ff_mjpeg_decode_init, .close = ff_mjpeg_decode_end, FF_CODEC_RECEIVE_FRAME_CB(ff_mjpeg_receive_frame), - .flush = decode_flush, .p.capabilities = AV_CODEC_CAP_DR1, .p.max_lowres = 3, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP | @@ -3067,7 +3063,7 @@ const FFCodec ff_smvjpeg_decoder = { .init = ff_mjpeg_decode_init, .close = ff_mjpeg_decode_end, FF_CODEC_RECEIVE_FRAME_CB(ff_mjpeg_receive_frame), - .flush = decode_flush, + .flush = smv_decode_flush, .p.capabilities = AV_CODEC_CAP_DR1, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_EXPORTS_CROPPING | FF_CODEC_CAP_SETS_PKT_DTS | FF_CODEC_CAP_INIT_CLEANUP, From patchwork Thu Apr 14 15:57:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35314 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp837708pzh; Thu, 14 Apr 2022 08:58:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz57FZ5dGiCynjkzQxfvza36jC2gQO1JzWgV8UEdZJhclaa0Vj9QuHDpptcqhYppoL14f0r X-Received: by 2002:a17:907:7f94:b0:6da:64ec:fabc with SMTP id qk20-20020a1709077f9400b006da64ecfabcmr2895598ejc.717.1649951879848; Thu, 14 Apr 2022 08:57:59 -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 l16-20020a056402255000b0041f0ddd620esi4231249edb.199.2022.04.14.08.57.59; Thu, 14 Apr 2022 08:57:59 -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=DZMer358; 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 4C7A368B46E; Thu, 14 Apr 2022 18:57:57 +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 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: WuZAIrOIyE5fiSiYWw9CQ2cNbtDCVnMFmPh17rA6XgEh3JeEgBJlJDTvjwb/0psqAIP+39e+DzD++/nrrobfeVFWFqk+LQKKDAmv8f7u3wdA9cZ4geJFgVh3cy0cnKfwaSeV42BeoV20UfOdLrU0ci/J96VvfsojywpwVwVjksF5fcwiZBqRQU0W0BDn+oWS+1GpY7SYXJibKC2shqN7Y8GEPcvg4fVFzNoRoE8Wjg4uVam7/rePxyCyfrZ8K26Qu4jom2sU16FNR3xGlOMq/8CLKuDKaL3ml8760ODt3m5DdpMN2Q0BviXGAGivNrsjIBEjqhVWhtGo/1ES5degktuGSDAcMNSU03zMZIUoTp3YTkKMsqD1gaU3Kl1DREHGoN/tD3PXfQGaEsw3EL0eoM93Pa5xga0anw1ADj0hntnAyAEO8r/Rd8ncEu6MU74m+p6Nsv3diqtWNBdZx1yn+P1x1h8NX+DSsvk22D3E50wOUWsWk38l7VrcFdEuA/HEDzgWEstUcmOTsanI8iyWXhXYQwBoqkxFad/Ff8g4YQ/oW2XphsiSKKaFPypKsBvv7W35fDdOygwIh44sLX/Dj4ljbOYLwzJ3JRMo/tO57sfl8iZlbTI5LOzhTGUj3uRiQkPOmKXKdQIDzqbWT2m9wUx4KY6h7MwcOweB/6oHqxGTgn3ONyxKbsVP701Y5cVrCORDzBXNDU88EifJo+CIhz04qbfyXBhTvew+NRVY4M7x5X8YoQ31Y7+vWHQeiiCGH77v9IjwrcQjIh+z9FJrb1XDYFh8pQ7n2YEYoan5YQBDZ99Vvj/l0vk3m//VGaqNJRw2J+tBll7V9pWLJQO/1SbJUbPDKamJUxfpgJeszKIWnCHD5JDUe+uiws6k8GNW9W20t6J8Ug4i+NLWzkXnVGsIbrB38pIcUz5ddLeJixhmT9KQmUQ4xrraoNe8wn+QWBRdjcA5RIZ6ler9IV22BGYzp208n2kWtubjiZLWl8MLtVRTdtgoMmOQmBuGF/lT1ke5MB6SNSDuk5uC8CVmfw/K/uQ7IbVHj4IrVxi7DkhUmUOjmkx1ye0o+yNYBV7Txi2big9XxUiftzO49IzDusxvLRIauDVeSWZiaPy0EuOmpIn2lsKlY7yBQkN0hTyKSUB6YGkZHhi1RrtmYWhOAEZCven+Yds4trFN86Vcw8ibdYr1vTG6G2R7sU3azx5VtDDFm6GSsu+M8uqYZWULLeS6zghrzyNwnEIm1OE1nBm3QmbrdM/ZM36uox4nQ/+o9GGQpApSteyvxBJ6uXmfrEwGWznZ/upnYc3wDCoHDuuOqRDB/p6N8Rtr7lUcDG8pH5eNyEGV7qUqvKS/cw+1C4yahpbxFfWSk7xwCvYcWUgND/jFXIyfrMdqSBdcsv5B4j8LBsd/To61sl10CryatCiSvfVA5uz5whsGazdD21vImWjR5t4Bwq2Ed7L+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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: gSkHJ9q4dUS1 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 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; } } } From patchwork Thu Apr 14 15:57:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35315 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp837792pzh; Thu, 14 Apr 2022 08:58:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw+VQqsVz3+iRpXA/5nEnqAy4ljjUvbqDWOcsklYVlwzuvlzrxq7NJXHj5fsSlqyLZpbvNW X-Received: by 2002:a17:907:7faa:b0:6ec:c67:6db7 with SMTP id qk42-20020a1709077faa00b006ec0c676db7mr1758854ejc.504.1649951889904; Thu, 14 Apr 2022 08:58:09 -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 g5-20020a170906c18500b006e7f92842dbsi2348622ejz.355.2022.04.14.08.58.08; Thu, 14 Apr 2022 08:58:09 -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=En9E54QQ; 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 4467C68B1DF; Thu, 14 Apr 2022 18:58:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073037.outbound.protection.outlook.com [40.92.73.37]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C3A6D68B473 for ; Thu, 14 Apr 2022 18:57:52 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nhpT0DeJBtdUpdSmKsmpMPp3INuEdBpSJLBgTFzBxhP2nJ1vjUbJ7KcsT3wfYRzKzEt5xZ2sFjEkmxuzMvZLgSoa2hWYNJXJaKLDfP6ZMXKT9wUApF6mCzfUDD/Bz2mEonAYimkLU/4h2ZBXjOmYwUjzfU9v83fFgBM3aK7nX4cSUoiBF0FPzpfrb2MjP8FmmwE2GX1dPq5ryUxVFcx0Ps+nyW6543ijwbyoD4fHvzJud5USALxT0Vmn+NsU9Jd3wQzfFL48sm4fhlypVFVn8bb7oprKlTosL/i5QXQ308UnejQkDDyUrtyA5AJphFtIF4cZTqdl4ypbrpKdiypXOA== 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=pvwfeHFfmlDwnSqfnloHyXhhhFzT8DBYU7kgehAkb+E=; b=Qs/r9XIhOOb7mZquIloxbIvfVkbpl+o141zoKux7XmMaUVoXS/1+MiUu3MzqA2q5uNrBMW0om92iTLU0/bu7VjnMSbbN8cPKwp30rJ/KrtZLGBSu4T8k7/YGY0Lip7jDY5mG/5YqPcaHN/jYzKUppLiJ4i40jfB2y7KjVgpDkPkfcA49NluJvq6g+hrhqo+XwsPqW8FO0Ou/5cGZZewWBZCAbt2FK5C78uLqaoSAF17+vTGrwgV3iWZ1zZ0DQRuYcFwxei+K6CVvfXJYE024TWTjnLsreAlmaz8ZOnOCKaecIPrKURIyQS7PxVJcu0jse80/tvQAuxlH73yXzsdmWw== 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=pvwfeHFfmlDwnSqfnloHyXhhhFzT8DBYU7kgehAkb+E=; b=En9E54QQVWw07RUWKbSo8JvGAgb3+JvPrrasOX5CFKT5zRB0KgDp8e01PbFbtZhnxXLwKuZccEDcIK3SLlJJtc8desbRG+q0lNXyjNZsnBY0BxKej6PbkN0JtXAxWGTTPK6g/h6/wThFB8/aMIi4zXAn+Ln4TVFr4Gspv+VlYT2TScqsSi8lfzq1vlGiUnt8BCsCHovKPJmQk6dwZwT3wo4yN1ft9P06fQw7LzhNqllu06UM8QKzkbQwdK2DfrOM/fRKsYuDXai8EkUC54rbQwAN0FPZVhVNiajDW4UOwvTQ7aRLRIHzSPn38urIC9cvZGkUWr6qkn8YIWwZdMkf2g== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB9PR01MB9029.eurprd01.prod.exchangelabs.com (2603:10a6:10:36b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Thu, 14 Apr 2022 15:57:51 +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:51 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 14 Apr 2022 17:57:39 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [kD3Q8TrHnRvb9WMk6XZvhAaSFArVcsBP] 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-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c70612f-e337-4f02-c6da-08da1e2f8776 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRC6LfFJetu3uBCNNIpQ3yIy3YEpIAIFfcyQJ2AOBdpB9YQsV5riZMmt/1IvvAGOKLPhRZLkmidmGv51E/qVp/IyF7ngyAUbMq/PNjt1AMwvaGdDp9GyZg1kZtLVKS06VvbA7fEX1+cK6iEmEVjwJEgUCdOhlfqato4Zr0QOsOjc1leifpWeSzROAIztWtuQBb+0hpCjADB+KeWJB1EhdsgNeXpH20hBX4vip99GTZ3YJlBeWRYeo1yWSvEspBc78lsx9civgjVLZGODdDZSCnOyYF09jaqzQzkujvemLO5vHD9zFLhmjT+BEABbON8AA2+JoEdjbwhJKkuWIcpoi6e9d1JJ+cRsNOBT/lz58H3u1sia673BhpFUyWbGrMtWCWe3o1GvfQyWHgG8vqOlItWe5NsQvVzGBJuWRe+ur9e1N4L3Y8YM66/DQXKxxxMqFlQ0T+gndn9y1EnR9n6IKkl8hCBS6+vulhAyxMNZIKnGCrvVVZ4cd4GhzakRqvZ7Zzguib/033msAJUwFssg/YfOJRkE7dA5GPR82Y0NDIwTeFYIwTPMt1kpTkCD4809hSgaSP/h9ueKrO0TfLcE1DnFqSPGB0HjGLPefbkwjSu2WG0LV9gOXDsBfAr7EQ5mDxqk9ZleKgwI3J+DNBugP9nik5AgBWtjOSFG0csEcB3XgjicDfUs1vMGeJWCYlFTiVxxTigLRz+RV8CrlU/KYl9v/6YePfSIkPfucmNjl4O1IxCYwpqPaSUQ7HTF+u7Uu8= X-MS-TrafficTypeDiagnostic: DB9PR01MB9029:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YFbcR1h/M5vYBSFINufJ2FcrBBFJ4IvCJuGxpur+vpMmsASobWRxQ/X5Xr/IWctytGqdsuO8cUpS6clLWT1D3IVr/cSf/U/GmtWSaSgUTXF9Btot6E5euDrF/m7m2MtnDizex7hu9LLFM6HxWxMchsxTrN/b4zR6GTsikkI3Ri9PKuwH6enUqPcMUy6j5LTs7rElOCrK1i1r/fvAJrmVkPMxLGslTf4pH0v67dYrohlhVAMDqIDwyARKc69ISaDdc7GKU4pqHM14uQEtDWj4VEn+7x9lLJmm33eA4AAXjipiHjmXr0LllqZo9bleA5Erx8qcqAGfWJWPzKVxG447kSJEWsLGB2YzVlH3MPx23VYx7KdpcLPenkGeFKKk9vx78ExKSFGtKi0EmEkrrYVjZTb8NVj7XHevedYP/FmYuTZu5KN9lh8BZho6wUKgMtjju0QTQDgr0CdXJSMix4xW0WLLSrYtBZlsb+RIYBwjt/yEQXRJuVxmEJoW/bwFOYAcYu5LKzf8q09TcY8OSBpgHGrNGbNiz9IW35pQjm5eZsJ7umTB21h8zeiUzqg6rBx1kXutxErfOFB1xc1Xp2tBKg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: icnqiv3gEu+j2aE6VWWGgjx/tsHmkDd6lPcEMvzH8J/arE6R5iZsq0FldqJIqzvxYuXdNTHvimadq7T2k7iEBrunE787FjtLpc6bfzfCTnVtIE4SWA65zYC+PPzec3Cwl8KNxO0YvpKUqNGvtlQuCWP7L/6DdRRkQ+LryAb4sqMjVx1CYDqdE/x8JemMbBFhbx0lpDZhiuU6nbSNCiHbLQbHHGIl1cS3WCjdfvueBIlkM8gXjBXaSKgX9529Fwl55pYy8kT57Twf2T0kLCN5oBfr3hEMRBIgEbEo6cMlhW+n8k0C2bcrdY8N6QGzLrU9tJr5DAbBhLEY02KO0GkwMrEGfn7rtusHk/SEb15zt2dvR02J7Lh2VzbI0Li4/XNem4+EHOvC8hl6Wcl/uSNsAE1fEBxTp5OMYACR/hD+S3ayco+En/NNEXKwR14sTvtecXj7nSrj+Efb4F23DCiVfK6Tf5OXoL0MRS1eynPa9IH9OXv8/vXB5jlR0WrkeBbapElaSOx5wWkQBFspyRsxarK10gmvhovV9v4EiOV5SdNtNrVzE7cWqJituBd+CoJJ5AxhSl8VLGHXb3MGI8Uf3VmE0Zy3Q2oRNyhxvSg8Ys3MDn9lDQjdKt7irpLaoaK7QWfQ/G7Y5gBMXjCPFsblv9EFMVE0L34OQ/DTmmPHwE6pNNqrXfe/zDkwloTWmlyV0ymkVJ9+smAonpyV9Jd5bqHx6edtTe4YxuIpPwDkOO5DQcWGks9GzOaecYg6IlGSV2v8jkPyBYAbJ978gFd+VI1sEyzwNCRn0Asadfn1kAGadKyEnQy+bJgTBaDOvyqOv8SR708Gploo4sBZBveUj0LEWC8xK9SGF53sY230Ng6gAqVeGWwGkV4FeIIXRSAFSAuyfOdFy5Cl8RbmX1HBRyxzmwYs+jKUqgZfNNsyTAMMIlkxAmEcpgLnhkx4Kl/BjWzR4JspLcaiCf2QN7grubo0momQX3jDRAZh6i6yIbS3bpJ5MYXp6L2NGBwvIYFwqY3vKBh+LNUcwMfTGHs2+3BxUYkjtcrvgiGIMbcbJtyCmUTSNv8NaTNPIQ7QhogSc/ELy1GQ9DngxsGRLL5lORLZE/s1D2o+ExDOsnUI2yhTwu3rR+OovAhFSjozBgNmzIguiWUOHFfFufnkbZ9mJwz6snC203ILXUkAC8S9/m8IIvh1pWatwd0U/wgVdqfDTfcB7fftWcB93WwSdzWUE6D7/YN3o6OwH1a5Px5CcwQ/iy4ug8Jm3O/oiasRKRhj4Tge7aL18+Kmj0Uc2s+IFvljMs4SRdBn4kyzJhJrZP62ZxMzZewgWyVJrR59jYQbqzBLYZ/VEq5ixVBAwi6jwDoImfgILnw/1V/E0la+yUyqdjjJ7Eb/2hgfUcFaNFaUc4OHdu277x5omurPnJN0qOCpH60LGrRP3j0d0VBXTPjIVob8xJNnKKazDMsFmolj X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c70612f-e337-4f02-c6da-08da1e2f8776 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:51.3527 (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: DB9PR01MB9029 Subject: [FFmpeg-devel] [PATCH 4/5] avcodec/mjpegbdec: 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 5o8UY6DiGKCB MJPEG-B is an intra-codec, so it makes no sense to keep the reference. It is unused lateron anyway. Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegbdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/mjpegbdec.c b/libavcodec/mjpegbdec.c index 8c1809e5fb..46b9eb377e 100644 --- a/libavcodec/mjpegbdec.c +++ b/libavcodec/mjpegbdec.c @@ -144,8 +144,8 @@ read_header: return buf_size; } - if ((ret = av_frame_ref(rframe, s->picture_ptr)) < 0) - return ret; + av_frame_move_ref(rframe, s->picture_ptr); + s->got_picture = 0; *got_frame = 1; if (!s->lossless && avctx->debug & FF_DEBUG_QP) { From patchwork Thu Apr 14 15:57:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35317 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:671c:b0:7c:62c8:b2d1 with SMTP id q28csp837955pzh; Thu, 14 Apr 2022 08:58:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyf2rnvAtoUX3uXLIHCyDdQIv1UVyxkjvptN/5ji/NL14kMwPO9d8eAKTFNh8Dm6yl1qhXf X-Received: by 2002:a17:906:1be1:b0:6ce:b0a8:17d with SMTP id t1-20020a1709061be100b006ceb0a8017dmr2924481ejg.413.1649951910244; Thu, 14 Apr 2022 08:58:30 -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 i6-20020a50d746000000b0041d6147352bsi3887895edj.528.2022.04.14.08.58.28; Thu, 14 Apr 2022 08:58:30 -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=OCfLohFw; 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 3081668B39C; Thu, 14 Apr 2022 18:58:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073037.outbound.protection.outlook.com [40.92.73.37]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F11D768B48D for ; Thu, 14 Apr 2022 18:57:57 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fLBykabv1iOMbmYubQAbwbt7q5VQC9Jvzlf6/Q03W+3qgyjkLa/RKoOAgLzMn9EvavxZQLxpMU3PZscmYpUX2/WO+ldwFflw7TChtFcPST1VekTpRIrCFd0hMcWPWSBKA+PQCTMo+Oomv84/nVagTXdFLAn+ie2Hr01AWUp+ytKTLKulmrIayj93P0xv+cLj/Jqx5tMd/NYWRpwGuNU7cyIaVr75GlPAfqZGusWnxjviIqwl/AEV7ew6rzkE/Fzdyq0vkRnqjDYHedpx6KQev8OQZQKgglfKBw08ucblgyoVqGPjYC22YITE9IjfrFiUVUY0gOua++1pHPVDZYf+Ow== 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=FVfcvdfsS++K4284afvDRFa6PVpp/PJJZR2OqIW7MbA=; b=laZ3BkCN4XvhZSFWD/UCM+ujFL/4+3H0Q4+sg37U7w3DXw9i9xAK/kmwmh0AZakDrEocYiI3fCYbE/NrnDEBcJ19T/zKhTmo74ni6CJKYfUbwUv1FwbqInycfuP+8G6R3EJ6mVTWFpovgK1028E/I46AEzO9+Uva/VgUBK5H/BMswLFrBGlT8ck1phq/+5TeTOCcs8jkArWh+1Ibh57ZfLxpbm5KPX0mowoVQEkmhBOSavxopF2BgBWkKsy92RHZn9Z/z8eacaRVbs5yQxyiTX/n0rT+9sEait4rnFbiB4SOGa6Kveh2SnFU9aZmjyOdIVjxstz6HBCkIg7kpywe6A== 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=FVfcvdfsS++K4284afvDRFa6PVpp/PJJZR2OqIW7MbA=; b=OCfLohFwaKNpDKCfPPxe1QAtDgWn36NOoc/yTi7juLwIpbCmvJ6+WNkrtbzlE+BAbcBvVy+fSrkyd1a4TvcGfujsDatI2QAniNTAbjJ5gACqJsk20k9gvOCKAq3qLL4DV8mV1juf2apZbvP6u3PG9xRCnVwFtLOejLLpZfnr3DkPMrgnka40kOcmX00wEMdP5tYCzpncR6HJuOxDpkbEuIxhcTtr9Dwytw22Dop3N/o5KT+ULvVmYqyWJSuhJ33c676fhT6LI83cPJgkHX9wSOgtJ1MIeP7sUQhigmyK+ObjYiQRl7W3CUdC598jDemWdHQN1CtTCkyJlLzAodzGlQ== Received: from AS8PR01MB7944.eurprd01.prod.exchangelabs.com (2603:10a6:20b:373::5) by DB9PR01MB9029.eurprd01.prod.exchangelabs.com (2603:10a6:10:36b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Thu, 14 Apr 2022 15:57:52 +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:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 14 Apr 2022 17:57:40 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [pzfzB8lPZ91VaNgE46k3bcFlu80dXGQA] 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-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ef137275-c982-4855-6cc8-08da1e2f87eb X-MS-Exchange-SLBlob-MailProps: +LiGfBxqLEtFHMHJFUXgGNnM1jBfvC59pDvNMttO31UQj9ASJmBY9LFVzBe/LEqXic9mABYMLV6fiLeam+AVGFugj0hTw4/AGiwG7QUmnXqKKq6NTyPsvPIoJvbHT5Esu868L1jGq4d3xCMYrKZNgxjY6bfHkLwl+q5d2np5hct6Enbd0Bt2Wb7xri/4kbypj+FMFT4asmkItTY9irI8uIV0RvvE5WQlyC7I528rciJSt+75seTjkQ2+m5O1C9AJRqBSyo4KybRMzHPv+ENcnMswhKuirdDOKvBRh+gBSuq566n1S+UrY1VPfh0wtCtnFw/jK4cTtHZFUGVfzbaZK10fNBaGdXYXXFrlgFtmRX/QfxpWyQfqusRU48p2WauDGqYcYgPID92bgTmdLuBpRZ/od8jv57SzebouUtPFgzhXrb8Xq2wErUh5FyFel1qRyrRYIynY7wTH4Gl3M1QhsLRVUun71RNxaNdynysemXdlpLbU/aBS92TSevS+i5B/eaDUsnBf7x4JE97L2hl7rUyJytYIPhOALcO54+snAG0sUSY2QslSP+pCbHGpmzWb/Fi/qtpB1gRZuu0L/C0Swp28TMiGutxryggkdrpCQ7yCpUgoOIoDUgvM+eYDiEu3JHrT7h0cuefVnyeXBcYzNrUGAySfQf3qrhtVzM9vWCFxr3q9FhQfzCPFcVhpw8kZL7XyoFULqBs8C294dnVnbu+rxOoG6b8DCJc/JpkCw9jqrSYNFbk0s3ONvpPeLP5xdtRGf6oGcga0w8R+neU/4LnHzll3It0U X-MS-TrafficTypeDiagnostic: DB9PR01MB9029:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WeE4yYmXqexv+BSfLkL591mnc46t6NdumofutSvwdpu0kTe9gOkY7D0PfSTOwPYb5XGHUQS6EmT//9aW10w2AMVWZRcbMkuD8wihxDt0t12oGDGuvhNMh1WfTH/pS4HeqI0T502OqIQRUIncL6gFgIm8wMApSmDJ2VbRl9wCGnT251TZAFmB+iek9Nv7YtUJvkYQBb4l57HrOGivHDal9TabSpHOkzl4TfIz1xuQP7mzdiWcwKJSF7/FxL99vRAM21XkEhjqJzmc5vdyMfDrP4nw9zyLMmBSIzQKLyxeA48+TiaboNcw8i7VlteQLnVJpfpLnoFLpVtisOBYmPVbzulr1S1PYYceGdCEOSd1Zm1A4D4DXilkAPiM1Mjk2G5W91UqcCpyKuD9BHUQQcewhV6KW3a/rtfndtqCmKUvQVrc+WkpDzhbQ9K9TG66HBSzuJiisLlK3z+8N9TV10bx1L+zQtqTyhHHZj7mByJfKn9qoY52unPRhDNmCpwAtRLM1gl86vnxSYLmI25ZtRoOQDuaXtR0tISJC122asQrpsDjJSZmlC+P0Pe+qaxdTH5hNeyZJI5mins8zbtOgS9lVg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xlcxxtmZ3uLU2LjfZG5QM7jDHNw4Ee2dNMlWxxXCfqU8hmfBzup5ZaioZRlpmbeDCH6PeoDiUZk4Qy43JxvkmqDm82/V7gn1D7brPZBbykjyXdVac+UpgfX37BdrYKQA3/avt0BsL2c1iqR1zySRKfRHHi0hxhNo2EuZPC4RRo2OSLisHHE92Pa64NOGdj73+Nyhfuw/0mPEvoCd95y/EN/0WmPZK4kozFlvsTEqhqQ6yZKGbheb3+gKLDnaGRGhXrIiPwUuDWar8wq/l4R8ENAoff2UDSdzCCM4VANDI2d/fiVoldQPuFi5RDuGh+L2SHmE2RR4FFs3TF2qmgrVevx+Pz+bt8gC3yLhXuSTuxGybdDaDCybFcM9ruuTKsGAXtpWJcK/oFJ7eByJxC2USBO15GcLamxGq6bh+r8lnbTTpBNt6rw0Uxz9eowL3x2bksFVK+rGWix7fHk/03ec8hx1iDTlmanFpd3zPzvGPU6m8NEUt1hoGUEQ6/6IPltMxhXWm0vl0usfQULTOcQBDqG16buOsXtSRYRktBwvSHhpSAh/paNTrSrONbhCR+//0yBMRETFxJq/COeUhgYsJI1yWxmjBxyw3muFngkqlFqn0DxEqKpsBIkWKei9Bx7Sf1PlDBAPnSGmvN+BxnTbE6JMyG0AtQrrUqCT2dZhUdP2Bt9Ytb3/G3llEVIRkUA4cf68oIvCZ1diq7uBtafoIeEoaUd4kgngK0TlaPvzkVwD24dfK0SPU/qmeTeh0it23vZnb8X0puRwHszuAk7cUy4ORxL6gPUngR8JE8jw2V3LV7Ip5ql6q6pe1TnjqoSUhq/iKU9o2MJZgR0X3ZzOPtbDqvWGY5vU+izSEegBNEJpznwNTaoG+ngE6OLOhP7Q2PIzfdDkpdQWH3/EweS6OyDVaJgdFQ4GXIAbZZvmEZC7rd6/coxEx2MY5rBmyk9SrBXw+BPxBlh5lXioZ2rtU1FFQvgKPVCjNePB5NAD+yHwcSKVX1r4OehbZqXnxu90JkDGgvBnaZuxHcHONq52H1ouTJeHJlERZF77M8M6/Z3esWAa56KXfvNX8B+ypVHbD5JtvpEfi/Wb4unCDXJ2x3vu4LuGDG3UhR884KH6lqdQUS6b+2t28S/a4FJg7jMu//pKLRILB/py2g0W8FAVqMuJN7Z1dkiRB2F2K4imXs+54llGnIbgKZbk2kyrgWWd0+rb1B8sDyawp3Dw/zopSTCJFTdbBlFFnjuw7BWI/c3E9GnbxCAx0Wvr2xzDWxxO4HzzhbgySYms2Bd6zOk0I8JxbipUNmgXdL2r5dY511C/8d128vgfLxZnqa0XpBx67V6bPujPUKQjGLnirBlXeNsHUTN2TsW0cqFfgUi8zDt9JTIJcdz7GJsfkASV2FSEbd/lunpqgPOpvuwAFeWchB6ioePokctQvSqNBgforLJ63YsIoI8fZ2spMrdeuPNS X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef137275-c982-4855-6cc8-08da1e2f87eb 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:52.1026 (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: DB9PR01MB9029 Subject: [FFmpeg-devel] [PATCH 5/5] avcodec/mjpegbdec: Don't use GetBit-API for byte-aligned reads 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: cfyMM0jTXODI Signed-off-by: Andreas Rheinhardt --- libavcodec/mjpegbdec.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libavcodec/mjpegbdec.c b/libavcodec/mjpegbdec.c index 46b9eb377e..50fff2562b 100644 --- a/libavcodec/mjpegbdec.c +++ b/libavcodec/mjpegbdec.c @@ -27,12 +27,15 @@ #include #include "avcodec.h" +#include "bytestream.h" #include "codec_internal.h" #include "mjpeg.h" #include "mjpegdec.h" -static uint32_t read_offs(AVCodecContext *avctx, GetBitContext *gb, uint32_t size, const char *err_msg){ - uint32_t offs= get_bits_long(gb, 32); +static uint32_t read_offs(AVCodecContext *avctx, GetByteContext *gb, + uint32_t size, const char *err_msg) +{ + uint32_t offs = bytestream2_get_be32u(gb); if(offs >= size){ av_log(avctx, AV_LOG_WARNING, err_msg, offs, size); return 0; @@ -47,7 +50,7 @@ static int mjpegb_decode_frame(AVCodecContext *avctx, AVFrame *rframe, int buf_size = avpkt->size; MJpegDecodeContext *s = avctx->priv_data; const uint8_t *buf_end, *buf_ptr; - GetBitContext hgb; /* for the header */ + GetByteContext hgb; /* for the header */ uint32_t dqt_offs, dht_offs, sof_offs, sos_offs, second_field_offs; uint32_t field_size, sod_offs; int ret; @@ -64,21 +67,22 @@ read_header: s->restart_count = 0; s->mjpb_skiptosod = 0; - if (buf_end - buf_ptr >= 1 << 28) + if (buf_end - buf_ptr >= 1 << 28 || + buf_end - buf_ptr < 40 /* header size */) return AVERROR_INVALIDDATA; - init_get_bits(&hgb, buf_ptr, /*buf_size*/(buf_end - buf_ptr)*8); + bytestream2_init(&hgb, buf_ptr, buf_end - buf_ptr); - skip_bits(&hgb, 32); /* reserved zeros */ + bytestream2_skipu(&hgb, 4); /* reserved zeros */ - if (get_bits_long(&hgb, 32) != MKBETAG('m','j','p','g')) { + if (bytestream2_get_be32u(&hgb) != MKBETAG('m','j','p','g')) { av_log(avctx, AV_LOG_WARNING, "not mjpeg-b (bad fourcc)\n"); return AVERROR_INVALIDDATA; } - field_size = get_bits_long(&hgb, 32); /* field size */ + field_size = bytestream2_get_be32u(&hgb); /* field size */ av_log(avctx, AV_LOG_DEBUG, "field size: 0x%"PRIx32"\n", field_size); - skip_bits(&hgb, 32); /* padded field size */ + bytestream2_skipu(&hgb, 4); /* padded field size */ second_field_offs = read_offs(avctx, &hgb, buf_end - buf_ptr, "second_field_offs is %d and size is %d\n"); av_log(avctx, AV_LOG_DEBUG, "second field offs: 0x%"PRIx32"\n", second_field_offs);