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 5D20C4A7F8 for ; Wed, 10 Apr 2024 08:06:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4ACDC68D1BC; Wed, 10 Apr 2024 11:06:31 +0300 (EEST) Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9068868CC2A for ; Wed, 10 Apr 2024 11:06:24 +0300 (EEST) Authentication-Results: mail0.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=iYrkHATl; dkim-atps=neutral Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 421CE240DAC for ; Wed, 10 Apr 2024 10:06:24 +0200 (CEST) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id Hug_J-5T3FYi for ; Wed, 10 Apr 2024 10:06:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1712736383; bh=RPjhQ8pKMVZIkcTNiuMyaVdjHOw6OpRCCh82jQcVV1A=; h=Subject:From:To:In-Reply-To:References:Date:From; b=iYrkHATlMKLODFC34qOj+pQ9l8ZUoOv2mjcnqx78XNYZGeAd7HCpTdGl7uVLx5xma W4eQVgJ3ON8Jp6oIWR9zHK5VcVD2EI1BEOZcwnr7mM7Hhcy+z3LI49DXSmih/57wZB R2CbOy/ka9VRjsHEJp3D9Rg+mKu4ICIVaSbBn0hL8pd6yPLrpOSYrhOsEHsNjAEoTn 5ihHB6sgsRoncGsb9MENA9nCmFOa6kaaGDl/uSbbAphD2nsXsyMhAUo3kdLC6ZPXDg oYirwrmY9KjLrSZYdxIKJJ/sOTke1OcRRGBpaQw2psmBjiIbNwTIVFzHreQDE/uoSJ yxWFaJT/6og8Q== Received: from lain.khirnov.net (lain.khirnov.net [IPv6:2001:67c:1138:4306::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "lain.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 8AFD32404E5 for ; Wed, 10 Apr 2024 10:06:23 +0200 (CEST) Received: by lain.khirnov.net (Postfix, from userid 1000) id 65E501601B9; Wed, 10 Apr 2024 10:06:23 +0200 (CEST) From: Anton Khirnov To: FFmpeg development discussions and patches In-Reply-To: References: <171273246715.22242.7277960037711067953@lain.khirnov.net> <171273594562.22242.12579179149940227185@lain.khirnov.net> Mail-Followup-To: FFmpeg development discussions and patches Date: Wed, 10 Apr 2024 10:06:23 +0200 Message-ID: <171273638339.22242.1059676662908196338@lain.khirnov.net> User-Agent: alot/0.8.1 MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH v2 02/27] avcodec/decode: Add new ProgressFrame API 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: Quoting Andreas Rheinhardt (2024-04-10 10:02:55) > Anton Khirnov: > > Quoting Andreas Rheinhardt (2024-04-10 09:09:00) > >> Anton Khirnov: > >>> Quoting Andreas Rheinhardt (2024-04-08 22:13:40) > >>>> diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c > >>>> index fd356bd190..6b2c4312e0 100644 > >>>> --- a/libavcodec/pthread_frame.c > >>>> +++ b/libavcodec/pthread_frame.c > >>>> @@ -779,6 +779,7 @@ static av_cold int init_thread(PerThreadContext *p, int *threads_to_free, > >>>> if (!copy->internal) > >>>> return AVERROR(ENOMEM); > >>>> copy->internal->thread_ctx = p; > >>>> + copy->internal->progress_frame_pool = avctx->internal->progress_frame_pool; > >>> > >>> I'd still prefer every thread to have its own reference. > >>> > >>> Looks good otherwise. > >>> > >> > >> The opaque of this pool is the main AVCodecContext; if the main > >> AVCodecContext is destroyed, the pool is in a state where one can no > >> longer get new entries from it. So giving every thread its own reference > >> is pretending to make it an equal co-owner of the pool, but it is not as > >> the pool must not outlive the main AVCodecContext. > > > > But the only use of that opaque is checking whether frame threading is > > in use, which is a constant during decoder lifetime. Might be cleaner to > > avoid using AVCodecContext as opaque. > > In any case, this is not important, feel free to leave it as is. > > > > But whether frame threading is in use is only determined after > ff_decode_preinit(). I realize, which is why I'm not insisting you change this. But it could be handled, e.g. by allocating the pool later, or splitting off the part of thread init that determines active_thread_type. -- Anton Khirnov _______________________________________________ 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".