From patchwork Tue Feb 20 12:08:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 46392 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dda5:b0:19e:cdac:8cce with SMTP id kw37csp1806946pzb; Tue, 20 Feb 2024 04:09:50 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVsvfM4+JUfxrj4lBHEQMpLxkJd3csa32vf4eElDRs0iTTpQgaRgs2HwqGd/rCJqHODNVKCMqF8wtMIOSYGXvm+KkjSFwBUxLrt8w== X-Google-Smtp-Source: AGHT+IHJSVF/DbitRcqUzTmWBlxf58dmTLQ9OoEpSWlnm+HxI4DffKs6StPwOMbziPTqi97e4HIc X-Received: by 2002:aa7:c315:0:b0:564:4276:e549 with SMTP id l21-20020aa7c315000000b005644276e549mr4907064edq.13.1708430990623; Tue, 20 Feb 2024 04:09:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1708430990; cv=none; d=google.com; s=arc-20160816; b=uomTYcqGMXo2NdZJhteD0MYVrJTC9GHBcKNr7j0UdWHfhf7cbn03DmhfxVpsS121SW bETFng5w30qmBL0WX5Bg3tuy6o/s5wZ4ymNUbObYMOra46xd5mdt1tLSkA4sS5IM2eUH GAiEIOBx1npVBitkTi39OTh9FCoEfDcZUNIbNC3ZCQoOu7+AnWVwQjDxmDkWnr51UzVy uqNooJVdT3qAdaDLnOJPYtj90UTIF7TBE3UQx2HFB7FViGhbzQBTqF15gIeBAe4wbYS2 l4HMwt4RlZsA0DetX0v3OdfXWZRL+mbi358yABI5I5Wq0dHCHI3P5XaPUICuQtvin/LH a3tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=//OLV4dJL5eNvHRhzYfnDdC3gj648PajDV+ne4AEfQk=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=lA1BZRYdImMoBIdbCaHlJRlT8j+JmLQuw2k8fJXXTdz2ciPKTz0e1nWhRuNx15Rt9h PZR0Q1HOgk0P+kXdWTIDys6QXp3pXGwWf0bvz7O4G5pHSxhjbXWxPl5jIHDJvSw0quUg i/P+oOQFFPH+LATumVuW5YbqVegzGCHQTCWZNyxUqOq/TsKAItfANOh6uy1NroxJwPDZ U3f8wFgNFQZdlTH1HV9deEx2DBzLZAXjAU2LowGJ/DijIbCyhpGeiIHR9ljYVbEH+3UD DlnbhweVHv9WSk5qjqc8VIjQP5/9jCrftA2N0hysV7+pndOV1NUYrS9U+kkAwd83C90l BAvg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=p9bJ4AEJ; 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=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s2-20020a05640217c200b0056419eccf30si3021022edy.16.2024.02.20.04.09.50; Tue, 20 Feb 2024 04:09:50 -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=@foxmail.com header.s=s201512 header.b=p9bJ4AEJ; 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=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C93C168D0CF; Tue, 20 Feb 2024 14:09:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-58-211.mail.qq.com (out162-62-58-211.mail.qq.com [162.62.58.211]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A68F68D083 for ; Tue, 20 Feb 2024 14:09:12 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1708430943; bh=KlOsrFXRKPTPrxe5y+KXBOc2GsNZz/bDQIef/Q+92hQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=p9bJ4AEJop4hoBb5z2kpyZMm0QPVNtxXQyhYTewJKoVqcy78bC1DB4extOhI3o9c6 +212mbNTBcSfb1dYVZ+1PlxX+mXwnKJoh4hDieMEIC98QDq5ag/IiBs3X67jJmaoR7 rBXdPbQT/nlgO6G19Fc9FXLpLFsdijYznXKZdEn8= Received: from localhost.localdomain ([113.116.31.63]) by newxmesmtplogicsvrszc5-0.qq.com (NewEsmtp) with SMTP id 2413D432; Tue, 20 Feb 2024 20:09:01 +0800 X-QQ-mid: xmsmtpt1708430943ty2yusd64 Message-ID: X-QQ-XMAILINFO: NEq0i4SycP3b87VnJiSCy3bquWA5Bz7e1uBodLMib+S+XOY0r/+6V98PTpXLj1 4Pvqbfxll0CrfFI4mrGb59cV3hW3sPFFxdc0ODvCanzyk5pKBQQ/ycn7/Eu1uS1JN3TL2GjTfMdp YpezmRlpqTKEVPUhLdVCsfeOcGsU6j3SugwfrcjVG4REbsMIE6IadE1Gq/lIPtL6zlR5bDrLNpfX L5Sx8F3EAtkYJeorVXdF5MomGYKQzg8uEy8HlWifE0EPyVgGUkNFoByRqw5Y/g1naiefuFVX+NHQ h8xovDaYe+kihx82yoKcK9AyvruKHm6Crtc4zG/QAdnOp6WdEvoUd8APZsO04k2FtrylzFx/7v1M u5xtpR0a5K40qMX4OiDLIurf25x1b8f7RuyP6WQc4Fg9H3uBPmZUYMfncvxC/dZ31TuFSjWY5luY 0KYC+daUlhaiKKfL4V9OPbbDDBC4jQvh3dYG0KPIXPvXcV3KFLz2c3OPyV9E6gUwx3VhwcirZDAt FAgB8B3EHoknwNyMui7ZyrOVWFm8bVFspFO0kRcF+GRGHfqZzeFhxyLdkOj5nGvO+u4vnFLdy0sl NQVU6rCrRJoBT+g9p8IxefYnngwlp2o4OJrx/FkYhMtYRR9TBT0cEXIOsS+vZfjP3k37BZv5eQum RE50r/lEFakGZ1DaDfZtAGArAkYvWt+XjhpMhp0yd1gmjh7WwEGZTSP9dbvaMUWP7uEpjUdlr9XR S6QDwrqu3lekevpo1F9L6znXYNBxeygaB8JIjF72w3/ombjVgEpThoqPWNLG8izJtpxqjuknEDCE cRn6WL7UDjPVQGymyXoH+eaulW9yidiOu9wjE9TWbWrP0UP+rZu6eHiq8wEb/tb2+gyq7EKhgD6k 4fOeVupNABArp7Ixd1GLbYheFBKvyfY81lGH1YWaNvsSIiT9uQqq1RzQ5zM65jTGmxT2HlTEyh2V e1xIz8bIxGVg12V8PLQTj+3ytsNka/9qqmZ7qaFEOVtON7M5EUy1q483kHbUsX6aXbfQWMnoOs6J bUfIM25w== X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 20 Feb 2024 20:08:57 +0800 X-OQ-MSGID: <20240220120858.317766-4-quinkblack@foxmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240220120858.317766-1-quinkblack@foxmail.com> References: <20240220120858.317766-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/5] avutil/hwcontext_vulkan: Fix leaks in map_from_drm 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rbAO5UtLAcKS From: Zhao Zhili Also simplify error handing. --- This patch is untested since I don't have a proper device. libavutil/hwcontext_vulkan.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c index c64094f31c..35a7d75cce 100644 --- a/libavutil/hwcontext_vulkan.c +++ b/libavutil/hwcontext_vulkan.c @@ -2633,7 +2633,8 @@ static int vulkan_map_from_drm_frame_desc(AVHWFramesContext *hwfc, AVVkFrame **f if (ret != VK_SUCCESS) { av_log(hwctx, AV_LOG_ERROR, "Failed to create semaphore: %s\n", ff_vk_ret2str(ret)); - return AVERROR_EXTERNAL; + err = AVERROR_EXTERNAL; + goto fail; } /* We'd import a semaphore onto the one we created using @@ -2752,14 +2753,7 @@ static int vulkan_map_from_drm_frame_desc(AVHWFramesContext *hwfc, AVVkFrame **f return 0; fail: - for (int i = 0; i < desc->nb_layers; i++) { - vk->DestroyImage(hwctx->act_dev, f->img[i], hwctx->alloc); - vk->DestroySemaphore(hwctx->act_dev, f->sem[i], hwctx->alloc); - } - for (int i = 0; i < desc->nb_objects; i++) - vk->FreeMemory(hwctx->act_dev, f->mem[i], hwctx->alloc); - - av_free(f); + vulkan_frame_free(hwfc, f); return err; }