Sweden-Number/include/videoacc.idl

127 lines
3.8 KiB
Plaintext

/*
* Copyright (C) 2022 Zebediah Figura for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "unknwn.idl";
interface IMediaSample;
cpp_quote("#if 0")
typedef struct _DDSCAPS2
{
DWORD dwCaps;
DWORD dwCaps2;
DWORD dwCaps3;
union
{
DWORD dwCaps4;
DWORD dwVolumeDepth;
} DUMMYUNIONNAME1;
} DDSCAPS2;
typedef struct _DDPIXELFORMAT
{
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
union
{
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwPrivateFormatBitCount;
} DUMMYUNIONNAME1;
union
{
DWORD dwRBitMask;
DWORD dwYBitMask;
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwOperations;
} DUMMYUNIONNAME2;
union
{
DWORD dwGBitMask;
DWORD dwUBitMask;
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
struct
{
WORD wFlipMSTypes;
WORD wBltMSTypes;
} MultiSampleCaps;
} DUMMYUNIONNAME3;
union
{
DWORD dwBBitMask;
DWORD dwVBitMask;
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} DUMMYUNIONNAME4;
union
{
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
} DUMMYUNIONNAME5;
} DDPIXELFORMAT;
import "amva.h";
cpp_quote("#endif")
[
local,
uuid(256a6a22-fbad-11d1-82bf-00a0c9696c8f),
]
interface IAMVideoAccelerator : IUnknown
{
HRESULT GetVideoAcceleratorGUIDs(DWORD *count, GUID *accelerators);
HRESULT GetUncompFormatsSupported(const GUID *accelerator, DWORD *count, DDPIXELFORMAT *formats);
HRESULT GetInternalMemInfo(const GUID *accelerator,
const AMVAUncompDataInfo *format_info, AMVAInternalMemInfo *mem_info);
HRESULT GetCompBufferInfo(const GUID *accelerator, const AMVAUncompDataInfo *uncompressed_info,
DWORD *compressed_info_count, AMVACompBufferInfo *compressed_infos);
HRESULT GetInternalCompBufferInfo(DWORD *count, AMVACompBufferInfo *infos);
HRESULT BeginFrame(const AMVABeginFrameInfo *info);
HRESULT EndFrame(const AMVAEndFrameInfo *info);
HRESULT GetBuffer(DWORD type_index, DWORD buffer_index, BOOL read_only, void **buffer, LONG *stride);
HRESULT ReleaseBuffer(DWORD type_index, DWORD buffer_index);
HRESULT Execute(DWORD function, void *in_data, DWORD in_size, void *out_data,
DWORD out_size, DWORD buffer_count, const AMVABUFFERINFO *buffers);
HRESULT QueryRenderStatus(DWORD type_index, DWORD buffer_index, DWORD flags);
HRESULT DisplayFrame(DWORD index, IMediaSample *sample);
}
[
local,
uuid(256a6a21-fbad-11d1-82bf-00a0c9696c8f),
]
interface IAMVideoAcceleratorNotify : IUnknown
{
HRESULT GetUncompSurfacesInfo(const GUID *accelerator, AMVAUncompBufferInfo *info);
HRESULT SetUncompSurfacesInfo(DWORD allocated_count);
HRESULT GetCreateVideoAcceleratorData(const GUID *accelerator, DWORD *size, void **data);
}