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. -- 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-requ...@ffmpeg.org with subject "unsubscribe".