1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-10 06:10:52 +02:00

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

View File

@@ -751,6 +751,10 @@ void ff_frame_thread_free(AVCodecContext *avctx, int thread_count)
if (codec->close && p->thread_init != UNINITIALIZED) if (codec->close && p->thread_init != UNINITIALIZED)
codec->close(ctx); 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 (ctx->priv_data) {
if (codec->p.priv_class) if (codec->p.priv_class)
av_opt_free(ctx->priv_data); av_opt_free(ctx->priv_data);