On Sunday morning there were a number of video-related commits to Mesa for H.264 Gallium3D by AMD’s Christian König.
While not yet a complete implementation, Christian König did land the H.264 infrastructure inside the VDPAU Gallium3D state tracker. This was only about 100 lines of code (commit) while several other commits pushed this morning also furthered the video support (commits by König).
UVD (Unified Video Decoder) support in the open-source stack is one of AMD’s three priorities for their open-source Linux driver, but it’s not known yet whether this video decoder can be opened up yet (see the linked posting for more details as to why open-source video support has been difficult). Regardless of whether UVD can be documented and opened up at this point, H.264 VDPAU support can also be implemented without a hardware video decoder and instead be done — albeit not as effectively — using GPU shaders. This is how the other Radeon video playback acceleration is done over Gallium3D at this time for Radeon and other hardware.
While it’s only the H.264 VDPAU infrastructure that’s landed today, hopefully by the time Mesa 8.1 rolls around this summer we will see a working implementation. With Mesa 8.0 already having been branched, this is all work going into the next Mesa release. The soon-to-be-released Mesa 8.0 does feature some video playback improvements for Radeon and Nouveau drivers with the landing of the pipe-video branch and other VA-API/VDPAU state tracker improvements to Gallium3D.
For those interested in open-source graphics drivers and your key concern is about hardware-accelerated video playback, your best bet right now in terms of hardware backed by open-source drivers is going with Intel Sandy Bridge (or Ivy Bridge in a few months). Intel’s latest hardware has VA-API support implemented in hardware for both video decode and encode over libva, which is working quite well if you’re running the latest code.