Adobe clutches chance to bury Steve Jobs 'hog' insult
Apple in shock lifeline to Flash on Mac
After calling Flash a "CPU hog," Steve Jobs has given Adobe the chance to live down this now famous insult. And Adobe is taking it.
Steve Jobs also called Flash "buggy" and littered with security holes. And he summarily banned it from both the iPhone and the iPad - even when it's translated into Jobsian machine code. But with the latest update to the Mac OS X version known as Snow Leopard, the Jobsian cult has added an API that allows third parties to hardware-accelerate H.264 video on the Mac, and Adobe tells The Reg it's already working to tap that API.
A company spokesman says that Mac hardware acceleration will arrive with an incarnation of the Flash Player due "shortly after" version 10.1, which is now on its second release candidate.
The 10.6.3 Snow Leopard update arrived on March 29, but the world is just now waking up to the fact that it includes a new Video Decode Acceleration Framework. This C programming interface provides low-level access to the H.264 decoding capabilities of certain GPUs, including the NVIDIA GeForce 9400M, GeForce 320M, and GeForce GT 330M. "It is intended for use by advanced developers who specifically need hardware accelerated decode of video frames," Apple says in a technical note.
Previously, if they wanted video hardware acceleration on the Mac, developers had no choice but to use the API for Apple's own QuickTime.
According to Gawker, Steve Jobs labeled Flash a "CPU hog" while pitching the iPad to The Wall Street Journal. But unlike Apple's own H.264-happy HTML5 setup, Flash never had access to the Mac GPU. As some ad hoc tests showed last month, Flash video is no more of a CPU drain than H.264 HTML5 when it's on a level playing field.
Adobe has added Windows hardware acceleration with its imminent Flash Player 10.1. "It's inaccurate to conclude that Flash is inherently inefficient," said the Streaming Learning Center's Jan Ozer, who ran the tests. "Rather, Flash is efficient on platforms where it can access hardware acceleration and less efficient where it can't."
In any event, Flash is still very much alive on the Mac, despite Apple completely killing it on the iPhone and the iPad. After Apple added new language to its iPhone OS SDK that barred developers from accessing its APIs with applications originally written in ways Steve Jobs doesn't approve, an Adobe evangelist told the company to "Go screw itself." And it eventually halted development of its iPhone packager, a means of, yes, translating Flash script for use on the Jesus Phone.
Steve Jobs has also called Adobe's Flash developers "lazy." And just this week, one of his minions officially called it "closed and proprietary." But we can only assume that once Adobe does Mac hardware acceleration, Jobs will have no choice but to back away from the "CPU hog" bit - at least on video. Flash will continue to rely on the CPU for everything else, so there's still room for that Jobsian insult.
Or perhaps all will lead to a brand new slight. "GPU hog," anyone? ®
Come on Adobe
Just do the right thing and stop developing Photoshop for Mac. I would love to hear all the 'creative' Apple latte sipping fanbois whine when that happens.
Flash != video only!
As much as this is welcome news, I have to agree with jobs - flash is a CPU hog. Not particularly the video part (which is OK, but not great), but all the rest of it. I recently saw a flash-based site eating >50% cpu time (on a 2.8ghz core 2), just to display a slightly fancy menu. That's the kind of thing that makes me want to uninstall flash entirely.. if only it wasn't pretty much required :/
The main reason its a CPU hog
Is the crappy plugin architecture on the Mac. On Windows, most Flash plugin are created as windowed plugins. This means they can create an HWND and be responsible for handling messages and painting whenever they like. They could even be running on separate threads with relative ease because they're not bound by what the browser is doing.
On the Mac plugins are always windowless so all messaging and painting through the browser. The browser renders the plugin in with the rest of the page so painting a plugin may not be trivial either. So imagine a couple of plugins shouting at the browser 30 times a second to be repainted and the browser repainting part of its page 30 times a second and no wonder its slow.
So Flash primarily suffers is because of the architecture. Apple could propose to enhance the NPAPI architecture or supply hooks so demanding plugins can paint quicker. Whatever the solution Apple needs to help supply it. Blaming Adobe for their own broken architecture is a pretty pathetic response.