[FFmpeg-devel] [RFC] ffmpeg: default to single thread when hwaccel is active

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Thu Sep 30 03:02:29 EEST 2021


Timo Rothenpieler:
> On 29.09.2021 19:31, Dennis Mungai wrote:
>> On Wed, 29 Sept 2021 at 20:22, Timo Rothenpieler <timo at rothenpieler.org>
>> wrote:
>>
>>> On 29.09.2021 19:17, Dennis Mungai wrote:
>>>> A potential downside to this would be on QSV's side, which needs at
>>>> least
>>>> 2  threads to prevent dead-locking, see
>>>>
>>> https://github.com/Intel-Media-SDK/MediaSDK/blob/master/_studio/mfx_lib/scheduler/linux/src/mfx_scheduler_core_ischeduler.cpp#L90-L93
>>>
>>>
>>> Is that even controlled by the avcodec threads parameter?
>>> I can't find any occurrence of "numberOfThreads" anywhere in the entire
>>> codebase.
>>>
>>>
>> See this patchwork:
>> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20210408070929.860244-1-haihao.xiang@intel.com/
>>
>> Submitted  by Haihao Xiang, CC'ed herein.
> 
> That almost makes me think we'd need a per-hwaccel default of the thread
> count.
> Preferably not hacked as hard coded list into ffmpeg.c
> 

This can be done via AVCodecDefaults: The qsv codecs should use a thread
default of "auto" and ffmpeg.c should check whether the threads
parameter has been overridden by an AVCodecDefault (by checking whether
it is set to its default value) before overriding it in case the user
did not explicitly set something.

- Andreas

PS: The qsv patch also needs to check the AV_CODEC_CAP_OTHER_THREADS cap
(so that user know that setting the threads option makes sense).


More information about the ffmpeg-devel mailing list