A lucky chunk of Apple Mac owners can now enjoy hardware-accelerated Flash video — not all Mac owners, mind you, but that's not Adobe's fault. "You should notice now a nice difference when playing H.264 content on your Mac in terms of CPU usage," writes Thibault Imbert, product manager for Adobe's Flash Player, on his ByteArray. …
apple are pulling a microsoft?
There, I've insulted both ms and apple fans at the same time.
There's no denying that keeping OS APIs to oneself while leaving competitors to use inferior APIs is a move strait from the MS playbook, pre-injunction of course.
It's simply a case of them not having an internal/unexposed API, thus creating a poorly fitting custom one just for Adobe. Apple uses the APIs the graphic drivers provides and opening up quicktime wouldn't be much use to Adobe, as they don't use it any way. Just as they don't use DirectShow/Media Foundation on Windows. It wouldn't have been anything stopping Adobe from talking to the drivers directly. (Provided Nvidia helped them. Which they did on Windows any way.). There's really no alternative to DXVA/MediaFoundation/DirectShow on Windows either, so it would be odd to expect it to be different on OS X. I'm not sure if not providing access to undocumented driver features that are vendor specific is the same as using/not sharing private OS APIs for which they have the source for.
QTKit does h.264 acceleration on ATI cards at least in 10.5.x.
It doesn't do frame by frame decoding which Flash uses, probably for advertisers needs.
Generally speaking, on the windows side, drivers are expected to expose a standard Direct-X/Media interface, and any application using that interface can be hardware accelerated.
What I'm getting at is, that if an app is written to supports directx on one piece of hardware, it generally should work on another without alteration. On windows, it would be very bad practice to talk directly to the drivers outside of the standard interface except in very special cases.
"It wouldn't have been anything stopping Adobe from talking to the drivers directly. (Provided Nvidia helped them. Which they did on Windows any way.)."
I'll admit to being clueless about mac os internals, but you seem to imply that there is no standard for media acceleration which can be accessed without a proprietary driver interface. Is that true? In my opinion, an app developer should never need to "talk to the drivers directly".
If a standard accelerated interface exists and adobe is not using it, then yes that's their fault. However if there is no standard accelerated interface, or if it doesn't work on all hardware, then it's more apple's fault.
Of course Quicktime does, but it can't demux the FLVs or the wrongly encoded files. QTKit provides everything Quciktime provides within your own app, if you need a video player that is, which Flash just isn't. QTX only support VP3 and only does HW-acceleration with VP3-based nVidia cards.
It doesn't supporting DXVA and blu-ray doesn't mean you support Flash Player because flash player needs low level access not provided and not used by the DirectShow or Media Foundation framework DXVA is designed to work against. And talking to the drivers APIs aren't talking directly to the hardware, it isn't bad practice even at Windows. Cuda is implemented in driver + library on both Windows and OS X without either vendors involvement. There's no real difference to provide an API to the nVidia VP3 interface.
You can play media files in Quicktime with Quciktime demuxers and decoders, and you can play media files in WMP/MF/DShow with MF/DShow demuxers and decoders in Core Video/Quartz/CA (OS X) overlay and VMR (XP)/EVR (Vista/7 D3D accelerated) overlay. You can write your own quicktime decoders or your own DirectShow Filters/MF transform for files that there aren't a suitable decoder and demuxer for on OS X you can accelerate those third party QT components with VDADecoder headerfile/API on nVidia hardware, on Windows (7/Vista) you can use DXVA together with the EVR renderer only. But Adobe does neither here. So providing stuff they don't use wont help them. The hardware and software just isn't meant to be used as Adobe does it, rendering it out into the software compositor and blending RGB-overlays in the CPU. The frameworks are meant to use the native API and hardware feature for that, within the framework itself, which just doesn't fit Adobe Flash's work flow. If they would just have went with properly encoded H.264/AVC videos in MP4 on HTTP streaming (which also works with Flash), then even the files would play with the native QT decoders on the Mac with hardware acceleration even on ATi hardware. Microsoft didn't supply them with this low-level access needed, Apple kinda did by exposing nVidias VP3 stuff. It wasn't designed to work that way, so the drivers manufacturers is fully responsible to work with Adobe to implement the flash support. Not all DXVA/H.264 capable hardware is therefor capable of accelerating the H.264 flash videos. It just wasn't apart of in supporting the standard API and because of the way it operates also needs more performance between the GPU and the CPU/memory then playing back blu-rays with 10 times higher bitrate.
So Adobe is just using a small part of the video framework and API on Windows, and none of Apples own framworks on OS X. Expect for Core Animation/OpenGL/Quartz/Quickdraw. Which QT also has to deal with and any other video player plugin too.
That's also why ION-NG doesn't work properly with Flash player but handles blu-rays just fine, there's not enough bandwidth between the GPU and CPU to supply it because of it's none standard approach. It isn't just a Mac problem, and nVidia and ATI/AMD Mac driver teams and Apple can do nothing if Adobe doesn't even communicate what they need. They can't design stuff for none-standards. For none-specified use.
Apples own QT decoders does utilize the hardware vendors internal API's directly, just because they haven't formulated a standard API for them to support to abstract all that. But said abstraction wouldn't really been made to supply a none QT work flow any way just as DXVA isn't meant to be used without DirectShow decoders/Media Foundation transforms and VMR/EVR renderer, as you just doesn't render video overlay in software. It needs to be hardware accelerated, and is within the native APIs. Third party media acceleration isn't really supplied for either platform, not for normal video cards at least, the Broadcom Crystal HD accelerator has it's own API. You aren't meant to output video that way. As Adobe does it, on neither of the platforms. This is http://i.msdn.microsoft.com/dynimg/IC15450.gif how Microsoft intended it to be used and it isn't used in a fashion even close to that. It's more like software > hardware > software > custom surface on GPU/hardware, while DXVA, EVR, D3D is all in hardware when you do it properly as a video player should. That's not Apples or Microsofts fault, however that's no excuse for Apple, they should be able to do this and meet their requirements more eloquently even if Microsoft didn't need too. As they still doesn't have a good system for third party decoders they should implement that even if VDADecoder was enough to shut up Adobe. But Adobe will complain as soon as they have created that even if they can't use it. But the standard accelerated interface on Windows didn't work with Adobes flash player, Microsoft wasn't blamed for it or any claim of no API was launched against it. Adobe can't get custom stuff if they don't ask for it. Sorry for long post.
'the debetafication of that effort is what's now available.'
The use of the word 'debetafication' should only be attempted with the aid of a safety net!
Any attempt to use that word near me should never attempted, unless you want to find out how a 6lb lump hammer feels when it lands on fingers!
That word has just made the list alongside such fantastic examples as 're-imagining'! *shudder*
Funny how all non-Flash based H.264 videos play *without* turning on the fan...
What does that tell you? That Flash is rubbish and a CPU hog? Who would have guessed..?
I'm assuming that other H.264 videos play without turning on the fan because they are already Hardware Accelerated?
The update allows Flash to do the same, so makes it perform the same
I stand with the anti-flash crowd for my own reasons, but it sounds to me that you just missed the whole point of the article.
As much as I agree to a small extent Flash is a bit of a pain in the ass at times, it has at least made it simple to watch and get video on the web when the other standards provided at best very kludgy ways of doing so.
However, I will be wasting my breath trying to get you to read the article again and see that for once, Adobe ain't the one to point your finger at.
But then if Steve Jobs shat in your sandwich, it would be still Adobe's fault given the utter failure of logic and reasoning that seems to be applied to the whole Adobe Flash and Apple debate.
assumption is the root of all evil....
Well no actually, not if you have a dead old machine. Apple is well behind the curve on video acceleration even when hardware decoding has been in the GFX chip it wasn't used :-(
My PPC Powermac 450Mhz running Tiger & Leopard with a Radeon 9700 can playback H.264 html5 content fine (youtube beta) but it can't handle h.264 encapsulated in flash.
It's insane really. It's older machines that would really benefit from video hardware acceleration but that'll never happen - gotta have a reason for everyone to upgrade from their powerbooks & ibook G4's I suppose....
No, it tells me...
Other players (not all of them) use QuickTime.
The players that don't use QuickTime also run slowly.
QTKit does it
But Adobe doesn't use QTKit, probably because you have to pass the hole stream to QTKit and Flash needs frame by frame decoding.
720p h.264 in MKV files run fine on my ancient Macbook with GMA950 graphics.
H.264 and old Macs
The Radeon 9700 in your Mac doesn't do any H.264 decoding because it doesn't have the capabilities for it.
The reason why some H.264 videos run fine on your old G4 while others don't is more due to differences in the videos itself. Low bitrate videos with HD720 or less usually play fine on older hardware, however your old G4 will have a very hard time playing H.264-encoded Full HD videos at 15+Mbps.
As to hardware acceleration in Mac OS X and Flash, this only works with intel Macs anyways. There is no GPU acceleration for H.264 on PPC Macs.
Great. one small part of Flash finally up to speed
How about the rest now? You know, the little things that can have a Flash banner ad, or similar cranking the CPU to 100%? The things unrelated to video that still bring Flash to its knees...
Who failed, me or it?
Latest Macbook Pro (330M). Upgraded - checked right version in package and after installation. Restarted firefox. Iplayer and youtube still keep the cpu wobbling between 100-115% in Activity Monitor. Not a huge problem as it's a fast machine, but battery power/heat/irritation.
Did I fail or it?