AMDs new AMDXvBA library

Torgeir Veimo torgeir at pobox.com
Sun Nov 2 04:04:54 PST 2008


I had a quick look at the libAMDXvBA.so.1.0 library that comes with  
the latest fglrx driver from AMD (Catalyst v8.10) with gdb and it  
seems to be a quite comprehensive library implemented in C++.

There are quite a good number of classes, with names such as  
R600CmdBuf, R600ColorEnchanceFilter, R600Plane,  
R600SubstreamBlendFilter, R600UpSampleShader, ShaderManager,  
Subpicture, but much more interesting are classes such as  
UVDBufferPool, UVDCodec, UVDCodecH264, UVDCodecMpeg2, UVDCodecVC1,  
UVDCodecVLD, etc.

Am wondering if someone on the list with connections to AMD knows  
when / if header files will be made available for this library?


Here's a sample output from gdb. It's easy to get the list by starting  
gdb as 'gdb libAMDXvBA.so.1.0' then typing Break ' and press tab for  
autocompletion.

XvBADecodeLinux::CreateCompressedBuffers(DeviceLinux const*, int,  
XVBA_BUFFER_DESCRIPTOR**, CompressedBuffer**)
XvBADecodeLinux::CreateDecodeBuffers(XvBADecodeData*)
XvBADecodeLinux::DecodePicture(DeviceLinux const*, unsigned int,  
XVBA_BUFFER_DESCRIPTOR**)
XvBADecodeLinux::DestroyDecodeBuffers(unsigned int,  
XVBA_BUFFER_DESCRIPTOR*)
XvBADecodeLinux::EndDecodePicture(DeviceLinux const*)
XvBADecodeLinux::StartDecodePicture(DeviceLinux const*, XvMCSurface  
const*)
XvBADecodeLinuxH264::Create(DeviceLinux*, XvMCContext const*,  
XvBADecodeLinux**)
XvBADecodeLinuxH264::CreateCompressedBuffer(DeviceLinux const*,  
XVBA_BUFFER_DESCRIPTOR const*, CompressedBuffer**)
XvBADecodeLinuxH264::FillPicParamsBuffer(xvba_picture_descriptor  
const*, MMD_PicParams_H264*)
XvBADecodeLinuxH264::Init(DeviceLinux*, XvMCContext const*)
XvBADecodeLinuxH264::Release(DeviceLinux const*)
XvBADecodeLinuxMPEG2::ConvertCreateDecodeBuffers(XVBA_BUFFER, int*,  
int*)
XvBADecodeLinuxMPEG2::Create(DeviceLinux*, XvMCContext const*,  
XvBADecodeLinux**)
XvBADecodeLinuxMPEG2::CreateCompressedBuffer(DeviceLinux const*,  
XVBA_BUFFER_DESCRIPTOR const*, CompressedBuffer**)
XvBADecodeLinuxMPEG2::StartDecodePicture(DeviceLinux const*,  
XvMCSurface const*)
XvBADecodeLinuxVC1::Create(DeviceLinux*, XvMCContext const*,  
XvBADecodeLinux**)
XvBADecodeLinuxVC1::CreateCompressedBuffer(DeviceLinux const*,  
XVBA_BUFFER_DESCRIPTOR const*, CompressedBuffer**)
XvBADecodeLinuxVC1::FillPicParamsBuffer(xvba_picture_descriptor const*)
XvBADecodeLinuxVC1::Release(DeviceLinux const*)
XvBADecodeLinuxVC1::StartDecodePicture(DeviceLinux const*, XvMCSurface  
const*)
XvBADecodeLinuxVLD::ConvertCreateDecodeBuffers(XVBA_BUFFER, int*, int*)
XvMCDecodeLinux::Create(DeviceLinux*, XvMCContext const*,  
XvMCDecodeLinux**)
XvMCDecodeLinux::CreateBlocks(XvMCContext const*, unsigned int,  
XvMCBlockArray*)
XvMCDecodeLinux::CreateMacroBlocks(XvMCContext const*, unsigned int,  
XvMCMacroBlockArray*)
XvMCDecodeLinux::DestroyBlocks(XvMCBlockArray*)
XvMCDecodeLinux::DestroyMacroBlocks(XvMCMacroBlockArray*)
XvMCDecodeLinux::FillInterMCControlBuffer(XvMCMacroBlock const*, short  
const*, bool, unsigned int)
XvMCDecodeLinux::FillIntraMCControlBuffer(XvMCMacroBlock const*, short  
const*)
XvMCDecodeLinux::FillPicParamsBuffer(unsigned int, XvMCSurface const*,  
XvMCSurface const*, XvMCSurface const*, unsigned int)
XvMCDecodeLinux::Init(DeviceLinux*, XvMCContext const*)
XvMCDecodeLinux::PackIdct(short const*, int)
XvMCDecodeLinux::Release(DeviceLinux const*)
XvMCDecodeLinux::RenderSurface(DeviceLinux const*, unsigned int,  
XvMCSurface const*, XvMCSurface const*, XvMCSurface const*, unsigned  
int, unsigned int, unsigned int, XvMCMacroBlockArray const*,  
XvMCBlockArray const*)
-- 
Torgeir Veimo
torgeir at pobox.com







More information about the xorg mailing list