Video Decode Acceleration framework available on Mac OS X 10.6.3
developer.apple.com
developer.apple.com
On the other hand, if Adobe spends all summer making more excuses and not delivering acceptable performance on high-end hardware, we'll know that they have screwed themselves so thoroughly that Flash deserves to die.
Some difference, but it's not the best thing ever, and not even the most important problem Flash has.
For one thing, the H.264 decoder in Flash is already faster than QuickTime's software decoder and competitive with FFmpeg, so video decoding is absolutely not the reason people think it takes too much CPU. For the size of video you usually watch in a browser, drawing other elements on top of the video (and the necessary conversion to RGB) takes more CPU than actually decoding it (see http://blogs.adobe.com/penguin.swf/2010/01/solving_different...). I don't know if they've improved that, maybe not - I guess the best solution would involve doing the whole thing in OpenGL which is tricky.
The other problem is that the browser plugin API is really old and doesn't match up with the double-buffered window system that OS X always used. This is supposedly better in Flash 10.1 and would improve it more than anything done here if so. Of course 10.1 isn't out yet, so who knows.
If the plugin system really causes that much trouble, then why was Adobe complaining about the lack of a low-level API for hardware-accelerated H.264 decoding? It would seem that they are in more dire need of a much-improved plugin architecture, so that they can outsource more of the compositing and color space conversion.
Since Adobe has tried to excuse a lot of the performance problems as due to the lack of an appropriate H.264 API, it's time for them to put their money where their mouth is. If they release a new plugin that uses this new API, and the performance is hardly improved, then it means the complaints about the lack of this API were merely a red herring to shift as much blame as possible to Apple and to distract from the real causes. If performance does increase significantly, it will mean that Flash's software decoder was shit all along, and we can move on to bashing Apple for only supporting 3 of the many hardware H.264 decoders that they ship.
The blog you link to makes it clear that there need to be major changes to how in-browser video is handled. It also makes it clear that Adobe's stance is that it is the duty of the operating system to provide APIs that fit Flash's rendering pipeline, rather than have Adobe redesign the Flash player so that it can take advantage of existing acceleration APIs. In the case of the Linux plugin, there are several different APIs that are potentially useful, but Adobe is waiting for the dust to settle and for a clear winner to emerge. Given what we've seen on OS X about how the exact nature of the APIs matters so much to Adobe, it is odd that they are avoiding participating in the open-source process by supporting a particular API and helping ensure that it will meet their needs.
As you pointed out in your next paragraph, it was because that way Adobe can point a finger at Apple and say "it's them to blame". This blog post [ http://www.kaourantin.net/2010/02/core-animation.html ], quite similarly informative as the one astrange linked to, describes very well part of the reason why the Flash plugin is a dog on Mac OS X. I can only add to it a detail that is not explicitly mentioned in there - the drawing contexts mess and lack of support (e.g. OpenGL) is only applicable to NPAPI plugins. WebKit has an alternative, modern, clean, and fairly flexible plugin API. So if Adobe really wanted to make Flash highly performant on Mac OS X, they could have done what Apple do with their Quicktime plugin - have an NPAPI one for compatibility and have a WebKit one for performance for most users.
Does the caller of this API need a patent license to do so? Does the patent license of H.264 cover decoding of the format through OS APIs, or does each caller need its own license?
Although you do actually need a license to use the QuickTime AAC encoder in your own program, but only on Windows. Or so I remember from mailing list traffic, haven't tried it myself.
It isn't. An example of an API that does would be XvMC, which requires parsing and doing large parts of the video decode yourself.
The most you'd have to to use this framework is parse a .mp4 file yourself. Such things are not patented.
You would hope that the extra fees would cover the downstream, but the "branded" language makes it sound like you'd have to be explicit that you're calling out to Quicktime or whatever.
Obviously with hardware, as with OS decoders, you're expecting it to be called by others but again the "branded" language may confuse matters.
Plus, you're almost certainly only covered for "personal and non-commercial" decoding in any of these cases.