vlc/vlc-3.0 | branch: master | Marvin Scholz <epira...@gmail.com> | Wed Dec 2 12:08:12 2020 +0100| [53455ac5b3d7ff197a54ac927ec383bc9950c84e] | committer: Marvin Scholz
codec: dav1d: limit automatic frame thread count Without this limit, on a processor with many cores it would use so many frame threads that it would fail picture pool allocation. Fix videolan/vlc#25190 > http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=53455ac5b3d7ff197a54ac927ec383bc9950c84e --- modules/codec/dav1d.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/codec/dav1d.c b/modules/codec/dav1d.c index 3e44d524ed..0498492a73 100644 --- a/modules/codec/dav1d.c +++ b/modules/codec/dav1d.c @@ -273,6 +273,7 @@ static int Decode(decoder_t *dec, block_t *block) static int OpenDecoder(vlc_object_t *p_this) { decoder_t *dec = (decoder_t *)p_this; + unsigned i_core_count = vlc_GetCPUCount(); if (dec->fmt_in.i_codec != VLC_CODEC_AV1) return VLC_EGENERIC; @@ -287,7 +288,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 = (i_core_count < 16) ? i_core_count : 16; p_sys->s.allocator.cookie = dec; p_sys->s.allocator.alloc_picture_callback = NewPicture; p_sys->s.allocator.release_picture_callback = FreePicture; _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits