Linked by Thom Holwerda on Thu 2nd Dec 2010 23:20 UTC
Multimedia, AV 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.
Thread beginning with comment 452126
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[7]: Thank Apple
by kaiwai on Sat 4th Dec 2010 02:20 UTC in reply to "RE[6]: Thank Apple"
kaiwai
Member since:
2005-07-06

Unfortunately files that work using VDPAU in linux don't work in OSX. These are only h264( I'm not including VC-1 and divx which are also accelerated under vdpau but not in osx). VDPAU works on everything thrown at it, QTX chokes on most things (in terms of bitstream acceleration).


VDPAU is only available on a small subset of video cards on Mac OS X with their justification that their desktops are already fast as it is and thus don't require the additional acceleration provided by VDPAU. I don't agree with their position but that is their position none the less.

Regarding QTX, I'm assuming you're talking about QuickTime X the application and not QtKit the framework (QuickTime X is based on QtKit, the old framework wouldn't have been updated for hardware acceleration) - it depends on whether they're still using their internal private API or whether they've moved to the VDPAU. It is all speculation at this point until someone at Apple gives us the heads up on what is happening but I wouldn't be surprised if the QtKit hasn't been moved over yet.

The hardware acceleration that people see in QuickTime X only came about with the launch of the early 2009 MacBook Pro/MacBook which had the 9400M GPU and preloaded with Mac OS X 10.5.6 but it was not until 10.6.4 that the VDPAU framework was added which I speculate was developed by by nVidia rather than Apple themselves given that it is pretty much mirrors VDPAU. Given that Apple doesn't develop the nVidia drivers themselves I'd say it is more likely than not that Apple got nVidia to develop a framework that taps into their drivers. With the gap between the Video Acceleration Framework making its appearance (and stabilising) and the delivering of hardware acceleration in QtKit (and in turn QuickTime X) I'd say that the QtKit is probably still using the private framework that originally appeared in 10.5.6.

It makes sense for them to use VDPAU for QtKit but it depends on whether they had enough time to make it so - and that is where the problem lies. As for VDPAU I really question whether having a vendor specific framework that taps into vendor specific hardware is actually useful in the long run when it would be better for Apple to recreate VDPAU using GLSL which would make it hardware agnostic. As long as the underlying hardware supports for example GLSL 1.30 then it will accelerate video decoding - yes I'm sure it would be complex in the initial design and implementation but if it means that Apple can design a framework once and for it to last over multiple generations of GPU hardware then it would be a move in the right direction.

Seeing as flash seemed to have a similar discrepancy between DXVA2 and the accel framework on osx suggests to me there is something wrong with the framework on osx. It would be interesting to see what the differences are between all the platforms now that bitstream acceleration is available to all.


Windows is a different kettle of fish because right now they're working to replace their spaghetti of API's with a single framework called 'Media Foundation':

http://en.wikipedia.org/wiki/Media_Foundation

According to the wikipedia article (which one takes with a grain of salt) it'll eventually replace a whole host of API's as the foundation features expand. I am assuming that with such a hardware agnostic framework that what Microsoft is doing is using their shader language as the basis of DXVA2 rather than it tapping into a specific part of the GPU. It will be interesting though what Windows 8 will deliver in terms of further Media Foundation development - whether there it will be completed or whether, like so many other frameworks, stay in a state of limbo until someone can be bothered finishing off an otherwise great idea on paper.

Apple really needs to improve the acceleration framework and QTX. They really ought to do it fast, especially after they coasted on the old QT framework since the early 90s piling crap on top of it much the same way that adobe is doing to flash now.


I think you're confusing the framework with the player. The framework itself has already been updated - QtKit which was provided in 10.5 and further enhanced in 10.6 is the completely Cocoa based QuickTime framework but the problem is that many developers aren't using it because they fear if they do then they'll cease supporting 10.4 customers.

Apple for example still uses the old QuickTime framework when it comes to iTunes for example which is one of the reasons why it hasn't become 64bit yet. Apple's professional tools are still using the old QuickTime carbon framework - again it is very difficult to get third parties moving forward when Apple isn't making the first move especially if you have a product that competes with Apple - if you move before Apple and thus you throw away 10.4 compatibility and Apple keeps to the old carbon API (thus supporting 10.4 customers) you could potentially lose customers.

As for accelerating the framework, the QtKit framework has already been highly optimised but the question is whether third parties are using the QtKit framework or whether they're using the old carbon one. I also note in my reply to the first paragraph that we don't know the internals of QtKit and what role VDPAU plays or whether they're still using an internal private API.

Edited 2010-12-04 02:34 UTC

Reply Parent Score: 4

RE[8]: Thank Apple
by _txf_ on Sat 4th Dec 2010 13:22 in reply to "RE[7]: Thank Apple"
_txf_ Member since:
2008-03-17

I believe most devs are using the old carbon framework because the new one doesn't have many features beyond playing a video and outputting sound (is there even a public api for the new framework?).

DXVA2 can use the gpu video acceleration hardware not just shaders. However since it builds a graph of the pipeline you can put shader functions to modify the presentation (I don't think it even needs to be done inside the dxva, possibly only the compositor). The thing is due to BS hollywood policies to view h264 in windows drivers need to couple decoding to presentation thus destroying all the flexibility of DXVA2 (at least on most video players attempting to use bitstream acceleration, dunno about flash).

Reply Parent Score: 3

RE[9]: Thank Apple
by kaiwai on Sat 4th Dec 2010 15:06 in reply to "RE[8]: Thank Apple"
kaiwai Member since:
2005-07-06

I believe most devs are using the old carbon framework because the new one doesn't have many features beyond playing a video and outputting sound (is there even a public api for the new framework?).


There is a huge difference between the QuickTime X player and the QuickTime framework - please spend some time learning the difference *please*.

Here is some documentation:

http://developer.apple.com/library/mac/#documentation/Cocoa/Concept...

According to that documentation it doesn't seem 'limiting'. Considering it was only made available in 10.5 maybe it was a matter of waiting till it made sense to move - if you're going to move to a new framework you might as well do it at the same time as you move to 64bit thus hitting two birds with one stone.

The QuickTime X player is limiting on Snow Leopard but that has more to do with Apple choosing only to do a very simple player instead of something covered all the bases. What will Lion do? it depends on whether Apple see's merit in extensively adding more features to QuickTime or whether at best the player remains very basic.

Reply Parent Score: 2