Gallium3D Gets An OpenMAX Video State Tracker
Mesa's Gallium3D can now handle OpenMAX! OpenMAX, short for Open Media Acceleration, is the Khronos standard for a C-language interface for abstraction of routines for audio, video, and image processing. With this initial implementation by AMD, the OpenMAX Gallium3D support allows hardware acceleration of MPEG-2 and H.264.
OpenMAX has been around for nearly one decade and the interfaces continue to be refined, but currently isn't as well known to Linux desktop users as say VDPAU or XvMC. OpenMAX is currently more adopted and used by mobile systems. Khronos describes OpenMAX as "a royalty-free, cross-platform API that provides comprehensive streaming media codec and application portability by enabling accelerated multimedia components to be developed, integrated and programmed across multiple operating systems and silicon platforms. The OpenMAX API will be shipped with processors to enable library and codec implementers to rapidly and effectively make use of the full acceleration potential of new silicon - regardless of the underlying hardware architecture." Additional OpenMAX details can be found via Wikipedia.
With the OpenMAX state tracker that was announced today, it was developed by Christian König at AMD. At this time, the state tracker allows hardware-accelerated decoding of MPEG-2 and H.264 formats using the Unified Video Decoder (UVD) on modern Radeon GPUs.
H.264 and MPEG-2 acceleration with Gallium3D can already be achieved via the VDPAU Gallium3D state tracker, but the OpenMAX implementation now also supports Hi10P H.264 decoding as an additional feature. This initial implementation though is likely quite buggy, Christian noted.
The state tracker is called "OMX" and Christian König describes it as "a full grown MPEG2 and H264 decoder and a couple of hundred bugs."
This OpenMAX state tracker for now can be found via the Mesa mailing list but will hopefully be merged for Mesa 10.0.