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 6F05245E66 for ; Tue, 13 Jun 2023 12:53:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C681A68C2B4; Tue, 13 Jun 2023 15:53:42 +0300 (EEST) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 77ED5689D6F for ; Tue, 13 Jun 2023 15:53:36 +0300 (EEST) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id 1489D1060154 for ; Tue, 13 Jun 2023 12:53:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1686660815; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=S97bBHxRNf4paCL9fOYZVx3ApSmUoq4CzW4MLq4BcnU=; b=bg8iW9y+UkoqKsp4B41NmQsHypNEp3MAYoQaAWBFJ4NsqT2rJD1aj6SB1CjA4l69 RKQMBACbfYufLFt6IOkPpY9zwAQggDDRtM0eVi/t2pJ/NX6i7pTlJhGT8cXeO3otGDb UVgZXFqbCE89GNUdkQojjKBp/RYaA1Kac37qopBUqemf4uMMmXpuWfSff8n9POvCIUX 1AlsyAXqDrjBP6wM4htrMWNFpIF+loKw8U/XNFR8MJAPZ8vuWLaZYeCkutqnZr8ctCH Ww0CZq1MGilYViAmCmURM4yX2qsqW7LK4pqK1Z4m86WrbtN2iDPeY0/WsyhngwGWi8j AmjEhZMuXA== Date: Tue, 13 Jun 2023 14:53:35 +0200 (CEST) From: Lynne To: FFmpeg development discussions and patches Message-ID: In-Reply-To: <168665932811.3843.12542444692785643776@lain.khirnov.net> References: <168665932811.3843.12542444692785643776@lain.khirnov.net> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH 2/5] vulkan_decode: use the new AVHWFramesContext.opaque field 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 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: Jun 13, 2023, 14:29 by anton@khirnov.net: > Quoting Lynne (2023-06-13 06:19:34) > >> This depends on the previous patch, and allows moving the codec >> profile to the new AVHWFramesContext.opaque field. >> >> Patch attached. >> >> >> From f992905250062711fab7522906a573ff8ab5f716 Mon Sep 17 00:00:00 2001 >> From: Lynne >> Date: Tue, 13 Jun 2023 06:10:20 +0200 >> Subject: [PATCH 2/5] vulkan_decode: use the new AVHWFramesContext.opaque field >> >> --- >> libavcodec/vulkan_decode.c | 56 +++++++++++++++++++++++--------------- >> libavcodec/vulkan_decode.h | 6 ++-- >> 2 files changed, 37 insertions(+), 25 deletions(-) >> > > This will not work, because the callers are not required to call > avcodec_get_hw_frames_parameters() and can create the frames context > themselves. > Indeed they are. This commit doesn't break this. > The decoder is then not allowed to make any assumptions about the opaque > field. > Exactly. This is just for the case that the user calls avcodec_get_hw_frames_parameters. Then, we need somewhere to put the profile. The opaque field is only set, it is never read in this particular case. Since it's libavcodec creating the frames context in this case, and since the user explicitly asked for frames parameters to be set, I don't think it's a problem to set a public field, much the same way the width, height and sw_format values are set. If the user doesn't call avcodec_get_hw_frames_parameters, the rest of the code wouldn't notice. The rest of the decoder code gets the profile via the create_pnext chain (where the pointers to the profile structs must be). So users can attach their own profile, and store it wherever, including the opaque field. This commit also fixes the situation where a users calls avcodec_get_hw_frames_parameters, gets a frame parameters. destroys the decode context, and uses the same frames context which was created for another decoder. _______________________________________________ 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".