From patchwork Mon Jan 10 22:55:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33197 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp3164430iog; Mon, 10 Jan 2022 14:56:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJzakZ0s/JgH+6m+JEcMmCsvuey3RSLnlXCuUl9cRywxw2seX5lUihUlukc58MqfScyP5hbL X-Received: by 2002:a50:d541:: with SMTP id f1mr1761687edj.18.1641855377265; Mon, 10 Jan 2022 14:56:17 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n10si2949017ejx.850.2022.01.10.14.56.17; Mon, 10 Jan 2022 14:56:17 -0800 (PST) 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="bJc/2i89"; 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 E492368AE4E; Tue, 11 Jan 2022 00:56:02 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074097.outbound.protection.outlook.com [40.92.74.97]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DF0D068ACA5 for ; Tue, 11 Jan 2022 00:55:56 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UjF8gBJALTzxFArWOl3M2CckVFx4AeRgGz1ivIb6oA6K/mnFcyxF1dC/mwxb+LhteMAi5Aw3mndFO775r+UJnh4Yu4+/jDqNVAWPm8eq3nHv1gpIWbzmgC8TM4vWjdD+KsHhKWZpkG/29nIMkD5MvxBjVIctTPlcS4PiO4bO55p1NsniFsjQKknn66vU20J2XDL2uKJsAwHGdvnsPb11I1BW1xUWGMr0yKDyuCpX3whpwbCZjeW4xECSyH3iyBn9W00B6bdxdYnVtVyy8giT5OWxy5ehtX3+QGxrD6f2CChOI8V/PPN04bQyB2ktDAwW+UFmk+XoRdNcPwbgPKaoPw== 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=ScMc0vIKKofPOUYTGwNKq4e7lbFZynw5ThGr5k2T4Jc=; b=S/eNJo/VVEz1OD5C9Rg7C8HSgKJqicIrztShPL2mF4L0fPuZ3Hi8uHP1XzTWNmkrX5fqQs4+yAgQpQz0ExRPVwprh5aFbHbQrUNNpXUD7N6zIQ0SktnrMwEh5f87UdiCl9YNKSap1t5qPlQ86720rjrOSpRLyR20laMu9W+Awls1YnnHFzbUnrvF7B5A4dc4sYzFLFhjxslXKS5DBM4gxOwmlzup6eZghSQi9rm4WAJp7fzpID9K5dOZFst7cBR+F8xAsV+zXetJPvQgNcEIheinn9WnYpmWeimM/H+r6hXg/tZGBbsLrPgWt0ALqaFAwgJUVYz7lB3uqemfqrt2xw== 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=ScMc0vIKKofPOUYTGwNKq4e7lbFZynw5ThGr5k2T4Jc=; b=bJc/2i89zgKsykoX4Frl8hjlaZyLn+I+iap9GldO0T1uRK1EMnXYMVr7dc24f6OWZsoZs9/K0G9s2ZF3tgaFf/mQPF6VEv3gNaBQb/DJ3t1wwv4sq6Q1CwoIRITslrWK+wooDXox5gVEOFGR78lylzfXv7UFpRvytPEQyrakt3Gy+4ij3OqDo47+Uw60wIyK+Julh1RTUI8AtsiP0iwqGm9zGa4S7tjtfsnC7ZOr8+JW8KuKsN2VHGRdpcu97c/k4CsIOtkUEtMrrQYpxwQsLfXpghJVE8LLHk/Ys+HAnH+nvUxg/ZBWY9mmk2WHkXvpHcwnPEBUH+uHoFQpRlRuaw== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6181.eurprd03.prod.outlook.com (2603:10a6:20b:142::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Mon, 10 Jan 2022 22:55:47 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4867.012; Mon, 10 Jan 2022 22:55:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jan 2022 23:55:36 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [Lk3Ywxkc5KpFx6IgttStOeNlxxQUTp0a] X-ClientProxiedBy: AM0PR02CA0021.eurprd02.prod.outlook.com (2603:10a6:208:3e::34) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220110225536.887209-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: cc8fc285-caa8-45e2-7a40-08d9d48c570e X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNWm3GLoeUntTG6KfWWWbWhl6Xxv8kA0Tq0xRJyg66DfNYq6y6OAXB0OvA8Ox/1V9DCJzilpUgVF9GqdIPqK7FfuElDjNKLFL23NKUakNoT56qnICLXwu67mt07WALpPJsfi1Rd5PnROT+nUil4fhaIJn2e8nnzoUgz4iX96bZGbjb+EVbZfYfoVTY+NM/2zkzmc4pQE1wuUhie1Yu7bMp9kI6R/K+D0mvZD09OJYAtB0xwmqUCD5ywVjg01NBbs9ZrjEFc72tL5wZj88T9lrTiY981iUQsk1ehyuvAspJdwUP2Xvhe7XCxfIrZqNOgnF+IdQgCmB/g2DlmaywioTI/LRzUBR2tk8RAoOOwc+HD2+D5QA/UidoUKMGM+DO9A3vUHxSktFdKxp6wCvlhZElFUuhKlIga1ULeASX2iWtoeIZYBAy4FcNy93FIeNx8GrmpWWbAgTWBZPOcmZgLzL/iEKjT2APHXZdEBYg9ZLaRyJH4fRNe1qbYVoTVSz+E7GM6u7VJdFi8GZaRZSTBi9VWt+xNb6FdcilIKXoC3LdQwJG8YU8tli3CrrIOlLfhLoUxFeS9OYeqwGrQJ5pXGlPJPKi/rFdCBursDPkISPVSZLPJRaw3CrGpLShGl7w1gqZhf5DTRc1BtdnOWsVxMdr7VwnHUV9YlVmMk2FCtkNULOb75arB9W+fn4vtIJ7k59DFU6gmrRGUCW3ytabjo3mugF5w87lURRqM= X-MS-TrafficTypeDiagnostic: AM7PR03MB6181:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OjATGhZ2rfszY48Ogoij0fKkqBwQiyXLcPDJkh0o6O/gMAGok2JNp3Vmhx7htm8HMgsMv629zUl8tKkrAwWZMmELTYnRf0EvWflQbMem/qWk8CNPITRCEcuDKdM2vuq16YRaZHxcyvlqBS3qW+FN2Wx/1rTHfxiOWHxGhKoIgT+7qGw8rFiBjdhyuBjpr87qx1U15/KqCtD8sjeqXUeVPHALqdjnDWfzDyJ5ugyFALA2GVkGuxfl7Mm94r1hdq+gL2SvJWmdlUG2EM4KNUtzPpALI7CwlZ0TPGcW9kthowVPXagaEwgLsy2WShdUyrRj6TUEGX+zOUAcGztDcCg9i2yULKfAoAVNFFYhpEE9LWW4eKp8uCDqHr3IzG0UmgFnU57VdZTuyJ2hxXrUD2Y4+RcB0B9J9kF/WRRsHpFcXnoXaJtyp/sXD84RCG7qPZQhXUx8lMygzgLM4+69wMv8bDxufecFRMyF6Jm19NwVD4FgaGYP3T1++ziEd9pdD2+PnHE260rpKsXFOEWaGSAxdJhYg3jzo8IigKyIbXcXL8LTpWaCBmSmjBaN9jsy39bpGopvdxLmxfQLU7zBvkaYZg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gLueJS+VNfurgGn+ngnWcOO3MKTcShGkWOToPADlCJggqY8HVLaK/t2IOT5lGvopoiuEk9u3Eg7NYM5oLTqD0GWbu4lgBCcT0QlFLXMxey3EGVxiZYo0N7JZhndE3YU/D2oXVJlzA69JeFlV6XcTAAj632vxaZ0251aQJJrKRKHt524SvCciua6TBMQ0kANnH8oKcRYRYS7t9Dflk7Ay4Ojfkb2l6Jf7zv/KnwNJntn6plNL4olFz2s0E0+2gtoQHyh95OvwbMCIZZgS4ySrzIk+xmi6O1zLj1n2kGQ7+L08JK2jNQO0JUJQrVzt7k4jSgWoRr/FPViUzhZFKqv7MYAJFgdhtQaihe5jeBBqKwlK/XiNPlt45yY4fCShxyfRtlLE88S5gB5xs5YMKPZj4rMmiSsjUqARLyoaKy8fp1Xi/jy2Ym8HcHECLdTXbVekhmol6ysHQN4yzy2C1WsU880xQB/WXka27bXVYXiFCKvA6q3bBXtf/o3ZblJrwNYa6jcGcAhk5RuoMCJfmeH8qUAvEgsJlLjqiE8gZfN6GNA/uoHRe+9zjwGTQgPeryzOcUVG+Z1TOmdCW4yQSvuU8SQ3D+U8OfFHDv2Ba7ohw1JLNeANizYpOc2rPdr/y9fe5vLY++NfLnNUsxEvPGpVONNrlyW0dZiGRhrhs4uRdD3ZHcbbjECuSqqrP0APYO5iJeHweVqF0pyod9rO0BuM5Quz7k8Mz4JaBePYN00iyAM2pZ6BkGItsWHdrRtX6pEA45ELSM8RJIKV22/baiImRRdv2R2mAbQqxp//j3pov4gSI63I6tKoG86qu93mJK155r17ZelgXaIo80AKbR+0ToI8VWT8Wp91RqANKLYpA0VgEKelOVHkU1VxNndfONn0AsgCWgBA6onU5XqNkqzNfo8OCYmdIGloJTMAlSmWX4VXrdjQhkf2WfqHfE23DzomngASkTKtKAyrJ8tIUY075Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc8fc285-caa8-45e2-7a40-08d9d48c570e X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2022 22:55:47.2912 (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: AM7PR03MB6181 Subject: [FFmpeg-devel] [PATCH 9/9] avcodec/mpegpicture: Decrease size of encoding_error array 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: ukoibaYd+Q2/ The current size is AV_NUM_DATA_POINTERS (i.e. eight). This number is chosen in order to minimize the amount of allocations for AVFrame.extended_(data|buf) for audio; it is meaningless for video for which four is sufficient. So decrease this array in order to minimize what is copied in ff_mpeg_ref_picture() and at the places that copy a whole MpegEncContext. Also do the same for snowenc. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegpicture.h | 3 ++- libavcodec/mpegvideo_enc.c | 2 +- libavcodec/snow.h | 4 +++- libavcodec/snowenc.c | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libavcodec/mpegpicture.h b/libavcodec/mpegpicture.h index 4bcd666797..a354c2a83c 100644 --- a/libavcodec/mpegpicture.h +++ b/libavcodec/mpegpicture.h @@ -29,6 +29,7 @@ #include "motion_est.h" #include "thread.h" +#define MPEGVIDEO_MAX_PLANES 4 #define MAX_PICTURE_COUNT 36 #define EDGE_WIDTH 16 @@ -88,7 +89,7 @@ typedef struct Picture { int reference; int shared; - uint64_t encoding_error[AV_NUM_DATA_POINTERS]; + uint64_t encoding_error[MPEGVIDEO_MAX_PLANES]; } Picture; /** diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index afad9c8be1..35f0f79d4e 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1792,7 +1792,7 @@ vbv_retry: } ff_side_data_set_encoder_stats(pkt, s->current_picture.f->quality, s->current_picture_ptr->encoding_error, - (avctx->flags&AV_CODEC_FLAG_PSNR) ? 4 : 0, + (avctx->flags&AV_CODEC_FLAG_PSNR) ? MPEGVIDEO_MAX_PLANES : 0, s->pict_type); if (avctx->flags & AV_CODEC_FLAG_PASS1) diff --git a/libavcodec/snow.h b/libavcodec/snow.h index 8795491cf3..f5beca66e9 100644 --- a/libavcodec/snow.h +++ b/libavcodec/snow.h @@ -35,6 +35,8 @@ #include "mpegvideo.h" #include "h264qpel.h" +#define SNOW_MAX_PLANES 4 + #define FF_ME_ITER 3 #define MID_STATE 128 @@ -188,7 +190,7 @@ typedef struct SnowContext{ AVMotionVector *avmv; unsigned avmv_size; int avmv_index; - uint64_t encoding_error[AV_NUM_DATA_POINTERS]; + uint64_t encoding_error[SNOW_MAX_PLANES]; int pred; }SnowContext; diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index 96b0d320bc..df31eb8132 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -1858,7 +1858,7 @@ redo_frame: ff_side_data_set_encoder_stats(pkt, s->current_picture->quality, s->encoding_error, - (s->avctx->flags&AV_CODEC_FLAG_PSNR) ? 4 : 0, + (s->avctx->flags&AV_CODEC_FLAG_PSNR) ? SNOW_MAX_PLANES : 0, s->current_picture->pict_type); pkt->size = ff_rac_terminate(c, 0);