From patchwork Sat May 11 20:51:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 48766 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:1706:b0:1af:cdee:28c5 with SMTP id nv6csp299170pzb; Sat, 11 May 2024 13:57:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXgpIdoFaJhKv1z0h4IltVROKACyuZMf4LFhkB9PiUKymoOP/lKxSA01odMjgOxnkshBW38hmHIP6aYwpUfAmDBeyqmmsRkkClRKg== X-Google-Smtp-Source: AGHT+IGasBbM+lQupBIRURIgQ25ws35Um+6LygHC981hCUbvXeApEnBeGSehOu5+JUlS2kvdkfgI X-Received: by 2002:a17:906:a845:b0:a59:9f7b:68d4 with SMTP id a640c23a62f3a-a5a2d5734eemr373463766b.28.1715461058575; Sat, 11 May 2024 13:57:38 -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 a640c23a62f3a-a5a1797cab8si332050766b.258.2024.05.11.13.57.38; Sat, 11 May 2024 13:57:38 -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=u+EzIab9; 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 EFA0E68D5EC; Sat, 11 May 2024 23:54:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2067.outbound.protection.outlook.com [40.92.74.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 42AED6801F2 for ; Sat, 11 May 2024 23:54:30 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lEvBAzL7Z9fF4QAjMrlDEKzniFcgurh5rbA1XP5rIzn6svuwgNqg9TcFxIbLutp9teHOG59pMl9PbNSCt3khGuygRXgOCsGzfqzh59fGjMAjL/Z5BcATPQ5iZNKHVdlGuc6ozTphAvJr6TRQswB+3nNtO9BuN/oRqQsX0IxYI9DQzCPQWytKfCAl6GnQ+BGe+EnwtPN9eZVsawDAq1sY6CCkgSlRp4bx8xzdHO+XBWVixasyzdZSFj+G4LdUvKoF1ibqr5HYXm7rNcUDavHnTfXsIxFqcjgNmnuShtqwZfQZMg6Yq5VfBwIkFEPHPIzvMsJEGsEcyouIKXAwWutk9A== 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=lztE0fSL3kHM5l2hvkDQSvAVX3Qnq/FcO7ELfSnGxcc=; b=JCJU15RPFaXopW077LykyXPBDSJ9WU3sypz8w8i7QBXNk1lOyYTz3at/segJSNqqsV1PNb6GqC0RTh52RSIHFCYggdIf3sgR1ySwvYaM+Qakj/TYXBVrk2Wz/o+lQdtQe6ViWUjK2216bmrxrH0aXQpDfliEjDJsZWh8kbKMCaBxZmsQOBrB57xRu7zh6fL78yymZxApz0nAXbsgbsMHHzR8CZUOQqK2N30CejYSFnPYdcK9rt++SvSn1FOHDg1aHKO4K8ildg+s99QsAKe+uoMxwLMYgPZnt/hV63PFQN4dKw041MXWUv9xMylkdVcYPwXETSzWSeE0W8Y9GfQpNg== 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=lztE0fSL3kHM5l2hvkDQSvAVX3Qnq/FcO7ELfSnGxcc=; b=u+EzIab9+6C5MkbAe71f0hAczgzF7RXsFidF5oIxxaUzkRigCuv1MdyYm48MpdS8BxdLpfSDC/haSbgimxX3OqTMNTzTfUNlw48es8d8XMwgwWOt8K2Io3CxluARQ/uGs1TqZFEktP064LIMqO4ciEWyL1Ua2A0JO8SplcEnTOkWAaHYZf3xqjqWqJST8UWE5okKSVezC24zzt/ZDimOI0IWdMqgY55fabMVnEq05DQHit5iV9oTtoreTSD2hCYd8+52ebxPlORPoTg50n03Gd7r4020GfR9cb783zDl8+Ue7tkULE6CrqnzA8jqvnEG6GGyK+nhd3gdwd9430wSKw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DB9P250MB0403.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:327::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.54; Sat, 11 May 2024 20:54:28 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%7]) with mapi id 15.20.7544.052; Sat, 11 May 2024 20:54:28 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 11 May 2024 22:51:04 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [JFkrSF96I84miB/WJU7jukgysIYw11Hj+scbl6LsW1U=] X-ClientProxiedBy: ZR0P278CA0172.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:45::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240511205135.2411886-39-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DB9P250MB0403:EE_ X-MS-Office365-Filtering-Correlation-Id: af5d24fd-e85a-41bd-52a0-08dc71fc8c39 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: nLH6/JyXrXvDw2CHUxtHYKNj5QsSdXzqQkKC2DuEwVPFrdGvm+jxvH0bvgAb77Qhr2kpPe0GoMrNrz1Jg1dSN/vGP+rhavwtnIapsqIkpsHdVgkkty61O8Mxvx8rYS+Bz/FXLJdf3zkVVYBb8R5POum8GB6JsxrBSdvMDEyo0oehNgA2xu0SS+TmZJHY4Xw4QpzK5ntWcaRcTUlJyTB9D3aj4+Lr16HDvdnGtkoJgcsunTjwxMYKUndTyTGenTmQEDO0MgEcUbm8+LHyZkHlz0q2smLhjv1fiD05mQQT5JMzQAivI6q7VRLXI5dXEH7amVRgwEkKGqvFvCy5pGNbA0zAvcmejZI5vMa/m91c59ZxgmajJDLA2kGJx+3VoCxSZ/929mri1BuFxdzrZ7d0ZjMXCwVHETLSaOX05k8kMHmyhV6ddbD2bbPtKRxz5pyEhFg0pRd/sST8JT6v+hXJKkm5Fqc9GJi52ZEJd4MdeSliZnegl80iE1LIN46YsUEwYcx80zxoiD8mRJ0k1L+HkCuG8kV2x6J5P7Q5clo4DvQnP9RUK/W2FxovHFs1XomLV9iC+XN40GdXjFL44fCl3fqjRgSfI23wzRLO6XxSLbR+fmrgkcwRohGtbVGEkDe5 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: j5DbTFf1K2cOso0v/HRyjJ1il5IuW+viGfz+Pv/P56X+PSlPHzOyH4pIoNvixTJy6ffEtzC6FsTxYgx4Mq7InB5KnsGW1CCzDxqMh7CRKyWzjZs7pBLyJ0jsNApdU0HMY8FbxYaSAPmX2qk3Yuk0zyPf0yy68xFn1qViWsMdwcV0dWPk6fOrVvIss5XPJW8S3+b/SFf05f4bhqdk4Wkfct/c4i4s9bNWbBpJZhN9pK5mZptzgQH2c9lf0GRw1Mm0rNaeDdB9ZbCaRDUZFA/YfwDUD0s49wce4iLI+NM4Ga7dV7MEWOdG1DFkshjcYPOYru/rEz8hYUzKF8HiJCYEmCjDQZYLJwMlcZIj13In/AjYtrzORQlgzDFb2FiUrjhBNWZtEL2B5jX1RGCC1FS2aRAFexNTsZHlf6BnrwcjyryMSiNRlfawQH/FkwQyb4oWNr/Ky9y9XKvdvTKMV4FK11vvlpCU1g++tE9HPP+8idaiF/Xq0F8JVRWB05Nb7bguqUZPPyXiASvQSbX/8z2A+8GO5iMD8qSDzZX8I2K64P1hcGec3S5cMDralDDvOcr1KJwzVcxjFWFpRCQxnd9IU+wmM5B0tHKMUVTc6h0CLqRIw+ov6l5qmnJ0xW1pjIJx0XZ3ayrUf2u3Rcr8N7zeK43tSiPOGOWMMuCKbiTl/RcUd6V7jdvDYvjgS3ADSTDccM7grns3o+PonDWVwNq72th/mdk3w/MdPDmc1E4jqcHdp/nSRHf/dm9ZIshPJnEnRNw2H/IalTJqWlIc59dUeMk+jvy8NC83SXJ0nQyYpFHinScoxf0q5Lf7d+FzVdyRa061QigaKYAWLDWi/uFEtmtYLscG3NvodTuegNx1nCROGHi0CHqMsInXnRl4eZ7uo3mIRX1qGghMa5K9FA9W5bXMRwbuaPFVQVFMcibeUOzUiCPyP+ExuvHAuGAGzPsGWUt4N6A/Cg5RShB6Zn4DGGjdreymws6U4RjtgECsyNybRsQg8WRsSL8JLpGUeOQkq1egcQHBYHZDFGcmfeZd6TtEJSnk9xPDiXodXdyUMuaQKlocjnQjFRHnfhoxbB7k0DBTms6G9xQ7LbGgh/w0R6yQdEtIHUvJu34IdlloSsjvu531qQb7GNvz9knbDMqOQPglf50pZ971OcBBn4Leae48YWPWoDwQdGRpRKPNUJAQMnn3XO8Htn1sJB2b9ZlRFR0vdO8N5RFXqX0OtMMi9g+DAvtnybkRH4fFzz+KgX9MI8fClBsmJFvF+6qyZ9EOFpuwxrGqIoT+ooomtuLxmA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af5d24fd-e85a-41bd-52a0-08dc71fc8c39 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2024 20:54:28.0314 (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: DB9P250MB0403 Subject: [FFmpeg-devel] [PATCH v2 40/71] avcodec/mpegvideo_enc: Move copying properties to alloc_picture() 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: jqZ8H1WLfwj8 This way said function sets everything (except for the actual contents of the frame's data). Also rename it to prepare_picture() given its new role. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpegvideo_enc.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index c6f4cd9b0e..393b21823f 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -1091,7 +1091,11 @@ static int get_intra_count(MpegEncContext *s, const uint8_t *src, return acc; } -static int alloc_picture(MpegEncContext *s, AVFrame *f) +/** + * Allocates new buffers for an AVFrame and copies the properties + * from another AVFrame. + */ +static int prepare_picture(MpegEncContext *s, AVFrame *f, const AVFrame *props_frame) { AVCodecContext *avctx = s->avctx; int ret; @@ -1107,6 +1111,10 @@ static int alloc_picture(MpegEncContext *s, AVFrame *f) if (ret < 0) return ret; + ret = av_frame_copy_props(f, props_frame); + if (ret < 0) + return ret; + for (int i = 0; f->data[i]; i++) { int offset = (EDGE_WIDTH >> (i ? s->chroma_y_shift : 0)) * f->linesize[i] + @@ -1186,14 +1194,9 @@ static int load_input_picture(MpegEncContext *s, const AVFrame *pic_arg) return ret; pic->shared = 1; } else { - ret = alloc_picture(s, pic->f); + ret = prepare_picture(s, pic->f, pic_arg); if (ret < 0) goto fail; - ret = av_frame_copy_props(pic->f, pic_arg); - if (ret < 0) { - ff_mpeg_unref_picture(pic); - return ret; - } for (int i = 0; i < 3; i++) { ptrdiff_t src_stride = pic_arg->linesize[i]; @@ -1607,11 +1610,8 @@ no_output_pic: // input is a shared pix, so we can't modify it -> allocate a new // one & ensure that the shared one is reuseable av_frame_move_ref(s->new_pic, s->reordered_input_picture[0]->f); - ret = alloc_picture(s, s->reordered_input_picture[0]->f); - if (ret < 0) - goto fail; - ret = av_frame_copy_props(s->reordered_input_picture[0]->f, s->new_pic); + ret = prepare_picture(s, s->reordered_input_picture[0]->f, s->new_pic); if (ret < 0) goto fail; } else {