gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-dev] Flash HD (H.264) video decoding acceleration


From: Gwenole Beauchesne
Subject: [Gnash-dev] Flash HD (H.264) video decoding acceleration
Date: Tue, 22 Sep 2009 16:21:22 +0200 (CEST)
User-agent: Alpine 1.10 (DEB 962 2008-03-14)

Hi,

It is now possible accelerate Flash HD (H.264) video decoding with dedicated HW on Linux with Gnash. My approach uses OpenGL and VA API: <http://www.freedesktop.org/wiki/Software/vaapi>

I have verified this works with both AMD and NVIDIA chipsets, but I reckon those rely on proprietary software. However, this should also work with Intel chips when the H.264 codec for the Open Source G45 VA driver is released (only MPEG-2 is available at this time).

Along the way, I also fixed a few generic OpenGL renderer bugs. I will submit those hunks first.

Performance. This is really effective. Even non HW accelerated video decoding and displaying is faster than Adobe's Flash Player. On one clip ("2012" 1080p teaser) with the container transformed to flv, you almost have to count in seconds per frame with Adobe's Flash Player whereas it is much smoother with Gnash, fullscreen at 1920x1080.

The agglomerated patch is available in attachment and at:
<http://www.splitted-desktop.com/~gbeauchesne/gnash-vaapi/>

This is based on bzr rev 11514. I have tried to be the less intrusive as possible. The resulting patch, without new files, is under 1000 lines. It's not really clean yet as some dead code and debug code remain.

NOTE: it's also possible to use the AGG renderer but reading pixels back from GPU, doing color space conversion and other things, and then transfering the things back to GPU is an ineffective approach. You have a gain because the encoded bitstream is submitted to the HW decoder. Its job is to decode and display the decoded frames so everything is kept on the GPU/VPU side.

Comments welcome.

Regards,
Gwenole.

Attachment: gnash-vaapi-20090922.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]