[vlc-devel] [PATCH 2/2] codec: dav1d: limit automatic frame thread count

Steve Lhomme robux4 at ycbcr.xyz
Fri Nov 20 10:35:49 CET 2020


On 2020-11-20 10:27, Alexandre Janniaux wrote:
> Hi,
> 
> On Fri, Nov 20, 2020 at 07:57:56AM +0100, Steve Lhomme wrote:
>> It would be OK to limit that way in 3.0.
>>
>> In 4.0, with push, the pool can be allocated in the Open of the decoder and
>> if it fails we can allows loop to find the number of threads that work.
>>
>> IMO if someone has 64 threads and 256 GB of RAM to decode/transcode as fast
>> as possible, there's no reason to limit the decoding speed artificially.
>>
>> This is less true for lavc as we only know the chroma to allocate after the
>> decoder is started.
> 
> However, we might want to cap this to 64 since that's the
> high limit of picture pools currently.

Indeed, if the pool is allocated locally it will be easier to handle.

> Regards,
> --
> Alexandre Janniaux
> Videolabs
> 
>> On 2020-11-19 17:15, Marvin Scholz wrote:
>>> 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 dcb09213186..8611b0cdfe9 100644
>>> --- a/modules/codec/dav1d.c
>>> +++ b/modules/codec/dav1d.c
>>> @@ -396,7 +396,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 = VLC_CLIP(vlc_GetCPUCount(), 1, 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)
>>>
>>> _______________________________________________
>>> vlc-devel mailing list
>>> To unsubscribe or modify your subscription options:
>>> https://mailman.videolan.org/listinfo/vlc-devel
>>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list