News for hackers. Stuff that matters.

i-rinat

I've just checked Firefox 67.0 source code and found no evidence of hw-accelerated decoding. Firefox uses part of FFmpeg source code under the name "ffvpx", for VP9. There are some remainders of such decode-and-then-download-to-CPU-memory code there, but actual part interfacing with VA-API or any other hw-accelerated API is removed.

Although it's possible to utilize hardware decoders with FFmpeg, frames need to be shown somehow. Downloading decoded frames back to CPU memory just to copy them back to GPU to display is not a good idea. Generally graphics adapters expect a lot more data coming to them, not from them. It may be so slow, that it makes the whole idea infeasible. To make hardware decoding actually useful, one needs to figure out how to combine everything together on GPU side. It's harder to do it in Firefox than in a video player, since browsers have a complex rendering model. And now even run in multiple processes.

> My laptop is usually noisy when the CPU is in demand.

Not only software codecs are highly optimized, CPUs are also power-efficient. 1080p VP9 decode on my Skylake laptop doesn't produce enough heat to start the fan.

Nope. It's just software decoders from FFmpeg project that are heavily optimized. Also Firefox disables VP9 on slower machines, so websites serve H.264 instead.
> Crashes occasionally

Looks like Mozilla decided to ditch Flash, and now Firefox 40 sometimes hangs completely due to some odd interlocking with plugin-container process.

> Main advantage

... is that accelerated rendering is used where NPAPI Flash was afraid to use it. For example, for transparent plugin instances.

It comes with a price, though. There are more rendering issues, because unusual graphics paths are used.

Hanging on going to full screen is surely not an application fault, it's something with either X server or a video driver.

File dialogs should work, for both loading and saving files.

"This" does; browser part is supported. To make it work, you'll need to get libpepflashplayer.so file from Chromebook, as only version from ChromeOS have DRM code compiled in.