[PATCH 2/5] include: Add videoacc.idl.
Zebediah Figura
zfigura at codeweavers.com
Wed Apr 13 17:02:00 CDT 2022
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
include/Makefile.in | 1 +
include/videoacc.idl | 126 +++++++++++++++++++++++++++++++++++++++
libs/strmiids/strmiids.c | 1 +
3 files changed, 128 insertions(+)
create mode 100644 include/videoacc.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index c76e2ec7d0d..dff2f341568 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -747,6 +747,7 @@ SOURCES = \
verrsrc.h \
vfw.h \
vfwmsgs.h \
+ videoacc.idl \
virtdisk.h \
vmr9.idl \
vmrender.idl \
diff --git a/include/videoacc.idl b/include/videoacc.idl
new file mode 100644
index 00000000000..af380e4b3c8
--- /dev/null
+++ b/include/videoacc.idl
@@ -0,0 +1,126 @@
+/*
+ * 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);
+}
diff --git a/libs/strmiids/strmiids.c b/libs/strmiids/strmiids.c
index a257a23e9a4..1a7005bde3c 100644
--- a/libs/strmiids/strmiids.c
+++ b/libs/strmiids/strmiids.c
@@ -39,3 +39,4 @@
#include "amstream.h"
#include "qedit.h"
#include "vmr9.h"
+#include "videoacc.h"
--
2.35.1
More information about the wine-devel
mailing list