[vlc-devel] [VLC 3.x] codec: dav1d: limit automatic frame thread count

Marvin Scholz epirat07 at gmail.com
Wed Dec 2 12:09:08 CET 2020


Without this limit, on a processor with many cores it would use
so many frame threads that it would fail picture pool allocation.

Fix #25190
---
 modules/codec/dav1d.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c
index 3e44d524ed..9e7f233d1a 100644
--- a/modules/codec/dav1d.c
+++ b/modules/codec/dav1d.c
@@ -287,7 +287,7 @@ static int OpenDecoder(vlc_object_t *p_this)
         p_sys->s.n_tile_threads = VLC_CLIP(vlc_GetCPUCount(), 1, 4);
     p_sys->s.n_frame_threads = var_InheritInteger(p_this, "dav1d-thread-frames");
     if (p_sys->s.n_frame_threads == 0)
-        p_sys->s.n_frame_threads = __MAX(1, vlc_GetCPUCount());
+        p_sys->s.n_frame_threads = __MIN(vlc_GetCPUCount(), 16);
     p_sys->s.allocator.cookie = dec;
     p_sys->s.allocator.alloc_picture_callback = NewPicture;
     p_sys->s.allocator.release_picture_callback = FreePicture;
-- 
2.24.3 (Apple Git-128)



More information about the vlc-devel mailing list