From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id ACEC644B2B for ; Thu, 20 Nov 2025 12:40:08 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'N5AKxoeZ3ke3CFDYkW3/TdJ+kVRqcRAK4lk3JFRaiw4=', expected b'027DVxurNvlyauskRaz92I8BF1YDylsSvyzCK1NkXG0=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1763642401; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=N5AKxoeZ3ke3CFDYkW3/TdJ+kVRqcRAK4lk3JFRaiw4=; b=JhtS3gRK9FeIRwM6T9fJVmQ1ITXK/C4Bd8lkPuMuGked1apq9mgVGOGMerJi6U2HfpiA9 hKVjfpo2UQYkurqIK+89C4L/9p+i+27N21MBVKCkBUwrtcv+fUxvIbwJsOej8CdVLY8JoXf tXffWG58EKxlOGRUyYDTcik68RKWpoDyZ00UgMBoQJ8JtfhQrCSsz08/DV9rwkvFPiWYNAW 55Uq4VDU4Eh+QRdk35U1SHpG8zlKk/CT9oDg7YqgfZ4lJJvffKmdpkg3o6C6UPjdExWNYF2 KJ2nCogyBrxE0CfFVJ253N5QV13FEVHBGIkmkmvvQ3WqARGRewuaCT7qZszA== Received: from [172.19.0.2] (unknown [172.19.0.2]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id BFE1768FF4B; Thu, 20 Nov 2025 14:40:01 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1763642400; b=CaPyXozQEBj1pem7jv8c2NiTGLFKrOq1LtR7JPmGGFV4RQN7mpPg0hLOKHVpwakXZ6b7Y F3Htndvh5yrMFSgX3KtKLrelWxS8z29cT/F2++fvVOO+XyUj57FwlDCxrmZWght/+mOQtNG bkxnY3IV7al2IgufykGnknbUlGxCFKXBxKZ0w0UdHhiz83hxF45b9pp3oC4O2Q354eHtxjB YHRXlaiA/u8HI/F3m5FsfxkoeGYgjk3rgqUBGQwmhjwMgDc7pqPSfgXmelcDl8d8KH1CNYC m1Xcd0MnQnWsedbrCrHhSTGAVUU0EPVhghFI5WB/cKjO80ju5xDjgPpZ9mIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1763642400; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=C8135aDn0otOwgSyTBgDZlSvM4v5O+aA65Q0k+v2FJs=; b=YIN6rVnbQw5+siIllPZLxS12EXf4pjBzk5RQSBi4/ew3pCowjKemzhfQLvUJ9uVcT9BzM vsXmGK/NxaHVr+JS52neEDl+vbu8AjzKnVY9j4E28i+Z8M9KW/GzaNA3QEGUbOjRXQLAS1m GSktJ8l7f+XEfOac61z/JpoNfLvbpxMeWo3VSlreVVpGYUhtLOX6f3Y3EGlHHXeZtj0p3I/ lmRUf1MFiG30jLdyD11fTPB+xNpqX+bBS3z9huq5zvbUcsls2Y5/SI29cba3TGGcNmdHjoY FHHuDsjDmSdUkX2dWCep3J0KuqWgOoLL5zE0CZvmdXLv0FkPIWG13cPESbaA== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1763642394; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=027DVxurNvlyauskRaz92I8BF1YDylsSvyzCK1NkXG0=; b=4D5BzAMy2S3t/HeIkfWNc6ZpUqWdERc2D/KBfzOUE27QftY5bYQIUH8PtYuetqtO2qez0 bqq+kfgMruUY1qsSgXsKbhBg4sqBuZ5TQtsnAtj/9PhbZRMxamAsmbOEoyu9HdlocJY8BXa vBUbR4IJeeLwfjMA92xcoLZvW4+DjkB3I962Khpiqb0W4SbQUKOYpNIHY5+0MbY9LV2wg6B O8mkQzRGizOx45nuO6t3UzHp2qvT5Z3O+R4cMv/+mExfOs4nMKjuUodWU3AUeuO0DiTF2A8 g+YsSkvlLR96Fliqrq/SHcsaNPbnsKxkNjBFJFzZbCrin/io6iMnDutif0iA== Received: from 188d6d40ca7a (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 8164168FF4B for ; Thu, 20 Nov 2025 14:39:54 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Nov 2025 12:39:54 -0000 Message-ID: <176364239465.59.3567192557118108089@2cb04c0e5124> Message-ID-Hash: FGQLQ442SOZPLIU2RBJMSXDBFA4HJBIB X-Message-ID-Hash: FGQLQ442SOZPLIU2RBJMSXDBFA4HJBIB X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avcodec/amf: fix hw_device_ctx handling (PR #20979) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: ArazIusubov via ffmpeg-devel Cc: ArazIusubov Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #20979 opened by ArazIusubov URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20979 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20979.patch The current behavior allows creating a second AMF hw_device_ctx, which may lead to incorrect behavior or failures. This patch fixes that assumption and prevents multiple hardware device contexts from being created. >>From cc26a2ff1054987bd0647fa4e698e85605c984be Mon Sep 17 00:00:00 2001 From: Araz Iusubov Date: Thu, 20 Nov 2025 13:34:21 +0100 Subject: [PATCH] avcodec/amf: fix hw_device_ctx handling --- libavcodec/amfdec.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/amfdec.c b/libavcodec/amfdec.c index 1a2eb9392c..eb182114fa 100644 --- a/libavcodec/amfdec.c +++ b/libavcodec/amfdec.c @@ -274,15 +274,17 @@ static int amf_decode_init(AVCodecContext *avctx) if (!ctx->in_pkt) return AVERROR(ENOMEM); - if (avctx->hw_device_ctx && !avctx->hw_frames_ctx) { + if (avctx->hw_device_ctx) { AVHWDeviceContext *hwdev_ctx; hwdev_ctx = (AVHWDeviceContext*)avctx->hw_device_ctx->data; if (hwdev_ctx->type == AV_HWDEVICE_TYPE_AMF) { ctx->device_ctx_ref = av_buffer_ref(avctx->hw_device_ctx); - avctx->hw_frames_ctx = av_hwframe_ctx_alloc(avctx->hw_device_ctx); - - AMF_GOTO_FAIL_IF_FALSE(avctx, !!avctx->hw_frames_ctx, AVERROR(ENOMEM), "av_hwframe_ctx_alloc failed\n"); + if (!avctx->hw_frames_ctx) + { + avctx->hw_frames_ctx = av_hwframe_ctx_alloc(avctx->hw_device_ctx); + AMF_GOTO_FAIL_IF_FALSE(avctx, !!avctx->hw_frames_ctx, AVERROR(ENOMEM), "av_hwframe_ctx_alloc failed\n"); + } } else { ret = av_hwdevice_ctx_create_derived(&ctx->device_ctx_ref, AV_HWDEVICE_TYPE_AMF, avctx->hw_device_ctx, 0); AMF_GOTO_FAIL_IF_FALSE(avctx, ret == 0, ret, "Failed to create derived AMF device context: %s\n", av_err2str(ret)); -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org