2 * Copyright (C) 2022 Zebediah Figura for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 interface IMediaSample
;
25 typedef struct _DDSCAPS2
37 typedef struct _DDPIXELFORMAT
46 DWORD dwZBufferBitDepth
;
47 DWORD dwAlphaBitDepth
;
48 DWORD dwLuminanceBitCount
;
50 DWORD dwPrivateFormatBitCount
;
56 DWORD dwStencilBitDepth
;
57 DWORD dwLuminanceBitMask
;
58 DWORD dwBumpDuBitMask
;
66 DWORD dwBumpDvBitMask
;
77 DWORD dwStencilBitMask
;
78 DWORD dwBumpLuminanceBitMask
;
82 DWORD dwRGBAlphaBitMask
;
83 DWORD dwYUVAlphaBitMask
;
84 DWORD dwLuminanceAlphaBitMask
;
96 uuid(256a6a22
-fbad
-11d1
-82bf
-00a0c9696c8f
),
98 interface IAMVideoAccelerator
: IUnknown
100 HRESULT GetVideoAcceleratorGUIDs
(DWORD
*count
, GUID
*accelerators
);
101 HRESULT GetUncompFormatsSupported
(const GUID
*accelerator
, DWORD
*count
, DDPIXELFORMAT
*formats
);
102 HRESULT GetInternalMemInfo
(const GUID
*accelerator
,
103 const AMVAUncompDataInfo
*format_info
, AMVAInternalMemInfo
*mem_info
);
104 HRESULT GetCompBufferInfo
(const GUID
*accelerator
, const AMVAUncompDataInfo
*uncompressed_info
,
105 DWORD
*compressed_info_count
, AMVACompBufferInfo
*compressed_infos
);
106 HRESULT GetInternalCompBufferInfo
(DWORD
*count
, AMVACompBufferInfo
*infos
);
107 HRESULT BeginFrame
(const AMVABeginFrameInfo
*info
);
108 HRESULT EndFrame
(const AMVAEndFrameInfo
*info
);
109 HRESULT GetBuffer
(DWORD type_index
, DWORD buffer_index
, BOOL read_only
, void **buffer
, LONG *stride
);
110 HRESULT ReleaseBuffer
(DWORD type_index
, DWORD buffer_index
);
111 HRESULT Execute
(DWORD function
, void *in_data
, DWORD in_size
, void *out_data
,
112 DWORD out_size
, DWORD buffer_count
, const AMVABUFFERINFO
*buffers
);
113 HRESULT QueryRenderStatus
(DWORD type_index
, DWORD buffer_index
, DWORD flags
);
114 HRESULT DisplayFrame
(DWORD index
, IMediaSample
*sample
);
119 uuid(256a6a21
-fbad
-11d1
-82bf
-00a0c9696c8f
),
121 interface IAMVideoAcceleratorNotify
: IUnknown
123 HRESULT GetUncompSurfacesInfo
(const GUID
*accelerator
, AMVAUncompBufferInfo
*info
);
124 HRESULT SetUncompSurfacesInfo
(DWORD allocated_count
);
125 HRESULT GetCreateVideoAcceleratorData
(const GUID
*accelerator
, DWORD
*size
, void **data
);