The sweet smell of competition is lingering in the air. That sweet smell which indicates that somewhere in the vicinity a company is working on actually improving a product so we can all benefit. This time around, it’s Adobe, delivering the first Flash 10.2 beta. Prime feature? Complete hardware acceleration of the entire video pipeline – fully cross platform, cross-form factor. Cross-platform! There’s a catch, though.
Us Windows users have been able to enjoy a perfectly performing Flash video player for a long time now (I barely notice a difference between Flash video and vanilla H264), and Mac OS X users, too, have been able to somewhat enjoy some form of hardware accelerated video (much more limited than on Windows, though). Linux users have been left in the cold by Adobe – until now, that is.
Adobe didn’t just enable some basic form of hardware acceleration – no, this isn’t scalpel work, but full-on chainsaw action. Adobe’s new Stage Video technology enables not just hardware acceleration when it comes to decoding H264; in fact, it accelerates the entire video pipeline, including color conversion, scaling, and blitting.
“Working together with hardware vendors has helped us take advantage of the GPU to offload not only H.264 hardware decoding (introduced in Flash Player 10.1) but the rest of the video rendering pipeline, including color conversion, scaling, and blitting,” writes Tom Nguyen, product manager of Flash Platform Runtimes, “How efficient is hardware acceleration in Flash Player 10.2 beta? Using Stage Video, we’ve seen laptops play smooth 1080p HD video with just over 0% CPU usage.” They’re not kidding.
Of course, there’s a catch. Well, two catches, but one of them isn’t such a big deal. First, Stage Video is an API, and developers need to actually add support for it into their video player SWFs. I’m sure all the major Flash video players will be updated quickly enough, so this isn’t too big of a deal.
The second catch is a bigger problem. On Linux, Stage Video makes use of NVIDIA’s VDPAU, and while this is an entirely open standard, it has so far not been adopted by AMD and Intel. As such, you’re going to need an NVIDIA chipset, running the proprietary NVIDIA driver, in order to take advantage of this on Linux. Frame compositing on Linux is done via OpenGL.
I don’t blame Adobe for this – the Linux graphics stack is a mess, and they need to make some choices. It sucks for non-NVIDIA users, but alas.