Apple makes hardware video decoding available to developers
While the recent war of words between Adobe and Apple over the inclusion of Flash in the latter's mobile devices is unlikely to reach a cease fire anytime soon, Apple giveth as well as taketh away. The company this week released information on how third-party developers can take advantage of hardware acceleration for graphics, a previously unavailable feature that's been blamed for Flash’s poor performance on the Mac platform.
Traditionally, Flash hasn't performed nearly as well on OS X as it has on Windows, especially when it comes to video playback—despite the fact that these days both platforms run on comparably-powerful hardware. Adobe has been adamant that, at least as far as video playback is concerned, any performance issues in Flash are the result of Apple not making the necessary video-decoding application programming interfaces (APIs) available to developers, thus preventing them from taking advantage of hardware acceleration on Macs that support it.
However, a recently released Apple Technical Note (a sort of addendum to Apple's developer documentation) for Mac OS X 10.6.3 details something that might help: a new Video Decode Acceleration Framework. The framework seems to be a relatively simple and straightforward set of APIs to do precisely what Adobe wants: use hardware acceleration to decode raw H.264 video.
And the company plans to use it, too. “We will be enabling support for hardware accelerated video decoding for Flash Player on Mac,” Adobe spokesperson Matt Rozen told Macworld. “Now that the required APIs are available, we are working on an additional Flash Player release to follow shortly after Flash Player 10.1 to include this functionality for the hardware configurations supported by the new APIs.”
Until now, the only way to take advantage of hardware acceleration when decoding video was to use Apple's QuickTime APIs, which only work with video that is stored in a “traditional” H.264 container, such as an MP4 file. By letting developers use the raw hardware-decoding capabilities of the graphics processors available in many Macs, Apple allows decoding video that is stored in any format, even if it's not considered “standard.” By communicating directly with the hardware, an application can now decode video regardless of where or how it's stored.
The Video Decode Acceleration Framework has its limitations: it can only take advantage of hardware video decoding with those GPUs that support that functionality; these include NVIDIA's GeForce 9400M, GeForce 320M, or GeForce GT 330M graphics chipsets. (The Technical Note links to a list of some recent Mac hardware and their graphics chipsets.) And, because they require Mac OS X 10.6.3, the new APIs are only available on Intel-based Macs.
Still, the inclusion of the framework is a sign that Apple may be offering a major olive branch to companies like Adobe, allowing them to improve the performance of their products on OS X, even if they're not allowed within fifty yards of the company's mobile devices.
Updated 1:23PT to add comment from Adboe.