pthread_frame: uninit the hwaccel of each frame thread

The issue is that with a threadsafe hwaccel and multiple enabled
frame threads, hwaccel->uninit() is never called.
Previously, the function was guaranteed to never have any threads
with hwaccel contexts, so it never bothered to uninit any.
This commit is contained in:
Lynne 2023-06-13 04:04:28 +02:00
parent 41be6a5593
commit f30b979ca2
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
1 changed files with 4 additions and 0 deletions

View File

@ -751,6 +751,10 @@ void ff_frame_thread_free(AVCodecContext *avctx, int thread_count)
if (codec->close && p->thread_init != UNINITIALIZED)
codec->close(ctx);
/* When using a threadsafe hwaccel, this is where
* each thread's context is uninit'd and freed. */
ff_hwaccel_uninit(ctx);
if (ctx->priv_data) {
if (codec->p.priv_class)
av_opt_free(ctx->priv_data);