' ########################################################################################
' Microsoft Windows
' File: VideoAcc.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_videoacc_PBI)
#DEFINE PBX_videoacc_PBI
%EQUATE `BIDEOACC_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/Unknwn.inc"
#INCLUDE ONCE "Legacy/System/ddraw.inc"
#INCLUDE ONCE "Legacy/System/amva.inc"
#INCLUDE ONCE "Legacy/System/strmif.inc"
' ########################################################################################
' Interface name = IAMVideoAcceleratorNotify
' IID = {256A6A21-FBAD-11D1-82BF-00A0C9696C8F}
' Inherited interface = IUnknown
' ########################################################################################
$IID_IAMVideoAcceleratorNotify = GUID$("{256A6A21-FBAD-11D1-82BF-00A0C9696C8F}")
INTERFACE IAMVideoAcceleratorNotify $IID_IAMVideoAcceleratorNotify
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetUncompSurfacesInfo ( ' VTable offset = 12
 BYREF pGuid AS GUID
 , BYREF pUncompBufferInfo AS AMVAUncompBufferInfo
 ) AS LONG
 ' =====================================================================================
 METHOD SetUncompSurfacesInfo ( ' VTable offset = 16
 BYVAL dwActualUncompSurfacesAllocated AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCreateVideoAcceleratorData ( ' VTable offset = 20
 BYREF pGuid AS GUID
 , BYREF pdwSizeMiscData AS DWORD
 , BYREF ppMiscData AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
' ########################################################################################
' Interface name = IAMVideoAccelerator
' IID = {256A6A22-FBAD-11D1-82BF-00A0C9696C8F}
' Inherited interface = IUnknown
' ########################################################################################
$IID_IAMVideoAccelerator = GUID$("{256A6A22-FBAD-11D1-82BF-00A0C9696C8F}")
INTERFACE IAMVideoAccelerator $IID_IAMVideoAccelerator
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetVideoAcceleratorGUIDs ( ' VTable offset = 12
 BYREF pdwNumGuidsSupported AS DWORD
 , BYREF pGuidsSupported AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetUncompFormatsSupported ( ' VTable offset = 16
 BYREF pGuid AS GUID
 , BYREF pdwNumFormatsSupported AS DWORD
 , BYREF pFormatsSupported AS DDPIXELFORMAT
 ) AS LONG
 ' =====================================================================================
 METHOD GetInternalMemInfo ( ' VTable offset = 20
 BYREF pGuid AS GUID
 , BYREF pamvaUncompDataInfo AS AMVAUncompDataInfo
 , BYREF pamvaInternalMemInfo AS AMVAInternalMemInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetCompBufferInfo ( ' VTable offset = 24
 BYREF pGuid AS GUID
 , BYREF pamvaUncompDataInfo AS AMVAUncompDataInfo
 , BYREF pdwNumTypesCompBuffers AS DWORD
 , BYREF pamvaCompBufferInfo AS AMVACompBufferInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetInternalCompBufferInfo ( ' VTable offset = 28
 BYREF pdwNumTypesCompBuffers AS DWORD
 , BYREF pamvaCompBufferInfo AS AMVACompBufferInfo
 ) AS LONG
 ' =====================================================================================
 METHOD BeginFrame ( ' VTable offset = 32
 BYREF pamvaBeginFrameInfo AS AMVABeginFrameInfo
 ) AS LONG
 ' =====================================================================================
 METHOD EndFrame ( ' VTable offset = 36
 BYREF pEndFrameInfo AS AMVAEndFrameInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetBuffer ( ' VTable offset = 40
 BYVAL dwTypeIndex AS DWORD
 , BYVAL dwBufferIndex AS DWORD
 , BYVAL bReadOnly AS LONG
 , BYREF ppBuffer AS DWORD
 , BYREF lpStride AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ReleaseBuffer ( ' VTable offset = 44
 BYVAL dwTypeIndex AS DWORD
 , BYVAL dwBufferIndex AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Execute ( ' VTable offset = 48
 BYVAL dwFunction AS DWORD
 , BYVAL lpPrivateInputData AS DWORD
 , BYVAL cbPrivateInputData AS DWORD
 , BYVAL lpPrivateOutputDat AS DWORD
 , BYVAL cbPrivateOutputData AS DWORD
 , BYVAL dwNumBuffers AS DWORD
 , BYREF pamvaBufferInfo AS AMVABUFFERINFO
 ) AS LONG
 ' =====================================================================================
 METHOD QueryRenderStatus ( ' VTable offset = 52
 BYVAL dwTypeIndex AS DWORD
 , BYVAL dwBufferIndex AS DWORD
 , BYVAL dwFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD DisplayFrame ( ' VTable offset = 56
 BYVAL dwFlipToIndex AS DWORD
 , BYVAL pMediaSample AS IMediaSample
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF
