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 7D40143A85 for ; Sat, 6 Aug 2022 17:40:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 104CC68B685; Sat, 6 Aug 2022 20:40:12 +0300 (EEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068041.outbound.protection.outlook.com [40.92.68.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E7C168ABEC for ; Sat, 6 Aug 2022 20:40:05 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E2/s0MHqVID3gRdcaRsZbbvsKtItgqkXRBiO6Hy4DNAPmz+4NbHDJ/+AVeKHzYFtN6kDnsxy1Oq2sooKIYRZmKG9dTd9YHZnjd+atJCuZFkFp8NPv3LS97BVfzIT8+G24Rjq0y2GWGJqDwLOAdxvIHyuJ4W9d8SIAoBoSOiwIKNSSJF1dlAXN2EtMbbPYin2yBSHCGtq/SJg+683j4mrvHcSR99s7jjIbiB/cJHg70UgUNgfvXAB71X3i10q8QAHfpsASHVvF98Jbgnpqfoo/bXUUtt1TTBFr3aJ8RTySmkT+ZifCjLf0Lf0iTI/eIjdTV0yXpTm/0QxQ1RbZ9ZaQw== 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=5QQkqhekL/XgDlCIrBY4g/NiuDP179cY3yaJ3L0ttow=; b=obPIrBUHrPmhsIMJvJyN4fDmZCOI/4OWGfWmfm5ok4QntddJNt62XE+eh8dNHVFQGMrFY7dML0ohKHLONz7O/rthml7lTvA1/e1Ykk3RxeBLKFVbW/oFgxXoxirhP9vwdnCbSZ+QKr42co3qZKG6WAToTFGutiL/6wT0uHFNbRvIxlWNAxHnFmMb0KV8XP7e5XIcz67VTO0hszLzHPzLR2nqWaiKa19OYcPzD7HhSGIJWpgUybGparkTTLEeT9w23meYzaFoswmny37chyEj3sweTVyBWTtZJIUavtNrHjoImh49vYKcP7w+CfJyAZ4rnGUbV9mGkcuAv3Fum0JVGA== 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=5QQkqhekL/XgDlCIrBY4g/NiuDP179cY3yaJ3L0ttow=; b=qjSAeL52tdZViniGPjGmNI7od7F7YZAnUiLGvx+gLO4xZ4JByENliNHaGmDUfSsxWFaZBEQwgtSytotGJl4aDeObRXuLSFh2j4qXhkBnWEZPLLA0Zwlma8eTIxWQojZ98H83Gx3Ds/II2fgIzOJXol4IgXgKp/go9iBXP8JIa2GXVjSnNrmntrvr302Mlnw3rje5bQWpM60ALQilCK5OM0mEbOH/U4BPSBSzs8NzxX3OAS66p7JS9Yo6A0XYrUjzmZtZTd8ep6hYzyc+fnuGUDUWJCn4wA2YFvNK6wqnvPxhlZTqOk5zjpIAwnhc17gQQYg7R3gMISRiM8GfWZvz2g== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB9PR01MB7180.eurprd01.prod.exchangelabs.com (2603:10a6:10:212::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.14; Sat, 6 Aug 2022 17:40:01 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5504.016; Sat, 6 Aug 2022 17:40:01 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 6 Aug 2022 19:39:48 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [wsnYwlhHQTxAyDSYzV2+EpXAWP+ZizAW] X-ClientProxiedBy: AS9PR04CA0130.eurprd04.prod.outlook.com (2603:10a6:20b:531::29) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220806173948.294863-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 26959722-251f-4012-2b92-08da77d2b042 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNXYfOqwd1ucqK0pZo26bPpvMvR1e/6OcMxknZojdAGrS8RsCqAwyKr5imVrj9IaVzhKOHmWyAQGrXg5WdMfnxDNOjhzZQwXFM7nCKj/c/jOzbgvs2cJf1Fq6Ffkw5DOWxLWrw/r0gJkkdEymQFnYoiKnq2dFEWannFVw/SxlviZFuPtcmqhEggGSFsWSJeRh6Xf5EyM8sTchni2ReUWBmI3kVPW7GsWZ25kXzbT+MsuN5hlXAsYkHgEFFCYwAMWA6KEkl5In6urnltnn6PwoMhQ8ee8tN2ONFa82iNisdrXPd6oHRe422THQcJre16A3Embscx7Trppvis7Is3IrVu9vTmdMdEThWOWpBFoyLnVinqZ4qxpnZxz8ieFPdswysdVf/wO5JykW72/+AjvFuVwhIvJpBk5pbWTXG0PR8I0/EKTteeKH2C5b2NT9gnV4j/6qCyAKgvJi26i8/tgV6sCFI5c0bFHOS9KZa8mdrG+7RjSIafRT/TY21+0zjwFB8tAA3IygeVwMorHr8zUvU02yXQdhdIHsU+lOUozvjjgfIevwZYykmX3OJkdg+vz31M37DmEhEKRZI/WTIlYUUeypaNW7zyl1hC4/7O/ZFdOQZZ09Z5SEWdq1qw/CGA8LuS38qTA/YFgXg9r7sa11nA6eQGlRZxdB9Wg8S1V2xQR8XO0X5+8MO5NgrXDHdDoVJHUoTiyMgBRvjF0vKcY2IQ/WXOQUxD6UI4= X-MS-TrafficTypeDiagnostic: DB9PR01MB7180:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cM1F7HEXTEZoz/Yyo3MsufC0XXxAYhtfCBlupPm/qcTKvgN2jxx5/O1JLx88X3+ep1JE01H50w7qNHfa703BSj2idZ6xyXJzDvG4VqRQcjQqFSVugu0GysDAqnbY5dqpW6G70/DHJcVVc3HOotwjvlMOcm84t/kcZ4jATWwGLm0NHN6R+qnoVN5FfMk9KnxM6CkH9Rz1XSLjsgxH3+eljZvDGhuU12qJmnv18e9HXj92CNSHqb13lagozFVh5hOUAs9GTL8TpQ7ahTnbpllJgAIV0XIWF8CeiDOs0VwOSed2V2NTTmB4gCF+7pJisWXL5+uMb4Ev61rWXZF9kR1gAuuyD3SuW7sq4s1VXi7t2nNGN8SRHsvTVG1mdPm6Njvzs28iH7S+cdxegGHAlbvAb7SdZMiqbNmZLSh+ZKXv7hshxTXH7z9g+rP5SnYcwTjDlk+hDtKmX2bmzPbFD5ZcV4vAG8EAfQECR1Gv1n7+3JnXUshDxCcqTUDaEibfuxQRb9nqGZRN5y66RRKqlRmrdxXa4scy6Zf9QjeBGGsciJyGTKVgRCvXgI37qJJoW2zK2XoL7LkChFOfSQTtUFpEZdGOqGjj53AlM8YG8CZYBciZ52pPj/0gFGUkyYrhfW3aB7ki+JQm7Z06t1pCIjukWw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UBEySHMriu/3tC8xy9Ht9KjxDq8fqps8ZZUccTr3/sjzfWirKM+iZCghVQKy?= =?us-ascii?Q?SGRYH6cuGLz3BaSZV5WcUjBBXUNH3NycC7rSR/jcroPzjxAe/ubZA4rVogk3?= =?us-ascii?Q?Lz9zHcZEoQRl18L2+hWXKcOI43EXjDlUwvcEq1rl4GIoPrKgetb5xflp7Sgb?= =?us-ascii?Q?SLuCQdJdCz1jZH+eKcZcRAn6mtBYAeaIiub5AWQJ/Meu3ec9SXuDiNA5mYaA?= =?us-ascii?Q?lSqGeMPqp1GLi9WYFQcu1qXZNSFD0kopex3xqvw54/6iObtsHgoMDZlUQxwz?= =?us-ascii?Q?C6j1TioisyhpDfzuAOEdjQRIZLnwjCBKpd/oF01qeenH/J0LYYpgDAjI4lCL?= =?us-ascii?Q?Z+6wxDo8H/Z0L1Qth4SNRNhQ8jEL9vrgqjhyWWQpyDfv+AMByp51u4RXTzVU?= =?us-ascii?Q?ZeZY0gB9S1/sGuRIJrHzdmtMcWVxg4hYbiZ5+9WIX6Wp5ZeWPjjjpaBf0PK4?= =?us-ascii?Q?w5Rft38q5+9EXpZqWjG5H7ctcMU/n6BsaaCXmPvxQKuc5lZE31EhSq6qL/Zf?= =?us-ascii?Q?Qu1iiy5ikyq1B4HRzvUu4kRP96hYN11yrEzsLOPAxswuWguYHkWlmdPbclr2?= =?us-ascii?Q?WLLSmgEt6go241QV+8M7L1XszpQQUWMvDJsfjWGIp2P110vAChK+bQUGE5pT?= =?us-ascii?Q?2rJatEIlt3a8sYH8VHOief3yrKx+g8/P6WQaws09mWA2IO79Wxw2JDakEUrs?= =?us-ascii?Q?3CSGPHVzBio1j/JG5yaJvg0PJaevESsqNCKxBp0X2/Xlg+Hr7BtUrDxTZVaA?= =?us-ascii?Q?leMMaohgMxnSJzkCO3U5T6PCD3RcWCaR9TWfV5cVXCSak7COMYDsL9AbQhzt?= =?us-ascii?Q?9T0SnP891NmHrUnTMPCrNwGTGnXIoRevXgXGUltHREstm12NLd8CVEbmfZ/0?= =?us-ascii?Q?PSwdPjx+uEBmOPTnIm+TMVBTBIaf4Lt5MCZgZzpC9o0fgo3OLgKv8LVBHY/O?= =?us-ascii?Q?jTPw2bYKOXXXquPnvvWCWtdF590kK6JKFvgX2Kc2lLQ6AS5chSHIQVIponih?= =?us-ascii?Q?37tenoLMzC0NJEyhqgbREIzHzRZwsoWuhb8/N8uTDf5i7H20zpDjvJG9cwWe?= =?us-ascii?Q?ZXU9Bh6nWbBIHiDOpJku5fNCqSTqMlK7GcApTELZKH8PQXtEN1cs9CLL57Fq?= =?us-ascii?Q?AtPxc6mC6PTKZGFmQyu4KxQ6OUT1nD8a++3f4fWdBUXpZ4AWM7XguLM6LKDa?= =?us-ascii?Q?hOyaSpaBW2OFWEvF5XZD0Dzq5iTAjQ2GPJbMxdhk1MRCyfwzgWswNuxAITsb?= =?us-ascii?Q?C+hQsFyd1glBkBmO80z7w3HBl34NW+CaVepkVOMAvnu/LyHWiaKH6P36dmxo?= =?us-ascii?Q?Izo=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 26959722-251f-4012-2b92-08da77d2b042 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Aug 2022 17:40:01.2654 (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: DB9PR01MB7180 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/nvdec: Redo handling of failure in nvdec_retrieve_data() 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: Said function has a block intended for failure on the main code path that is jumped over when no error happens: goto finish; copy_fail: /* cleanup code */ finish: /* more code */ return ret; This commit changes this to the more common: finish: /* more code */ return ret; copy_fail: /* cleanup code */ goto finish; Given that the cleanup code depends upon from where one jumps to it, it is also split into two code blocks with their own labels, thereby avoiding the check for which case one is in. Signed-off-by: Andreas Rheinhardt --- libavcodec/nvdec.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/libavcodec/nvdec.c b/libavcodec/nvdec.c index fbaedf0b6b..0a4fb30b42 100644 --- a/libavcodec/nvdec.c +++ b/libavcodec/nvdec.c @@ -513,26 +513,27 @@ static int nvdec_retrieve_data(void *logctx, AVFrame *frame) unmap_data = av_mallocz(sizeof(*unmap_data)); if (!unmap_data) { ret = AVERROR(ENOMEM); - goto copy_fail; + goto early_fail; } frame->buf[1] = av_buffer_create((uint8_t *)unmap_data, sizeof(*unmap_data), nvdec_unmap_mapped_frame, (void*)devptr, AV_BUFFER_FLAG_READONLY); if (!frame->buf[1]) { + av_freep(&unmap_data); ret = AVERROR(ENOMEM); - goto copy_fail; + goto early_fail; } ret = av_buffer_replace(&frame->hw_frames_ctx, decoder->real_hw_frames_ref); if (ret < 0) - goto copy_fail; + goto late_fail; unmap_data->idx = cf->idx; if (!(unmap_data->idx_ref = av_buffer_ref(cf->idx_ref)) || !(unmap_data->decoder_ref = av_buffer_ref(cf->decoder_ref))) { ret = AVERROR(ENOMEM); - goto copy_fail; + goto late_fail; } av_pix_fmt_get_chroma_sub_sample(hwctx->sw_format, &shift_h, &shift_v); @@ -542,19 +543,16 @@ static int nvdec_retrieve_data(void *logctx, AVFrame *frame) offset += pitch * (frame->height >> (i ? shift_v : 0)); } - goto finish; - -copy_fail: - if (!frame->buf[1]) { - CHECK_CU(decoder->cvdl->cuvidUnmapVideoFrame(decoder->decoder, devptr)); - av_freep(&unmap_data); - } else { - av_buffer_unref(&frame->buf[1]); - } - finish: CHECK_CU(decoder->cudl->cuCtxPopCurrent(&dummy)); return ret; + +early_fail: + CHECK_CU(decoder->cvdl->cuvidUnmapVideoFrame(decoder->decoder, devptr)); + goto finish; +late_fail: + av_buffer_unref(&frame->buf[1]); + goto finish; } int ff_nvdec_start_frame(AVCodecContext *avctx, AVFrame *frame) -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".