@ -27,10 +27,6 @@
# include <stdint.h>
/* initguid.h needs to be above d3d/dxva to ensure
the GUIDs are initialized properly */
# include <initguid.h>
# include <d3d9.h>
# include <dxva2api.h>
@ -44,19 +40,24 @@
# include "libavutil/imgutils.h"
# include "libavutil/pixfmt.h"
typedef IDirect3D9 * WINAPI pDirect3DCreate9 ( UINT ) ;
typedef HRESULT WINAPI pCreateDeviceManager9 ( UINT * , IDirect3DDeviceManager9 * * ) ;
/* GUIDs not defined in the common dxva2api.h in mingw-w64 */
# ifndef _MSC_VER
DEFINE_GUID ( DXVA2_ModeMPEG2and1_VLD , 0x86695f12 , 0x340e , 0x4f04 , 0x9f , 0xd3 , 0x92 , 0x53 , 0xdd , 0x32 , 0x74 , 0x60 ) ;
DEFINE_GUID ( DXVA2_ModeVC1_D2010 , 0x1b81beA4 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
DEFINE_GUID ( DXVA2_NoEncrypt , 0x1b81beD0 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
# endif
/* define all the GUIDs used directly here,
to avoid problems with inconsistent dxva2api . h versions in mingw - w64 and different MSVC version */
# include <initguid.h>
DEFINE_GUID ( IID_IDirectXVideoDecoderService , 0xfc51a551 , 0xd5e7 , 0x11d9 , 0xaf , 0x55 , 0x00 , 0x05 , 0x4e , 0x43 , 0xff , 0x02 ) ;
DEFINE_GUID ( DXVA2_ModeMPEG2_VLD , 0xee27417f , 0x5e28 , 0x4e65 , 0xbe , 0xea , 0x1d , 0x26 , 0xb5 , 0x08 , 0xad , 0xc9 ) ;
DEFINE_GUID ( DXVA2_ModeMPEG2and1_VLD , 0x86695f12 , 0x340e , 0x4f04 , 0x9f , 0xd3 , 0x92 , 0x53 , 0xdd , 0x32 , 0x74 , 0x60 ) ;
DEFINE_GUID ( DXVA2_ModeH264_E , 0x1b81be68 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
DEFINE_GUID ( DXVA2_ModeH264_F , 0x1b81be69 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
DEFINE_GUID ( DXVADDI_Intel_ModeH264_E , 0x604F8E68 , 0x4951 , 0x4C54 , 0x88 , 0xFE , 0xAB , 0xD2 , 0x5C , 0x15 , 0xB3 , 0xD6 ) ;
DEFINE_GUID ( DXVA2_ModeVC1_D , 0x1b81beA3 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
DEFINE_GUID ( DXVA2_ModeVC1_D2010 , 0x1b81beA4 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
DEFINE_GUID ( DXVA2_NoEncrypt , 0x1b81beD0 , 0xa0c7 , 0x11d3 , 0xb9 , 0x84 , 0x00 , 0xc0 , 0x4f , 0x2e , 0x73 , 0xc5 ) ;
DEFINE_GUID ( GUID_NULL , 0x00000000 , 0x0000 , 0x0000 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 ) ;
typedef IDirect3D9 * WINAPI pDirect3DCreate9 ( UINT ) ;
typedef HRESULT WINAPI pCreateDeviceManager9 ( UINT * , IDirect3DDeviceManager9 * * ) ;
typedef struct dxva2_mode {
const GUID * guid ;
enum AVCodecID codec ;