[FFmpeg-devel] [PATCH] Added QSV based VPP filter - second try

Ivan Uskov ivan.uskov at nablet.com
Thu Nov 5 14:28:30 CET 2015

Hello wm4,

Thursday, November 5, 2015, 3:42:30 PM, you wrote:

w> On Thu, 5 Nov 2015 12:49:50 +0100
w> "Sven Dueking" <sven at nablet.com> wrote:

>> > > +            } else if (ret == MFX_WRN_DEVICE_BUSY) {
>> > > +                av_usleep(500);  
>> > 
>> > What. Use proper event-based waiting.
It is not possible.
>> That´s the same behavior as we have in the qsv encoder and decoder.
>> And as far as I know this is how Intel recommends to handle this.

w> That's just ridiculous. Can you send some hate-mail to Intel and tell
w> them what a bad idea this is? Half a millisecond is an eternity for a
w> CPU. What if the device is blocked only for 10 microseconds? Then it
w> will waste time by spending 490 microseconds idly.
1. Please remember we use GPU, not CPU.
2.   500us  means that even we will get MFX_WRN_DEVICE_BUSY at every frame we
will    able     to    achieve    ~2000fps  performance.  It   looks   enough
performance level for any practical applications.
3.   In   real  life  MFX_WRN_DEVICE_BUSY does appear when GPU really busy by
other  tasks. So nothing bad will appear if one thread/process will sleep for
500us to make another thread complete its work.

w> Software engineers recognized that polling is a bad idea half a century
w> ago. Why can't Intel do this right?
May  be  because  it  is  complex to organize event-polling when calculations
performs in GPU?

w> Or does MFX have some sort of async mode that works without polling?
Does  NOT.  I'm  sorry  but  we  forced  to  use this way, since it is by QSV

Best regards,
 Ivan                            mailto:ivan.uskov at nablet.com

More information about the ffmpeg-devel mailing list