2012-04-26, 14:51
I think I remember reading that FFMPEG decides whether or not to use multithreaded decoding before it's decided whether or not to use hardware acceleration, so you cannot simply have a conditional "if not DXVA then multithread", because you cannot know whether or not DXVA is supported that early on.
Perhaps there's a way to default to multithreading, then wait to see if hardware acceleration is supported; if it is, re-init playback with multithreading disabled. This would come at a hit in initial playback speed, however.
As a note, if there's one thing that developers hate hearing, it's that something is "simple." Trust me, some seemingly simple things can be a huge pain in the ass to implement.
Perhaps there's a way to default to multithreading, then wait to see if hardware acceleration is supported; if it is, re-init playback with multithreading disabled. This would come at a hit in initial playback speed, however.
As a note, if there's one thing that developers hate hearing, it's that something is "simple." Trust me, some seemingly simple things can be a huge pain in the ass to implement.