

Flash video gets dramatically more efficient - edderly
http://blogs.adobe.com/jnack/2010/12/flash-video-gets-dramatically-more-efficient.html

======
wtallis
It's interesting how Adobe's excuses have been shifting since Apple kicked
Flash criticism in to high gear.

A year ago, they were complaining that they needed low-level access to GPU
decoding engines in order to make Flash play videos with acceptable CPU load.
Apple gave them exactly the API they asked for, and Flash performance on OS X
still sucked, especially for people who didn't have one of the supported GPUs.

They've mostly settled now on the excuse being that Flash has to do color-
space conversions and compositing on the CPU, though this post adds the extra
apologetic twist that they never intended Flash to become the standard way of
delivering streaming video over the web.

The compositing excuse strikes me as pure bullshit, because a Flash video that
is playing with no non-video elements overlaid and doesn't have input focus
still eats up too much CPU, despite the compositing stage being a no-op.

The YUV to RGB conversion is obviously not complicated enough to make much
difference to the CPU load, because standalone players that do all the
decoding and color space conversions in software easily achieve less than 1/5
the CPU load of Flash, and the actual decoding has got to be at least 70% of
that work.

Last spring, we were told that Flash's inefficiencies were partly due to
browser plugin APIs being poorly suited to the task. There has been no
intervening revolution in such APIs, so that can't be the source of the new
improvements enabled by this StageVideo feature.

The only documentation that seems to be available at the moment for StageVideo
is a flash video tutorial, and the text in that video uses subpixel rendering
with the opposite subpixel ordering from my monitor, so I can't read it
without getting a headache. That said, it appears that this StageVideo feature
requires the flash object to be modified, so it won't provide any immediate
real-world benefits, and it requires the flash designer to code in the
fallback rendering path for people who don't have the right kind of GPU.

Meanwhile, OS X still has an API for playing videos that will automatically
decide whether to use hardware-accelerated decoding, and an OpenGL-backed
vector graphics API that can handle all the compositing needs for Flash. These
APIs have broader hardware support than StageVideo.

One gets the feeling that Adobe doesn't want to fix any of the suck, just to
move past it.

