From patchwork Sun Oct 2 00:06:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38508 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp527658pzh; Sat, 1 Oct 2022 17:08:23 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4mg+1LSko/56Mt/OyYj31iP++f9zK9BQJ6jfZc3Sr7AedgX0D6w0pJFdxKXTfjShyuhDK5 X-Received: by 2002:a05:6402:2141:b0:456:d714:17b6 with SMTP id bq1-20020a056402214100b00456d71417b6mr13360812edb.425.1664669303054; Sat, 01 Oct 2022 17:08:23 -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 sa23-20020a1709076d1700b007825af06b0dsi5238204ejc.696.2022.10.01.17.08.22; Sat, 01 Oct 2022 17:08:23 -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="SNxiWy/S"; 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 F16F068BB6E; Sun, 2 Oct 2022 03:08:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075088.outbound.protection.outlook.com [40.92.75.88]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EF88C68BB3E for ; Sun, 2 Oct 2022 03:08:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YTQ/OYkA9oMLowDbb/NA1v5r/0/+eF1ccePDghyKv8qiDMMAOUdye+JOBrc5HuVzKFDCKl/KwMs4pQ8IHt7Mx+t6ZqSjz68Es7Qfd40V8a6F8DVT1pWj2qW/R2ZYaPppANgPxPG/CJFnLSGvyo1WrrqD/Ng6Iox4h0w9O+lkW1vye3MME8tkPGUnJApyO11ytRUwjCfaDNf7Zc4MrLgVAZowx/xLDk7/QoIEdAsjn1fxE9/Kp/ki9DUZGDaSXhppeFENvmHRiWzBr+pZ2rQm8t7IRgCDwTBPk5iEWH1vBcaeBnBvZ3b9OzINB2LF5N0f0HeBahknHAlb+JnRspRjhw== 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=Ukq9elZQ4CxiDzNwIC3ue/c3qg4yV9AhFuOhz9vKoRU=; b=FQ24juMHNro9MW+WXsFKY8v1uMeIaKkT3Ih8XJhGRF9IlrzLjKJ4uboIDn4jjJiaNn9ISYKSxUM988Co3Zdw57usDvslvdA6wwClIEog109QXLHEH57clD0WE2jaHKs1RT9xrgh+8jHKLKIzix2mQGFjtzTjQO+oGlotM0bWyHgeFHTTuLG37rJkLQO0Fp2mhglQ6XqwTba/W5Fdzemz/xsykqdRZyGwXpUVFWvMnSfEkgsYQXb3cY2UoR0qh0LLs+mpyd3ChD7LTYc7dHACzPYfqxahaIhvwQQi1bpLgmss5PZnT0n4dFqAPKa3bOoq7r2bJ9XBOYEAcHCE2otS+w== 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=Ukq9elZQ4CxiDzNwIC3ue/c3qg4yV9AhFuOhz9vKoRU=; b=SNxiWy/SWDU+vWVGFR6b63BZtlRFmBbyTskJ3kCIMaAyIa2dDX2gFCZOjKSP6iLCd1UhMWUToydvQalMd5GvnT34qlvbmahFeUNH0W7RB7F2p1zeEo2uzrf59F8E0SCHKjFTEs4QvcBvfsyzi1m3bdGfIK/ZBplNW1L7gMAVQxA65YBROLLVDWGn2TM61g88Q2lLwgib1fmrWhCuf5PTdLo4yJYXL5ODHdGnA4jYWL1Pju58+6WyICsgfFmp+OqtneQuIc14kLSexhaSoEnOOHEBW22L8HedKfrdbQtQvbBZZkX7rSL6ZgDwW/aAhtY6IYbJJYLtqfhDdQnqppA9Lw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV2P250MB0997.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:d7::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Sun, 2 Oct 2022 00:08:16 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::68bd:2fc7:ac52:38f8%9]) with mapi id 15.20.5676.023; Sun, 2 Oct 2022 00:08:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 2 Oct 2022 02:06:14 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [oXxYmDR8TfpWnRijELGaomiQdCrJ7fBrr24S3CCdkA4=] X-ClientProxiedBy: ZR2P278CA0010.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::14) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221002000617.469194-10-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV2P250MB0997:EE_ X-MS-Office365-Filtering-Correlation-Id: fa7ff31f-b481-4752-fdec-08daa40a3474 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqRS+LhpAttTUY7UGhdHTSo/Fa29JLsawWKDDDtDsV2cqLbcbEuycCr7XiXBLiV/8XM6As4zHwc+yymyTe9K3GHCBJNq8XodOtyUiuMIB1iNSb8++tjlbeqjfiblQ1ZNNGQ8aIs6qjYf5uDU57/Pod339FqM27IMTKEy6IbazypvU+An0sVtg0CHaai/LM5XxoRAVzfV9tL8G7H5Pc3bznIJZj8+sRKmfs12JgZJSlse0/leZKehWEys64GBNet+3V2DjZWChPoS6ZHZDad37fbFykLfQ14IthCSZVt+ekHRlc5P+y/biE6vPZq8FqVUExyQCMuMIi6pMrWUoWQnW2/k9+0x+/Hqgrwk6yfIbhtX2zXPTSNfsZJWqXT2qsv2wN/7st19I7IZbWVVANiUD3MA1x1FwZ2sL1lk3gEWAaFaHBv4cedjtkk5gf5HKVTFx3n/z+wIiqQkv5NmpaYbdFmUE+nyAARc2bBcPY7FrHxHJRpPks7xDN1JfJc4AKIFs7gb3mkucJFfwxDrO0QQ9ojWT+AaJyxmAa/C+Poc3+mTSwTeKdyVleGudazStXml1ctll/O2sLUORJV0vmyCjlSCFKwHXyxHssnpubBXYyqjZdluvSXM/j7rzd6umC8ri3PSQUI8aijHGFHsuirgMZXZ3ehxD6nLQww/jk+kNL6y2BVCFTOilArRRBRK81KyV7GLojUcksmWdKaZ45sTCIP5V//F46J3x513z28m2qTidm0VuMzw6EKmh5do2UO41A= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: d08kwBw0h6IdLO1WZoHuVs+h6hcNS6ElresVjwTrsMyZ5s/kDD1gAnTQ1PHekwCmNZ/jO/omx8amaLYZ3RMUUDoLbdsTnaL2hPQXmkdcUq4JhINhr9B9c/Wwy2+AHztkoYuW8NZcVuY9EnqqQ6qTYElXYhCxa0fJQG1BW0tmT8NTjS8oJj8s0khIF9krnVjOBs5SDhbNbLwQgIvapByZMnXCY2LvM3Tjy4yg1XK/bTFnJLKyQhwKI1Sz+XjpNT50WW7LSr0zI5AKSifQs7ZujufLoSTSucvb3C8Ffifzq23YAmvCpkP+NNZDS1m16ADY4DUMB66wiKTnxvEX0NDyo9x8YhQVYbBeB3aF2nSWgBdNSLQ8VHl9AHHz5sKP8IHzffoVBqAhZerI3EFvaP6sSpJs6VuTwYLm5JQsaeulzhpz9UDzJWI6g+BHuLn9/6XDIUiHtSoeRbUol2PbCOxdWDj+/SLfos+oWe1xEfG4MA4ehUHKe0ZVzRdFQv4HetR+xVPUak4/P9/xewFUM3LgIMIVLopnGVFgOvTzMmcoKEoHRLmkoiiCNG3rNKo5fmr2OQMs/xRDJRylRbRKSs9lWRxpSSP5TbPaQitJBRhvmFXIB/mPzmWVvoU5Jj9Xl0AGAx/6ABptZqw384R4a59eeX0sxm6UgiXV16cxCObubZCPfnYapnsZcK3Zyhh2VAe2 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3FOhiF0ErlnK63HPygJ77C5/WwwbtQSKIlDB1coRSkL3fp7Hs7MfPnff1Dunm3cLJV8sPVsncUAh13IezJ1aBrQNYTySXWY8D2zpRdKy7G730lX8ffgwqOC1hWQeCZ8SXj/Knfhri2H7cp4+V3VcSidLewHDTndJ86VdxbVsJCrUV3fRLGbuQ5iA55I5J1mOv8p6Ik2ph0CMI5FnpS1ayBdULi08YDC92NWkW7X8/zUfsK+AD3MNPIPTdAkVi/ohpP7u07nSHbhsesP1y7tQFpO7WRFNSDqIja2PLZvftIHzrCW1vW66F5G3xGAEd9tioZCwagN1VPJ9fXih4oU96MJUmwahwx94qfh8XxkEENtS/+S715aJp0ZMQd5KWHHGBLHMsPAlM+oZKDvWUhCss9OeWwhFeHmvv9GRHpAQzBlfkZLgBeZc1iDAAdNKm+MqeGtlkH6FD77BMl1jxrW+x4+5Ae+k0x+hhb5CrzwgsF+MMdN9D8WygTmAQjzWSPGl3DlsdZouZmpvIajzDkwbq9UDpnuuxMrP58eljhER7jn6TnI7LJRC/Dg3EWl7b+ox0MLqkPFwLyif9LSOB0wHliTOv/EUzGEd7vO7q9nZb17Pyh2azXblRAFKHlLcpRafVzvh2APYs7RnFXqYpEBmBrvAURAAiVpwZiJLcrsVaqqPuM5P/OVYF6dLSIk+HBjdGuPuoWmT/NQB+t0BkbwXefIwkN0IB54DzIOTC+1ogBC/+N66ZunEjpbyJdGq9WkESqfFOs9nBAKWQGP6V5BjaoiaXRr18JMKJmyb4juwk7IwzdCPc3KbWbblsrSfr3fRAOcCL9Vl/uLFPgzBTEDEJ9lzielEBBq1B4vCTShBeGDvMpEFWArhk0/SacxxIBoyOpFWVxUyHnCcbx5MnB8bS/rc4xDCfRZRl6pmPgvFqdmDH6l17MrAtU1jtVXGLkGupZUQhA9X5NeOu/ANCvpqgryWg1HD+V01TZT7+kv+n0xAPLP0Q8451KcZuGecovC2YJYbCkX2k63MVm3czG1vMF36Dp7Q14ICCjIzmeq1RIAV1AlpVoXV7FYm4tPcVrk2s9ATp+kf/sSph/H7zN0Vv94K2VQe6voNI1coKzhsrbtEjTKxV5aZYoc2JKU2kAbifEBjbvBuMgEKnPee7Mpdg1bZRapB7klE43uEMtLj1FzLPhHafpfAjv2MTdWfj6aEIZyxyOzYC9n8CyUpxppyIvdmovVcB9hqeJczn3AmHXr2YoF5xsu9sDgDxFQBZb1LnRL7au4dRnIocMqd5WWqpq46Ra5DQ9PokdFFaH4W03I= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa7ff31f-b481-4752-fdec-08daa40a3474 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2022 00:08:16.4932 (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: GV2P250MB0997 Subject: [FFmpeg-devel] [PATCH 11/14] avcodec/huffyuv: Use AVCodecContext.(width|height) directly 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: sQRDl9Kh/7y2 These parameters are easily accessible whereever they are accessed, so using copies from HYuvContext is unnecessary. Signed-off-by: Andreas Rheinhardt --- libavcodec/huffyuv.c | 9 ++------- libavcodec/huffyuv.h | 3 +-- libavcodec/huffyuvdec.c | 10 +++++----- libavcodec/huffyuvenc.c | 20 +++++++++----------- 4 files changed, 17 insertions(+), 25 deletions(-) diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c index 471bfa1bb9..4a5bd53998 100644 --- a/libavcodec/huffyuv.c +++ b/libavcodec/huffyuv.c @@ -55,12 +55,12 @@ int ff_huffyuv_generate_bits_table(uint32_t *dst, const uint8_t *len_table, int return 0; } -av_cold int ff_huffyuv_alloc_temp(HYuvContext *s) +av_cold int ff_huffyuv_alloc_temp(HYuvContext *s, int width) { int i; for (i=0; i<3; i++) { - s->temp[i]= av_malloc(4*s->width + 16); + s->temp[i] = av_malloc(4 * width + 16); if (!s->temp[i]) return AVERROR(ENOMEM); s->temp16[i] = (uint16_t*)s->temp[i]; @@ -75,11 +75,6 @@ av_cold void ff_huffyuv_common_init(AVCodecContext *avctx) s->flags = avctx->flags; ff_bswapdsp_init(&s->bdsp); - - s->width = avctx->width; - s->height = avctx->height; - - av_assert1(s->width > 0 && s->height > 0); } av_cold void ff_huffyuv_common_end(HYuvContext *s) diff --git a/libavcodec/huffyuv.h b/libavcodec/huffyuv.h index 83309d4b11..92e390ad78 100644 --- a/libavcodec/huffyuv.h +++ b/libavcodec/huffyuv.h @@ -72,7 +72,6 @@ typedef struct HYuvContext { int yuv; int chroma_h_shift; int chroma_v_shift; - int width, height; int flags; int context; int picture_number; @@ -96,7 +95,7 @@ typedef struct HYuvContext { void ff_huffyuv_common_init(AVCodecContext *s); void ff_huffyuv_common_end(HYuvContext *s); -int ff_huffyuv_alloc_temp(HYuvContext *s); +int ff_huffyuv_alloc_temp(HYuvContext *s, int width); int ff_huffyuv_generate_bits_table(uint32_t *dst, const uint8_t *len_table, int n); #endif /* AVCODEC_HUFFYUV_H */ diff --git a/libavcodec/huffyuvdec.c b/libavcodec/huffyuvdec.c index edfc8c0038..89db3db65a 100644 --- a/libavcodec/huffyuvdec.c +++ b/libavcodec/huffyuvdec.c @@ -558,7 +558,7 @@ static av_cold int decode_init(AVCodecContext *avctx) return AVERROR_INVALIDDATA; } - if ((ret = ff_huffyuv_alloc_temp(s)) < 0) + if ((ret = ff_huffyuv_alloc_temp(s, avctx->width)) < 0) return ret; return 0; @@ -873,8 +873,8 @@ static int decode_slice(AVCodecContext *avctx, AVFrame *p, int height, { HYuvContext *s = avctx->priv_data; int fake_ystride, fake_ustride, fake_vstride; - const int width = s->width; - const int width2 = s->width >> 1; + const int width = avctx->width; + const int width2 = avctx->width >> 1; int ret; if ((ret = init_get_bits8(&s->gb, s->bitstream_buffer + table_size, buf_size - table_size)) < 0) @@ -1185,8 +1185,8 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *p, const uint8_t *buf = avpkt->data; int buf_size = avpkt->size; HYuvContext *s = avctx->priv_data; - const int width = s->width; - const int height = s->height; + const int width = avctx->width; + const int height = avctx->height; int slice, table_size = 0, ret, nb_slices; unsigned slices_info_offset; int slice_height; diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index 9da344a666..0e9b24c8db 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -236,7 +236,7 @@ static av_cold int encode_init(AVCodecContext *avctx) switch (avctx->pix_fmt) { case AV_PIX_FMT_YUV420P: case AV_PIX_FMT_YUV422P: - if (s->width & 1) { + if (avctx->width & 1) { av_log(avctx, AV_LOG_ERROR, "Width must be even for this colorspace.\n"); return AVERROR(EINVAL); } @@ -310,7 +310,7 @@ static av_cold int encode_init(AVCodecContext *avctx) } if (avctx->codec->id == AV_CODEC_ID_HUFFYUV) { - if (s->interlaced != ( s->height > 288 )) + if (s->interlaced != ( avctx->height > 288 )) av_log(avctx, AV_LOG_INFO, "using huffyuv 2.2.0 or newer interlacing flag\n"); } @@ -379,7 +379,7 @@ static av_cold int encode_init(AVCodecContext *avctx) if (s->context) { for (i = 0; i < 4; i++) { - int pels = s->width * s->height / (i ? 40 : 10); + int pels = avctx->width * avctx->height / (i ? 40 : 10); for (j = 0; j < s->vlc_n; j++) { int d = FFMIN(j, s->vlc_n - j); s->stats[i][j] = pels/(d*d + 1); @@ -391,7 +391,7 @@ static av_cold int encode_init(AVCodecContext *avctx) s->stats[i][j]= 0; } - ret = ff_huffyuv_alloc_temp(s); + ret = ff_huffyuv_alloc_temp(s, avctx->width); if (ret < 0) return ret; @@ -715,9 +715,9 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet) { HYuvContext *s = avctx->priv_data; - const int width = s->width; - const int width2 = s->width>>1; - const int height = s->height; + const int width = avctx->width; + const int width2 = avctx->width >> 1; + const int height = avctx->height; const int fake_ystride = s->interlaced ? pict->linesize[0]*2 : pict->linesize[0]; const int fake_ustride = s->interlaced ? pict->linesize[1]*2 : pict->linesize[1]; const int fake_vstride = s->interlaced ? pict->linesize[2]*2 : pict->linesize[2]; @@ -848,7 +848,6 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const uint8_t *data = p->data[0] + (height - 1) * p->linesize[0]; const int stride = -p->linesize[0]; const int fake_stride = -fake_ystride; - int y; int leftr, leftg, leftb, lefta; put_bits(&s->pb, 8, lefta = data[A]); @@ -860,7 +859,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, &leftr, &leftg, &leftb, &lefta); encode_bgra_bitstream(s, width - 1, 4); - for (y = 1; y < s->height; y++) { + for (int y = 1; y < height; y++) { const uint8_t *dst = data + y*stride; if (s->predictor == PLANE && s->interlaced < y) { s->llvidencdsp.diff_bytes(s->temp[1], dst, dst - fake_stride, width * 4); @@ -876,7 +875,6 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const uint8_t *data = p->data[0] + (height - 1) * p->linesize[0]; const int stride = -p->linesize[0]; const int fake_stride = -fake_ystride; - int y; int leftr, leftg, leftb; put_bits(&s->pb, 8, leftr = data[0]); @@ -888,7 +886,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, &leftr, &leftg, &leftb); encode_bgra_bitstream(s, width-1, 3); - for (y = 1; y < s->height; y++) { + for (int y = 1; y < height; y++) { const uint8_t *dst = data + y * stride; if (s->predictor == PLANE && s->interlaced < y) { s->llvidencdsp.diff_bytes(s->temp[1], dst, dst - fake_stride,