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 1443040333 for ; Sun, 18 Jun 2023 12:20:19 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1003068C09C; Sun, 18 Jun 2023 15:20:18 +0300 (EEST) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 673E668C03F for ; Sun, 18 Jun 2023 15:20:12 +0300 (EEST) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id 6C919106015C for ; Sun, 18 Jun 2023 12:20:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1687090812; 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=/YO/If9p+lhWEeiZDOJ/v5aN30Hs6EpB5wXbWZru8oU=; b=esJp4T9+nxTYUUHFDeDYcCm9Gv2rm2kqcqov6wJqih4PJAiIRC8DkrzGn8sGf2V5 Sg6ohitv/0h5Ca0bmngatKG7RR6xxZc6CqODYhpMD/oTRSvUyKjefQ2E2lnqigfEw8Y kybQpbwuySsXkAdEo4tFPJhw634tCQFpNoJ2BG5IVO++vzLaENpA5c/34D/8kvpPXxw vW9jQxJw3hdrRQC3LkDRqafme54BKBZeEH0WxPCuaGtgMVjP2Zrmk+WrTdXO4K3hXPi dNMZ4vXXXuukYQ5G5KHCMcFS8Vzl/IBLk6EO1QUrXuYdvXj8RKvIw1mC3+nH3XofyQ1 gLdRrK2IcQ== Date: Sun, 18 Jun 2023 14:20:12 +0200 (CEST) From: Lynne To: FFmpeg development discussions and patches Message-ID: In-Reply-To: <168708662415.21886.6377526740221214688@lain.khirnov.net> References: <168665932811.3843.12542444692785643776@lain.khirnov.net> <168708662415.21886.6377526740221214688@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 18, 2023, 13:10 by anton@khirnov.net: > Quoting Lynne (2023-06-13 14:53:35) > >> 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. >> > > Why can't you use the existing user_opaque field? > Didn't notice there was one. _______________________________________________ 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".