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 it. Patch attached. --- diff --git a/libavcodec/pthread_frame.c b/libavcodec/pthread_frame.c index 28335231fd..bdc1718ab3 100644 --- a/libavcodec/pthread_frame.c +++ b/libavcodec/pthread_frame.c @@ -751,6 +751,8 @@ void ff_frame_thread_free(AVCodecContext *avctx, int thread_count)              if (codec->close && p->thread_init != UNINITIALIZED)                  codec->close(ctx);   +            ff_hwaccel_uninit(ctx); +              if (ctx->priv_data) {                  if (codec->p.priv_class)                      av_opt_free(ctx->priv_data); --