I’m trying to use h264_cuvid and hevc_cuvid decoders.
There is a cuda thread taking a whole cpu core, like some kind of busy waiting. The stack looks like:
Thread 1 (process 9104):
#0 0x00007f6697702e60 in ?? () from /usr/lib64/libcuda.so.1
#1 0x00007f66976f639d in ?? () from /usr/lib64/libcuda.so.1
#2 0x00007f66977038a8 in ?? () from /usr/lib64/libcuda.so.1
#3 0x00007f672a63583d in start_thread () from /lib64/libpthread.so.0
#4 0x00007f6729a00fcd in clone () from /lib64/libc.so.6
If I create multiple decoders in a proccess, only one cuda thread occupy a single cpu core.
If I create a decoder in one proccess, each proccess has a thread taking a whole cpu core.
Even when I delete the decoder, this thread remains. Only when I kill the proccess, this thread quit.
I have test several versions of ffmpeg: 3.3.1, 3.3.2, git snap shot of 2017-07-07,
And test two nvidia cards: quadro k1200, gtx 1060 with driver version 381.22.
This situation remains the same.
Is this a problem? Are there some work arounds?