winegstreamer: Rename WG_MAJOR_TYPE_MPEG1_AUDIO to WG_MAJOR_TYPE_AUDIO_MPEG1.
[wine.git] / include / videoacc.idl
blobaf380e4b3c84dc2479a96d7504db647bd3724820
1 /*
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
19 import "unknwn.idl";
21 interface IMediaSample;
23 cpp_quote("#if 0")
25 typedef struct _DDSCAPS2
27 DWORD dwCaps;
28 DWORD dwCaps2;
29 DWORD dwCaps3;
30 union
32 DWORD dwCaps4;
33 DWORD dwVolumeDepth;
34 } DUMMYUNIONNAME1;
35 } DDSCAPS2;
37 typedef struct _DDPIXELFORMAT
39 DWORD dwSize;
40 DWORD dwFlags;
41 DWORD dwFourCC;
42 union
44 DWORD dwRGBBitCount;
45 DWORD dwYUVBitCount;
46 DWORD dwZBufferBitDepth;
47 DWORD dwAlphaBitDepth;
48 DWORD dwLuminanceBitCount;
49 DWORD dwBumpBitCount;
50 DWORD dwPrivateFormatBitCount;
51 } DUMMYUNIONNAME1;
52 union
54 DWORD dwRBitMask;
55 DWORD dwYBitMask;
56 DWORD dwStencilBitDepth;
57 DWORD dwLuminanceBitMask;
58 DWORD dwBumpDuBitMask;
59 DWORD dwOperations;
60 } DUMMYUNIONNAME2;
61 union
63 DWORD dwGBitMask;
64 DWORD dwUBitMask;
65 DWORD dwZBitMask;
66 DWORD dwBumpDvBitMask;
67 struct
69 WORD wFlipMSTypes;
70 WORD wBltMSTypes;
71 } MultiSampleCaps;
72 } DUMMYUNIONNAME3;
73 union
75 DWORD dwBBitMask;
76 DWORD dwVBitMask;
77 DWORD dwStencilBitMask;
78 DWORD dwBumpLuminanceBitMask;
79 } DUMMYUNIONNAME4;
80 union
82 DWORD dwRGBAlphaBitMask;
83 DWORD dwYUVAlphaBitMask;
84 DWORD dwLuminanceAlphaBitMask;
85 DWORD dwRGBZBitMask;
86 DWORD dwYUVZBitMask;
87 } DUMMYUNIONNAME5;
88 } DDPIXELFORMAT;
90 import "amva.h";
92 cpp_quote("#endif")
95 local,
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);
118 local,
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);