|
| 1 | +From b952e857814e5cfe766626573e2f056ed91ceb09 Mon Sep 17 00:00:00 2001 |
| 2 | +From: Martell Malone <martellmalone@gmail.com> |
| 3 | +Date: Sun, 14 Jun 2015 21:07:03 +0100 |
| 4 | +Subject: [PATCH 6/6] Add d3d11 video context |
| 5 | + |
| 6 | +--- |
| 7 | + mingw-w64-headers/direct-x/include/d3d11.h | 259 +++++++++++++++++++++++++++ |
| 8 | + mingw-w64-headers/direct-x/include/d3d11.idl | 66 ++++++ |
| 9 | + 2 files changed, 325 insertions(+) |
| 10 | + |
| 11 | +diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h |
| 12 | +index e49fd99..834a536 100644 |
| 13 | +--- a/mingw-w64-headers/direct-x/include/d3d11.h |
| 14 | ++++ b/mingw-w64-headers/direct-x/include/d3d11.h |
| 15 | +@@ -1366,6 +1366,38 @@ |
| 16 | + USHORT ConfigMinRenderTargetBuffCount; |
| 17 | + USHORT ConfigDecoderSpecific; |
| 18 | + } D3D11_VIDEO_DECODER_CONFIG; |
| 19 | ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE { |
| 20 | ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, |
| 21 | ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1, |
| 22 | ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2, |
| 23 | ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3, |
| 24 | ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4, |
| 25 | ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5, |
| 26 | ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6, |
| 27 | ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7, |
| 28 | ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8 |
| 29 | ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; |
| 30 | ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO { |
| 31 | ++ UINT NumEncryptedBytesAtBeginning; |
| 32 | ++ UINT NumBytesInSkipPattern; |
| 33 | ++ UINT NumBytesInEncryptPattern; |
| 34 | ++} D3D11_ENCRYPTED_BLOCK_INFO; |
| 35 | ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC { |
| 36 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; |
| 37 | ++ UINT BufferIndex; |
| 38 | ++ UINT DataOffset; |
| 39 | ++ UINT DataSize; |
| 40 | ++ UINT FirstMBaddress; |
| 41 | ++ UINT NumMBsInBuffer; |
| 42 | ++ UINT Width; |
| 43 | ++ UINT Height; |
| 44 | ++ UINT Stride; |
| 45 | ++ UINT ReservedBits; |
| 46 | ++ void *pIV; |
| 47 | ++ UINT IVSize; |
| 48 | ++ WINBOOL PartialEncryption; |
| 49 | ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; |
| 50 | ++} D3D11_VIDEO_DECODER_BUFFER_DESC; |
| 51 | + typedef enum D3D11_VIDEO_FRAME_FORMAT { |
| 52 | + D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE = 0, |
| 53 | + D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1, |
| 54 | +@@ -8514,6 +8514,233 @@ |
| 55 | + DWORD* pdwStubPhase); |
| 56 | + |
| 57 | + #endif /* __ID3D11VideoDecoder_INTERFACE_DEFINED__ */ |
| 58 | ++ |
| 59 | ++/***************************************************************************** |
| 60 | ++ * ID3D11VideoContext interface |
| 61 | ++ */ |
| 62 | ++#ifndef __ID3D11VideoContext_INTERFACE_DEFINED__ |
| 63 | ++#define __ID3D11VideoContext_INTERFACE_DEFINED__ |
| 64 | ++ |
| 65 | ++DEFINE_GUID(IID_ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4); |
| 66 | ++#if defined(__cplusplus) && !defined(CINTERFACE) |
| 67 | ++MIDL_INTERFACE("61f21c45-3c0e-4a74-9cea-67100d9ad5e4") |
| 68 | ++ID3D11VideoContext : public ID3D11DeviceChild |
| 69 | ++{ |
| 70 | ++ virtual HRESULT STDMETHODCALLTYPE GetDecoderBuffer( |
| 71 | ++ ID3D11VideoDecoder *pDecoder, |
| 72 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, |
| 73 | ++ UINT *pBufferSize, |
| 74 | ++ void **ppBuffer) = 0; |
| 75 | ++ |
| 76 | ++ virtual HRESULT STDMETHODCALLTYPE ReleaseDecoderBuffer( |
| 77 | ++ ID3D11VideoDecoder *pDecoder, |
| 78 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) = 0; |
| 79 | ++ |
| 80 | ++ virtual HRESULT STDMETHODCALLTYPE DecoderBeginFrame( |
| 81 | ++ ID3D11VideoDecoder *pDecoder, |
| 82 | ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, |
| 83 | ++ UINT ContentKeySize, |
| 84 | ++ const void *pContentKey) = 0; |
| 85 | ++ |
| 86 | ++ virtual HRESULT STDMETHODCALLTYPE DecoderEndFrame( |
| 87 | ++ ID3D11VideoDecoder *pDecoder) = 0; |
| 88 | ++ |
| 89 | ++ virtual HRESULT STDMETHODCALLTYPE SubmitDecoderBuffers( |
| 90 | ++ ID3D11VideoDecoder *pDecoder, |
| 91 | ++ UINT NumBuffers, |
| 92 | ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) = 0; |
| 93 | ++ |
| 94 | ++}; |
| 95 | ++#ifdef __CRT_UUID_DECL |
| 96 | ++__CRT_UUID_DECL(ID3D11VideoContext, 0x61f21c45, 0x3c0e, 0x4a74, 0x9c,0xea, 0x67,0x10,0x0d,0x9a,0xd5,0xe4) |
| 97 | ++#endif |
| 98 | ++#else |
| 99 | ++typedef struct ID3D11VideoContextVtbl { |
| 100 | ++ BEGIN_INTERFACE |
| 101 | ++ |
| 102 | ++ /*** IUnknown methods ***/ |
| 103 | ++ HRESULT (STDMETHODCALLTYPE *QueryInterface)( |
| 104 | ++ ID3D11VideoContext* This, |
| 105 | ++ REFIID riid, |
| 106 | ++ void **ppvObject); |
| 107 | ++ |
| 108 | ++ ULONG (STDMETHODCALLTYPE *AddRef)( |
| 109 | ++ ID3D11VideoContext* This); |
| 110 | ++ |
| 111 | ++ ULONG (STDMETHODCALLTYPE *Release)( |
| 112 | ++ ID3D11VideoContext* This); |
| 113 | ++ |
| 114 | ++ /*** ID3D11DeviceChild methods ***/ |
| 115 | ++ void (STDMETHODCALLTYPE *GetDevice)( |
| 116 | ++ ID3D11VideoContext* This, |
| 117 | ++ ID3D11Device **ppDevice); |
| 118 | ++ |
| 119 | ++ HRESULT (STDMETHODCALLTYPE *GetPrivateData)( |
| 120 | ++ ID3D11VideoContext* This, |
| 121 | ++ REFGUID guid, |
| 122 | ++ UINT *pDataSize, |
| 123 | ++ void *pData); |
| 124 | ++ |
| 125 | ++ HRESULT (STDMETHODCALLTYPE *SetPrivateData)( |
| 126 | ++ ID3D11VideoContext* This, |
| 127 | ++ REFGUID guid, |
| 128 | ++ UINT DataSize, |
| 129 | ++ const void *pData); |
| 130 | ++ |
| 131 | ++ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)( |
| 132 | ++ ID3D11VideoContext* This, |
| 133 | ++ REFGUID guid, |
| 134 | ++ const IUnknown *pData); |
| 135 | ++ |
| 136 | ++ /*** ID3D11VideoContext methods ***/ |
| 137 | ++ HRESULT (STDMETHODCALLTYPE *GetDecoderBuffer)( |
| 138 | ++ ID3D11VideoContext* This, |
| 139 | ++ ID3D11VideoDecoder *pDecoder, |
| 140 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, |
| 141 | ++ UINT *pBufferSize, |
| 142 | ++ void **ppBuffer); |
| 143 | ++ |
| 144 | ++ HRESULT (STDMETHODCALLTYPE *ReleaseDecoderBuffer)( |
| 145 | ++ ID3D11VideoContext* This, |
| 146 | ++ ID3D11VideoDecoder *pDecoder, |
| 147 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); |
| 148 | ++ |
| 149 | ++ HRESULT (STDMETHODCALLTYPE *DecoderBeginFrame)( |
| 150 | ++ ID3D11VideoContext* This, |
| 151 | ++ ID3D11VideoDecoder *pDecoder, |
| 152 | ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, |
| 153 | ++ UINT ContentKeySize, |
| 154 | ++ const void *pContentKey); |
| 155 | ++ |
| 156 | ++ HRESULT (STDMETHODCALLTYPE *DecoderEndFrame)( |
| 157 | ++ ID3D11VideoContext* This, |
| 158 | ++ ID3D11VideoDecoder *pDecoder); |
| 159 | ++ |
| 160 | ++ HRESULT (STDMETHODCALLTYPE *SubmitDecoderBuffers)( |
| 161 | ++ ID3D11VideoContext* This, |
| 162 | ++ ID3D11VideoDecoder *pDecoder, |
| 163 | ++ UINT NumBuffers, |
| 164 | ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); |
| 165 | ++ |
| 166 | ++ END_INTERFACE |
| 167 | ++} ID3D11VideoContextVtbl; |
| 168 | ++interface ID3D11VideoContext { |
| 169 | ++ CONST_VTBL ID3D11VideoContextVtbl* lpVtbl; |
| 170 | ++}; |
| 171 | ++ |
| 172 | ++#ifdef COBJMACROS |
| 173 | ++#ifndef WIDL_C_INLINE_WRAPPERS |
| 174 | ++/*** IUnknown methods ***/ |
| 175 | ++#define ID3D11VideoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) |
| 176 | ++#define ID3D11VideoContext_AddRef(This) (This)->lpVtbl->AddRef(This) |
| 177 | ++#define ID3D11VideoContext_Release(This) (This)->lpVtbl->Release(This) |
| 178 | ++/*** ID3D11DeviceChild methods ***/ |
| 179 | ++#define ID3D11VideoContext_GetDevice(This,ppDevice) (This)->lpVtbl->GetDevice(This,ppDevice) |
| 180 | ++#define ID3D11VideoContext_GetPrivateData(This,guid,pDataSize,pData) (This)->lpVtbl->GetPrivateData(This,guid,pDataSize,pData) |
| 181 | ++#define ID3D11VideoContext_SetPrivateData(This,guid,DataSize,pData) (This)->lpVtbl->SetPrivateData(This,guid,DataSize,pData) |
| 182 | ++#define ID3D11VideoContext_SetPrivateDataInterface(This,guid,pData) (This)->lpVtbl->SetPrivateDataInterface(This,guid,pData) |
| 183 | ++/*** ID3D11VideoContext methods ***/ |
| 184 | ++#define ID3D11VideoContext_GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) (This)->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer) |
| 185 | ++#define ID3D11VideoContext_ReleaseDecoderBuffer(This,pDecoder,BufferType) (This)->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType) |
| 186 | ++#define ID3D11VideoContext_DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) (This)->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey) |
| 187 | ++#define ID3D11VideoContext_DecoderEndFrame(This,pDecoder) (This)->lpVtbl->DecoderEndFrame(This,pDecoder) |
| 188 | ++#define ID3D11VideoContext_SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) (This)->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc) |
| 189 | ++#else |
| 190 | ++/*** IUnknown methods ***/ |
| 191 | ++static FORCEINLINE HRESULT ID3D11VideoContext_QueryInterface(ID3D11VideoContext* This,REFIID riid,void **ppvObject) { |
| 192 | ++ return This->lpVtbl->QueryInterface(This,riid,ppvObject); |
| 193 | ++} |
| 194 | ++static FORCEINLINE ULONG ID3D11VideoContext_AddRef(ID3D11VideoContext* This) { |
| 195 | ++ return This->lpVtbl->AddRef(This); |
| 196 | ++} |
| 197 | ++static FORCEINLINE ULONG ID3D11VideoContext_Release(ID3D11VideoContext* This) { |
| 198 | ++ return This->lpVtbl->Release(This); |
| 199 | ++} |
| 200 | ++/*** ID3D11DeviceChild methods ***/ |
| 201 | ++static FORCEINLINE void ID3D11VideoContext_GetDevice(ID3D11VideoContext* This,ID3D11Device **ppDevice) { |
| 202 | ++ This->lpVtbl->GetDevice(This,ppDevice); |
| 203 | ++} |
| 204 | ++static FORCEINLINE HRESULT ID3D11VideoContext_GetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT *pDataSize,void *pData) { |
| 205 | ++ return This->lpVtbl->GetPrivateData(This,guid,pDataSize,pData); |
| 206 | ++} |
| 207 | ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateData(ID3D11VideoContext* This,REFGUID guid,UINT DataSize,const void *pData) { |
| 208 | ++ return This->lpVtbl->SetPrivateData(This,guid,DataSize,pData); |
| 209 | ++} |
| 210 | ++static FORCEINLINE HRESULT ID3D11VideoContext_SetPrivateDataInterface(ID3D11VideoContext* This,REFGUID guid,const IUnknown *pData) { |
| 211 | ++ return This->lpVtbl->SetPrivateDataInterface(This,guid,pData); |
| 212 | ++} |
| 213 | ++/*** ID3D11VideoContext methods ***/ |
| 214 | ++static FORCEINLINE HRESULT ID3D11VideoContext_GetDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType,UINT *pBufferSize,void **ppBuffer) { |
| 215 | ++ return This->lpVtbl->GetDecoderBuffer(This,pDecoder,BufferType,pBufferSize,ppBuffer); |
| 216 | ++} |
| 217 | ++static FORCEINLINE HRESULT ID3D11VideoContext_ReleaseDecoderBuffer(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType) { |
| 218 | ++ return This->lpVtbl->ReleaseDecoderBuffer(This,pDecoder,BufferType); |
| 219 | ++} |
| 220 | ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderBeginFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,ID3D11VideoDecoderOutputView *pVideoDecoderOutputView,UINT ContentKeySize,const void *pContentKey) { |
| 221 | ++ return This->lpVtbl->DecoderBeginFrame(This,pDecoder,pVideoDecoderOutputView,ContentKeySize,pContentKey); |
| 222 | ++} |
| 223 | ++static FORCEINLINE HRESULT ID3D11VideoContext_DecoderEndFrame(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder) { |
| 224 | ++ return This->lpVtbl->DecoderEndFrame(This,pDecoder); |
| 225 | ++} |
| 226 | ++static FORCEINLINE HRESULT ID3D11VideoContext_SubmitDecoderBuffers(ID3D11VideoContext* This,ID3D11VideoDecoder *pDecoder,UINT NumBuffers,const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc) { |
| 227 | ++ return This->lpVtbl->SubmitDecoderBuffers(This,pDecoder,NumBuffers,pBufferDesc); |
| 228 | ++} |
| 229 | ++#endif |
| 230 | ++#endif |
| 231 | ++ |
| 232 | ++#endif |
| 233 | ++ |
| 234 | ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_GetDecoderBuffer_Proxy( |
| 235 | ++ ID3D11VideoContext* This, |
| 236 | ++ ID3D11VideoDecoder *pDecoder, |
| 237 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, |
| 238 | ++ UINT *pBufferSize, |
| 239 | ++ void **ppBuffer); |
| 240 | ++void __RPC_STUB ID3D11VideoContext_GetDecoderBuffer_Stub( |
| 241 | ++ IRpcStubBuffer* This, |
| 242 | ++ IRpcChannelBuffer* pRpcChannelBuffer, |
| 243 | ++ PRPC_MESSAGE pRpcMessage, |
| 244 | ++ DWORD* pdwStubPhase); |
| 245 | ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_ReleaseDecoderBuffer_Proxy( |
| 246 | ++ ID3D11VideoContext* This, |
| 247 | ++ ID3D11VideoDecoder *pDecoder, |
| 248 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); |
| 249 | ++void __RPC_STUB ID3D11VideoContext_ReleaseDecoderBuffer_Stub( |
| 250 | ++ IRpcStubBuffer* This, |
| 251 | ++ IRpcChannelBuffer* pRpcChannelBuffer, |
| 252 | ++ PRPC_MESSAGE pRpcMessage, |
| 253 | ++ DWORD* pdwStubPhase); |
| 254 | ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderBeginFrame_Proxy( |
| 255 | ++ ID3D11VideoContext* This, |
| 256 | ++ ID3D11VideoDecoder *pDecoder, |
| 257 | ++ ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, |
| 258 | ++ UINT ContentKeySize, |
| 259 | ++ const void *pContentKey); |
| 260 | ++void __RPC_STUB ID3D11VideoContext_DecoderBeginFrame_Stub( |
| 261 | ++ IRpcStubBuffer* This, |
| 262 | ++ IRpcChannelBuffer* pRpcChannelBuffer, |
| 263 | ++ PRPC_MESSAGE pRpcMessage, |
| 264 | ++ DWORD* pdwStubPhase); |
| 265 | ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_DecoderEndFrame_Proxy( |
| 266 | ++ ID3D11VideoContext* This, |
| 267 | ++ ID3D11VideoDecoder *pDecoder); |
| 268 | ++void __RPC_STUB ID3D11VideoContext_DecoderEndFrame_Stub( |
| 269 | ++ IRpcStubBuffer* This, |
| 270 | ++ IRpcChannelBuffer* pRpcChannelBuffer, |
| 271 | ++ PRPC_MESSAGE pRpcMessage, |
| 272 | ++ DWORD* pdwStubPhase); |
| 273 | ++HRESULT STDMETHODCALLTYPE ID3D11VideoContext_SubmitDecoderBuffers_Proxy( |
| 274 | ++ ID3D11VideoContext* This, |
| 275 | ++ ID3D11VideoDecoder *pDecoder, |
| 276 | ++ UINT NumBuffers, |
| 277 | ++ const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); |
| 278 | ++void __RPC_STUB ID3D11VideoContext_SubmitDecoderBuffers_Stub( |
| 279 | ++ IRpcStubBuffer* This, |
| 280 | ++ IRpcChannelBuffer* pRpcChannelBuffer, |
| 281 | ++ PRPC_MESSAGE pRpcMessage, |
| 282 | ++ DWORD* pdwStubPhase); |
| 283 | ++ |
| 284 | ++#endif /* __ID3D11VideoContext_INTERFACE_DEFINED__ */ |
| 285 | + |
| 286 | + /***************************************************************************** |
| 287 | + * ID3D11VideoProcessorEnumerator interface |
| 288 | +diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl |
| 289 | +index 59beafb..cfae7c8 100644 |
| 290 | +--- a/mingw-w64-headers/direct-x/include/d3d11.idl |
| 291 | ++++ b/mingw-w64-headers/direct-x/include/d3d11.idl |
| 292 | +@@ -1246,6 +1246,44 @@ |
| 293 | + USHORT ConfigMinRenderTargetBuffCount; |
| 294 | + USHORT ConfigDecoderSpecific; |
| 295 | + } D3D11_VIDEO_DECODER_CONFIG; |
| 296 | ++ |
| 297 | ++typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE |
| 298 | ++{ |
| 299 | ++ D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0, |
| 300 | ++ D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL, |
| 301 | ++ D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE, |
| 302 | ++ D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL, |
| 303 | ++ D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX, |
| 304 | ++ D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL, |
| 305 | ++ D3D11_VIDEO_DECODER_BUFFER_BITSTREAM, |
| 306 | ++ D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR, |
| 307 | ++ D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN |
| 308 | ++} D3D11_VIDEO_DECODER_BUFFER_TYPE; |
| 309 | ++ |
| 310 | ++typedef struct D3D11_ENCRYPTED_BLOCK_INFO |
| 311 | ++{ |
| 312 | ++ UINT NumEncryptedBytesAtBeginning; |
| 313 | ++ UINT NumBytesInSkipPattern; |
| 314 | ++ UINT NumBytesInEncryptPattern; |
| 315 | ++} D3D11_ENCRYPTED_BLOCK_INFO; |
| 316 | ++ |
| 317 | ++typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC |
| 318 | ++{ |
| 319 | ++ D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType; |
| 320 | ++ UINT BufferIndex; |
| 321 | ++ UINT DataOffset; |
| 322 | ++ UINT DataSize; |
| 323 | ++ UINT FirstMBaddress; |
| 324 | ++ UINT NumMBsInBuffer; |
| 325 | ++ UINT Width; |
| 326 | ++ UINT Height; |
| 327 | ++ UINT Stride; |
| 328 | ++ UINT ReservedBits; |
| 329 | ++ void *pIV; |
| 330 | ++ UINT IVSize; |
| 331 | ++ BOOL PartialEncryption; |
| 332 | ++ D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo; |
| 333 | ++} D3D11_VIDEO_DECODER_BUFFER_DESC; |
| 334 | + |
| 335 | + typedef enum D3D11_VIDEO_FRAME_FORMAT |
| 336 | + { |
| 337 | +@@ -2286,6 +2286,34 @@ |
| 338 | + D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc); |
| 339 | + } |
| 340 | + |
| 341 | ++[ |
| 342 | ++ object, |
| 343 | ++ local, |
| 344 | ++ uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4) |
| 345 | ++] |
| 346 | ++interface ID3D11VideoContext : ID3D11DeviceChild |
| 347 | ++{ |
| 348 | ++ HRESULT GetDecoderBuffer( |
| 349 | ++ [in] ID3D11VideoDecoder *pDecoder, |
| 350 | ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType, |
| 351 | ++ [out] UINT *pBufferSize, |
| 352 | ++ [out] void **ppBuffer); |
| 353 | ++ HRESULT ReleaseDecoderBuffer( |
| 354 | ++ [in] ID3D11VideoDecoder *pDecoder, |
| 355 | ++ [in] D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType); |
| 356 | ++ HRESULT DecoderBeginFrame( |
| 357 | ++ [in] ID3D11VideoDecoder *pDecoder, |
| 358 | ++ [in] ID3D11VideoDecoderOutputView *pVideoDecoderOutputView, |
| 359 | ++ [in] UINT ContentKeySize, |
| 360 | ++ [in] const void *pContentKey); |
| 361 | ++ HRESULT DecoderEndFrame( |
| 362 | ++ [in] ID3D11VideoDecoder *pDecoder); |
| 363 | ++ HRESULT SubmitDecoderBuffers( |
| 364 | ++ [in] ID3D11VideoDecoder *pDecoder, |
| 365 | ++ [in] UINT NumBuffers, |
| 366 | ++ [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *pBufferDesc); |
| 367 | ++} |
| 368 | ++ |
| 369 | + [ |
| 370 | + object, |
| 371 | + uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333), |
| 372 | +-- |
| 373 | +2.4.5 |
0 commit comments