| /** | |
| * This file has no copyright assigned and is placed in the Public Domain. | |
| * This file is part of the w64 mingw-runtime package. | |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
| */ | |
| #ifndef _INC_DXVA2API | |
| #define _INC_DXVA2API | |
| #if (_WIN32_WINNT >= 0x0600) | |
| #include <objbase.h> | |
| #include <d3d9.h> | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #ifndef __REFERENCE_TIME_DEFINED | |
| #define __REFERENCE_TIME_DEFINED | |
| typedef LONGLONG REFERENCE_TIME; | |
| #endif /*__REFERENCE_TIME_DEFINED*/ | |
| #define DXVA2_ProcAmp_None 0x0000 | |
| #define DXVA2_ProcAmp_Brightness 0x0001 | |
| #define DXVA2_ProcAmp_Contrast 0x0002 | |
| #define DXVA2_ProcAmp_Hue 0x0004 | |
| #define DXVA2_ProcAmp_Saturation 0x0008 | |
| typedef struct IDirect3DDeviceManager9 IDirect3DDeviceManager9; | |
| typedef struct IDirectXVideoDecoderService IDirectXVideoDecoderService; | |
| typedef enum _DXVA2_SampleFormat { | |
| DXVA2_SampleFormatMask = 0x00FF, | |
| DXVA2_SampleUnknown = 0, | |
| DXVA2_SampleProgressiveFrame = 2, | |
| DXVA2_SampleFieldInterleavedEvenFirst = 3, | |
| DXVA2_SampleFieldInterleavedOddFirst = 4, | |
| DXVA2_SampleFieldSingleEven = 5, | |
| DXVA2_SampleFieldSingleOdd = 6, | |
| DXVA2_SampleSubStream = 7 | |
| } DXVA2_SampleFormat; | |
| typedef enum _DXVA2_VideoChromaSubSampling { | |
| DXVA2_VideoChromaSubsamplingMask = 0x0F, | |
| DXVA2_VideoChromaSubsampling_Unknown = 0, | |
| DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8, | |
| DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4, | |
| DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2, | |
| DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1, | |
| DXVA2_VideoChromaSubsampling_MPEG2 = | |
| DXVA2_VideoChromaSubsampling_Horizontally_Cosited | | |
| DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, | |
| DXVA2_VideoChromaSubsampling_MPEG1 = | |
| DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, | |
| DXVA2_VideoChromaSubsampling_DV_PAL = | |
| DXVA2_VideoChromaSubsampling_Horizontally_Cosited | | |
| DXVA2_VideoChromaSubsampling_Vertically_Cosited, | |
| DXVA2_VideoChromaSubsampling_Cosited = | |
| DXVA2_VideoChromaSubsampling_Horizontally_Cosited | | |
| DXVA2_VideoChromaSubsampling_Vertically_Cosited | | |
| DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes | |
| } DXVA2_VideoChromaSubSampling; | |
| typedef enum _DXVA2_NominalRange { | |
| DXVA2_NominalRangeMask = 0x07, | |
| DXVA2_NominalRange_Unknown = 0, | |
| DXVA2_NominalRange_Normal = 1, | |
| DXVA2_NominalRange_Wide = 2, | |
| DXVA2_NominalRange_0_255 = 1, | |
| DXVA2_NominalRange_16_235 = 2, | |
| DXVA2_NominalRange_48_208 = 3 | |
| } DXVA2_NominalRange; | |
| typedef enum _DXVA2_VideoLighting { | |
| DXVA2_VideoLightingMask = 0x0F, | |
| DXVA2_VideoLighting_Unknown = 0, | |
| DXVA2_VideoLighting_bright = 1, | |
| DXVA2_VideoLighting_office = 2, | |
| DXVA2_VideoLighting_dim = 3, | |
| DXVA2_VideoLighting_dark = 4 | |
| } DXVA2_VideoLighting; | |
| typedef enum _DXVA2_VideoPrimaries { | |
| DXVA2_VideoPrimariesMask = 0x001f, | |
| DXVA2_VideoPrimaries_Unknown = 0, | |
| DXVA2_VideoPrimaries_reserved = 1, | |
| DXVA2_VideoPrimaries_BT709 = 2, | |
| DXVA2_VideoPrimaries_BT470_2_SysM = 3, | |
| DXVA2_VideoPrimaries_BT470_2_SysBG = 4, | |
| DXVA2_VideoPrimaries_SMPTE170M = 5, | |
| DXVA2_VideoPrimaries_SMPTE240M = 6, | |
| DXVA2_VideoPrimaries_EBU3213 = 7, | |
| DXVA2_VideoPrimaries_SMPTE_C = 8 | |
| } DXVA2_VideoPrimaries; | |
| typedef enum _DXVA2_VideoTransferFunction { | |
| DXVA2_VideoTransFuncMask = 0x001f, | |
| DXVA2_VideoTransFunc_Unknown = 0, | |
| DXVA2_VideoTransFunc_10 = 1, | |
| DXVA2_VideoTransFunc_18 = 2, | |
| DXVA2_VideoTransFunc_20 = 3, | |
| DXVA2_VideoTransFunc_22 = 4, | |
| DXVA2_VideoTransFunc_709 = 5, | |
| DXVA2_VideoTransFunc_240M = 6, | |
| DXVA2_VideoTransFunc_sRGB = 7, | |
| DXVA2_VideoTransFunc_28 = 8 | |
| } DXVA2_VideoTransferFunction; | |
| typedef enum { | |
| DXVA2_SurfaceType_DecoderRenderTarget = 0, | |
| DXVA2_SurfaceType_ProcessorRenderTarget = 1, | |
| DXVA2_SurfaceType_D3DRenderTargetTexture = 2 | |
| } DXVA2_SurfaceType; | |
| typedef enum _DXVA2_VideoTransferMatrix { | |
| DXVA2_VideoTransferMatrixMask = 0x07, | |
| DXVA2_VideoTransferMatrix_Unknown = 0, | |
| DXVA2_VideoTransferMatrix_BT709 = 1, | |
| DXVA2_VideoTransferMatrix_BT601 = 2, | |
| DXVA2_VideoTransferMatrix_SMPTE240M = 3 | |
| } DXVA2_VideoTransferMatrix; | |
| #pragma pack(push, 1) | |
| typedef struct _DXVA2_AYUVSample16 { | |
| USHORT Cr; | |
| USHORT Cb; | |
| USHORT Y; | |
| USHORT Alpha; | |
| } DXVA2_AYUVSample16; | |
| typedef struct _DXVA2_AYUVSample8 { | |
| UCHAR Cr; | |
| UCHAR Cb; | |
| UCHAR Y; | |
| UCHAR Alpha; | |
| } DXVA2_AYUVSample8; | |
| typedef struct _DXVA2_ConfigPictureDecode { | |
| GUID guidConfigBitstreamEncryption; | |
| GUID guidConfigMBcontrolEncryption; | |
| GUID guidConfigResidDiffEncryption; | |
| UINT ConfigBitstreamRaw; | |
| UINT ConfigMBcontrolRasterOrder; | |
| UINT ConfigResidDiffHost; | |
| UINT ConfigSpatialResid8; | |
| UINT ConfigResid8Subtraction; | |
| UINT ConfigSpatialHost8or9Clipping; | |
| UINT ConfigSpatialResidInterleaved; | |
| UINT ConfigIntraResidUnsigned; | |
| UINT ConfigResidDiffAccelerator; | |
| UINT ConfigHostInverseScan; | |
| UINT ConfigSpecificIDCT; | |
| UINT Config4GroupedCoefs; | |
| UINT ConfigMinRenderTargetBuffCount; | |
| USHORT ConfigDecoderSpecific; | |
| } DXVA2_ConfigPictureDecode; | |
| typedef struct _DXVA2_DecodeBufferDesc { | |
| DWORD CompressedBufferType; | |
| UINT BufferIndex; | |
| UINT DataOffset; | |
| UINT DataSize; | |
| UINT FirstMBaddress; | |
| UINT NumMBsInBuffer; | |
| UINT Width; | |
| UINT Height; | |
| UINT Stride; | |
| UINT ReservedBits; | |
| PVOID pvPVPState; | |
| } DXVA2_DecodeBufferDesc; | |
| typedef struct _DXVA2_DecodeExtensionData { | |
| UINT Function; | |
| PVOID pPrivateInputData; | |
| UINT PrivateInputDataSize; | |
| PVOID pPrivateOutputData; | |
| UINT PrivateOutputDataSize; | |
| } DXVA2_DecodeExtensionData; | |
| typedef struct _DXVA2_DecodeExecuteParams { | |
| UINT NumCompBuffers; | |
| DXVA2_DecodeBufferDesc *pCompressedBuffers; | |
| DXVA2_DecodeExtensionData *pExtensionData; | |
| } DXVA2_DecodeExecuteParams; | |
| typedef struct { | |
| __C89_NAMELESS union { | |
| __C89_NAMELESS struct { | |
| UINT SampleFormat :8; | |
| UINT VideoChromaSubsampling :4; | |
| UINT NominalRange :3; | |
| UINT VideoTransferMatrix :3; | |
| UINT VideoLighting :4; | |
| UINT VideoPrimaries :5; | |
| UINT VideoTransferFunction :5; | |
| } DUMMYSTRUCTNAME; | |
| UINT value; | |
| } DUMMYUNIONNAME; | |
| } DXVA2_ExtendedFormat; | |
| typedef struct _DXVA2_Fixed32 { | |
| __C89_NAMELESS union { | |
| __C89_NAMELESS struct { | |
| USHORT Fraction; | |
| SHORT Value; | |
| } DUMMYSTRUCTNAME; | |
| LONG ll; | |
| } DUMMYUNIONNAME; | |
| } DXVA2_Fixed32; | |
| typedef struct _DXVA2_FilterValues { | |
| DXVA2_Fixed32 Level; | |
| DXVA2_Fixed32 Threshold; | |
| DXVA2_Fixed32 Radius; | |
| } DXVA2_FilterValues; | |
| typedef struct _DXVA2_Frequency { | |
| UINT Numerator; | |
| UINT Denominator; | |
| } DXVA2_Frequency; | |
| typedef struct _DXVA2_ProcAmpValues { | |
| DXVA2_Fixed32 Brightness; | |
| DXVA2_Fixed32 Contrast; | |
| DXVA2_Fixed32 Hue; | |
| DXVA2_Fixed32 Saturation; | |
| } DXVA2_ProcAmpValues; | |
| typedef struct _DXVA2_ValueRange { | |
| DXVA2_Fixed32 MinValue; | |
| DXVA2_Fixed32 MaxValue; | |
| DXVA2_Fixed32 DefaultValue; | |
| DXVA2_Fixed32 StepSize; | |
| } DXVA2_ValueRange; | |
| typedef struct _DXVA2_VideoDesc { | |
| UINT SampleWidth; | |
| UINT SampleHeight; | |
| DXVA2_ExtendedFormat SampleFormat; | |
| D3DFORMAT Format; | |
| DXVA2_Frequency InputSampleFreq; | |
| DXVA2_Frequency OutputFrameFreq; | |
| UINT UABProtectionLevel; | |
| UINT Reserved; | |
| } DXVA2_VideoDesc; | |
| /* DeviceCaps | |
| DXVA2_VPDev_EmulatedDXVA1 | |
| DXVA2_VPDev_HardwareDevice | |
| DXVA2_VPDev_SoftwareDevice | |
| */ | |
| /* DeinterlaceTechnology | |
| DXVA2_DeinterlaceTech_Unknown | |
| DXVA2_DeinterlaceTech_BOBLineReplicate | |
| DXVA2_DeinterlaceTech_BOBVerticalStretch | |
| DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap | |
| DXVA2_DeinterlaceTech_MedianFiltering | |
| DXVA2_DeinterlaceTech_EdgeFiltering | |
| DXVA2_DeinterlaceTech_FieldAdaptive | |
| DXVA2_DeinterlaceTech_PixelAdaptive | |
| DXVA2_DeinterlaceTech_MotionVectorSteered | |
| DXVA2_DeinterlaceTech_InverseTelecine | |
| */ | |
| /* VideoProcessorOperations | |
| DXVA2_VideoProcess_YUV2RGB | |
| DXVA2_VideoProcess_StretchX | |
| DXVA2_VideoProcess_StretchY | |
| DXVA2_VideoProcess_AlphaBlend | |
| DXVA2_VideoProcess_SubRects | |
| DXVA2_VideoProcess_SubStreams | |
| DXVA2_VideoProcess_SubStreamsExtended | |
| DXVA2_VideoProcess_YUV2RGBExtended | |
| DXVA2_VideoProcess_AlphaBlendExtended | |
| DXVA2_VideoProcess_Constriction | |
| DXVA2_VideoProcess_NoiseFilter | |
| DXVA2_VideoProcess_DetailFilter | |
| DXVA2_VideoProcess_PlanarAlpha | |
| DXVA2_VideoProcess_LinearScaling | |
| DXVA2_VideoProcess_GammaCompensated | |
| DXVA2_VideoProcess_MaintainsOriginalFieldData | |
| */ | |
| /*NoiseFilterTechnology | |
| DXVA2_NoiseFilterTech_Unsupported | |
| DXVA2_NoiseFilterTech_Unknown | |
| DXVA2_NoiseFilterTech_Median | |
| DXVA2_NoiseFilterTech_Temporal | |
| DXVA2_NoiseFilterTech_BlockNoise | |
| DXVA2_NoiseFilterTech_MosquitoNoise | |
| */ | |
| /* DetailFilterTechnology | |
| DXVA2_DetailFilterTech_Unsupported | |
| DXVA2_DetailFilterTech_Unknown | |
| DXVA2_DetailFilterTech_Edge | |
| DXVA2_DetailFilterTech_Sharpening | |
| */ | |
| typedef struct _DXVA2_VideoProcessBltParams { | |
| REFERENCE_TIME TargetFrame; | |
| RECT TargetRect; | |
| SIZE ConstrictionSize; | |
| UINT StreamingFlags; | |
| DXVA2_AYUVSample16 BackgroundColor; | |
| DXVA2_ExtendedFormat DestFormat; | |
| DXVA2_ProcAmpValues ProcAmpValues; | |
| DXVA2_Fixed32 Alpha; | |
| DXVA2_FilterValues NoiseFilterLuma; | |
| DXVA2_FilterValues NoiseFilterChroma; | |
| DXVA2_FilterValues DetailFilterLuma; | |
| DXVA2_FilterValues DetailFilterChroma; | |
| DWORD DestData; | |
| } DXVA2_VideoProcessBltParams; | |
| typedef struct _DXVA2_VideoProcessorCaps { | |
| UINT DeviceCaps; | |
| D3DPOOL InputPool; | |
| UINT NumForwardRefSamples; | |
| UINT NumBackwardRefSamples; | |
| UINT Reserved; | |
| UINT DeinterlaceTechnology; | |
| UINT ProcAmpControlCaps; | |
| UINT VideoProcessorOperations; | |
| UINT NoiseFilterTechnology; | |
| UINT DetailFilterTechnology; | |
| } DXVA2_VideoProcessorCaps; | |
| /* SampleData | |
| DXVA2_SampleData_RFF | |
| DXVA2_SampleData_TFF | |
| DXVA2_SampleData_RFF_TFF_Present | |
| */ | |
| typedef struct _DXVA2_VideoSample { | |
| REFERENCE_TIME Start; | |
| REFERENCE_TIME End; | |
| DXVA2_ExtendedFormat SampleFormat; | |
| IDirect3DSurface9* SrcSurface; | |
| RECT SrcRect; | |
| RECT DstRect; | |
| DXVA2_AYUVSample8 Pal[16]; | |
| DXVA2_Fixed32 PlanarAlpha; | |
| DWORD SampleData; | |
| } DXVA2_VideoSample; | |
| /* DXVA H264 */ | |
| typedef struct { | |
| __C89_NAMELESS union { | |
| __C89_NAMELESS struct { | |
| UCHAR Index7Bits : 7; | |
| UCHAR AssociatedFlag : 1; | |
| }; | |
| UCHAR bPicEntry; | |
| }; | |
| } DXVA_PicEntry_H264; | |
| typedef struct { | |
| USHORT wFrameWidthInMbsMinus1; | |
| USHORT wFrameHeightInMbsMinus1; | |
| DXVA_PicEntry_H264 InPic; | |
| DXVA_PicEntry_H264 OutPic; | |
| USHORT PicOrderCnt_offset; | |
| INT CurrPicOrderCnt; | |
| UINT StatusReportFeedbackNumber; | |
| UCHAR model_id; | |
| UCHAR separate_colour_description_present_flag; | |
| UCHAR film_grain_bit_depth_luma_minus8; | |
| UCHAR film_grain_bit_depth_chroma_minus8; | |
| UCHAR film_grain_full_range_flag; | |
| UCHAR film_grain_colour_primaries; | |
| UCHAR film_grain_transfer_characteristics; | |
| UCHAR film_grain_matrix_coefficients; | |
| UCHAR blending_mode_id; | |
| UCHAR log2_scale_factor; | |
| UCHAR comp_model_present_flag[4]; | |
| UCHAR num_intensity_intervals_minus1[4]; | |
| UCHAR num_model_values_minus1[4]; | |
| UCHAR intensity_interval_lower_bound[3][16]; | |
| UCHAR intensity_interval_upper_bound[3][16]; | |
| SHORT comp_model_value[3][16][8]; | |
| } DXVA_FilmGrainChar_H264; | |
| /* DXVA MPEG-I/II and VC-1 */ | |
| typedef struct _DXVA_PictureParameters { | |
| USHORT wDecodedPictureIndex; | |
| USHORT wDeblockedPictureIndex; | |
| USHORT wForwardRefPictureIndex; | |
| USHORT wBackwardRefPictureIndex; | |
| USHORT wPicWidthInMBminus1; | |
| USHORT wPicHeightInMBminus1; | |
| UCHAR bMacroblockWidthMinus1; | |
| UCHAR bMacroblockHeightMinus1; | |
| UCHAR bBlockWidthMinus1; | |
| UCHAR bBlockHeightMinus1; | |
| UCHAR bBPPminus1; | |
| UCHAR bPicStructure; | |
| UCHAR bSecondField; | |
| UCHAR bPicIntra; | |
| UCHAR bPicBackwardPrediction; | |
| UCHAR bBidirectionalAveragingMode; | |
| UCHAR bMVprecisionAndChromaRelation; | |
| UCHAR bChromaFormat; | |
| UCHAR bPicScanFixed; | |
| UCHAR bPicScanMethod; | |
| UCHAR bPicReadbackRequests; | |
| UCHAR bRcontrol; | |
| UCHAR bPicSpatialResid8; | |
| UCHAR bPicOverflowBlocks; | |
| UCHAR bPicExtrapolation; | |
| UCHAR bPicDeblocked; | |
| UCHAR bPicDeblockConfined; | |
| UCHAR bPic4MVallowed; | |
| UCHAR bPicOBMC; | |
| UCHAR bPicBinPB; | |
| UCHAR bMV_RPS; | |
| UCHAR bReservedBits; | |
| USHORT wBitstreamFcodes; | |
| USHORT wBitstreamPCEelements; | |
| UCHAR bBitstreamConcealmentNeed; | |
| UCHAR bBitstreamConcealmentMethod; | |
| } DXVA_PictureParameters, *LPDXVA_PictureParameters; | |
| typedef struct _DXVA_QmatrixData { | |
| BYTE bNewQmatrix[4]; | |
| WORD Qmatrix[4][8 * 8]; | |
| } DXVA_QmatrixData, *LPDXVA_QmatrixData; | |
| typedef struct _DXVA_SliceInfo { | |
| USHORT wHorizontalPosition; | |
| USHORT wVerticalPosition; | |
| UINT dwSliceBitsInBuffer; | |
| UINT dwSliceDataLocation; | |
| UCHAR bStartCodeBitOffset; | |
| UCHAR bReservedBits; | |
| USHORT wMBbitOffset; | |
| USHORT wNumberMBsInSlice; | |
| USHORT wQuantizerScaleCode; | |
| USHORT wBadSliceChopping; | |
| } DXVA_SliceInfo, *LPDXVA_SliceInfo; | |
| typedef struct { | |
| USHORT wFrameWidthInMbsMinus1; | |
| USHORT wFrameHeightInMbsMinus1; | |
| DXVA_PicEntry_H264 CurrPic; | |
| UCHAR num_ref_frames; | |
| __C89_NAMELESS union { | |
| __C89_NAMELESS struct { | |
| USHORT field_pic_flag : 1; | |
| USHORT MbaffFrameFlag : 1; | |
| USHORT residual_colour_transform_flag : 1; | |
| USHORT sp_for_switch_flag : 1; | |
| USHORT chroma_format_idc : 2; | |
| USHORT RefPicFlag : 1; | |
| USHORT constrained_intra_pred_flag : 1; | |
| USHORT weighted_pred_flag : 1; | |
| USHORT weighted_bipred_idc : 2; | |
| USHORT MbsConsecutiveFlag : 1; | |
| USHORT frame_mbs_only_flag : 1; | |
| USHORT transform_8x8_mode_flag : 1; | |
| USHORT MinLumaBipredSize8x8Flag : 1; | |
| USHORT IntraPicFlag : 1; | |
| }; | |
| USHORT wBitFields; | |
| }; | |
| UCHAR bit_depth_luma_minus8; | |
| UCHAR bit_depth_chroma_minus8; | |
| USHORT Reserved16Bits; | |
| UINT StatusReportFeedbackNumber; | |
| DXVA_PicEntry_H264 RefFrameList[16]; | |
| INT CurrFieldOrderCnt[2]; | |
| INT FieldOrderCntList[16][2]; | |
| CHAR pic_init_qs_minus26; | |
| CHAR chroma_qp_index_offset; | |
| CHAR second_chroma_qp_index_offset; | |
| UCHAR ContinuationFlag; | |
| CHAR pic_init_qp_minus26; | |
| UCHAR num_ref_idx_l0_active_minus1; | |
| UCHAR num_ref_idx_l1_active_minus1; | |
| UCHAR Reserved8BitsA; | |
| USHORT FrameNumList[16]; | |
| UINT UsedForReferenceFlags; | |
| USHORT NonExistingFrameFlags; | |
| USHORT frame_num; | |
| UCHAR log2_max_frame_num_minus4; | |
| UCHAR pic_order_cnt_type; | |
| UCHAR log2_max_pic_order_cnt_lsb_minus4; | |
| UCHAR delta_pic_order_always_zero_flag; | |
| UCHAR direct_8x8_inference_flag; | |
| UCHAR entropy_coding_mode_flag; | |
| UCHAR pic_order_present_flag; | |
| UCHAR num_slice_groups_minus1; | |
| UCHAR slice_group_map_type; | |
| UCHAR deblocking_filter_control_present_flag; | |
| UCHAR redundant_pic_cnt_present_flag; | |
| UCHAR Reserved8BitsB; | |
| USHORT slice_group_change_rate_minus1; | |
| UCHAR SliceGroupMap[810]; | |
| } DXVA_PicParams_H264; | |
| typedef struct { | |
| UCHAR bScalingLists4x4[6][16]; | |
| UCHAR bScalingLists8x8[2][64]; | |
| } DXVA_Qmatrix_H264; | |
| typedef struct { | |
| UINT BSNALunitDataLocation; | |
| UINT SliceBytesInBuffer; | |
| USHORT wBadSliceChopping; | |
| USHORT first_mb_in_slice; | |
| USHORT NumMbsForSlice; | |
| USHORT BitOffsetToSliceData; | |
| UCHAR slice_type; | |
| UCHAR luma_log2_weight_denom; | |
| UCHAR chroma_log2_weight_denom; | |
| UCHAR num_ref_idx_l0_active_minus1; | |
| UCHAR num_ref_idx_l1_active_minus1; | |
| CHAR slice_alpha_c0_offset_div2; | |
| CHAR slice_beta_offset_div2; | |
| UCHAR Reserved8Bits; | |
| DXVA_PicEntry_H264 RefPicList[2][32]; | |
| SHORT Weights[2][32][3][2]; | |
| CHAR slice_qs_delta; | |
| CHAR slice_qp_delta; | |
| UCHAR redundant_pic_cnt; | |
| UCHAR direct_spatial_mv_pred_flag; | |
| UCHAR cabac_init_idc; | |
| UCHAR disable_deblocking_filter_idc; | |
| USHORT slice_id; | |
| } DXVA_Slice_H264_Long; | |
| typedef struct { | |
| UINT BSNALunitDataLocation; | |
| UINT SliceBytesInBuffer; | |
| USHORT wBadSliceChopping; | |
| } DXVA_Slice_H264_Short; | |
| #pragma pack(pop) | |
| /* Constants */ | |
| #define DXVA2_VideoDecoderRenderTarget 0 | |
| #define DXVA2_VideoProcessorRenderTarget 1 | |
| #define DXVA2_VideoSoftwareRenderTarget 2 | |
| /* CompressedBufferType */ | |
| #define DXVA2_PictureParametersBufferType 0 | |
| #define DXVA2_MacroBlockControlBufferType 1 | |
| #define DXVA2_ResidualDifferenceBufferType 2 | |
| #define DXVA2_DeblockingControlBufferType 3 | |
| #define DXVA2_InverseQuantizationMatrixBufferType 4 | |
| #define DXVA2_SliceControlBufferType 5 | |
| #define DXVA2_BitStreamDateBufferType 6 | |
| #define DXVA2_MotionVectorBuffer 7 | |
| #define DXVA2_FilmGrainBuffer 8 | |
| /*Fixme: inlines?*/ | |
| const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void); | |
| const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void); | |
| float DXVA2FixedToFloat(const DXVA2_Fixed32 _fixed_); | |
| DXVA2_Fixed32 DXVA2FloatToFixed(const float _float_); | |
| HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager); | |
| HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| /* COM Interfaces */ | |
| #undef INTERFACE | |
| #define INTERFACE IDirectXVideoDecoder | |
| DECLARE_INTERFACE_(IDirectXVideoDecoder,IUnknown) | |
| { | |
| BEGIN_INTERFACE | |
| /* IUnknown methods */ | |
| STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | |
| STDMETHOD_(ULONG, AddRef)(THIS) PURE; | |
| STDMETHOD_(ULONG, Release)(THIS) PURE; | |
| /* IDirectXVideoDecoder methods */ | |
| STDMETHOD_(HRESULT,GetVideoDecoderService)(THIS_ IDirectXVideoDecoderService **ppAccelServices) PURE; | |
| STDMETHOD_(HRESULT,GetCreationParameters)(THIS_ GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 ***pppDecoderRenderTargets,UINT *pNumSurfaces) PURE; | |
| STDMETHOD_(HRESULT,GetBuffer)(THIS_ UINT BufferType,void **ppBuffer,UINT *pBufferSize) PURE; | |
| STDMETHOD_(HRESULT,ReleaseBuffer)(THIS_ UINT BufferType) PURE; | |
| STDMETHOD_(HRESULT,BeginFrame)(THIS_ IDirect3DSurface9 *pRenderTarget,void *pvPVPData) PURE; | |
| STDMETHOD_(HRESULT,EndFrame)(THIS_ HANDLE *pHandleComplete) PURE; | |
| STDMETHOD_(HRESULT,Execute)(THIS_ const DXVA2_DecodeExecuteParams *pExecuteParams) PURE; | |
| END_INTERFACE | |
| }; | |
| #ifdef COBJMACROS | |
| #define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | |
| #define IDirectXVideoDecoder_AddRef(This) (This)->pVtbl->AddRef(This) | |
| #define IDirectXVideoDecoder_Release(This) (This)->pVtbl->Release(This) | |
| #define IDirectXVideoDecoder_GetVideoDecoderService(This,ppAccelServices) (This)->lpVtbl->GetVideoDecoderService(This,ppAccelServices) | |
| #define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pppDecoderRenderTargets,pNumSurfaces) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pppDecoderRenderTargets,pNumSurfaces) | |
| #define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) (This)->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize) | |
| #define IDirectXVideoDecoder_ReleaseBuffer(This,BufferType) (This)->lpVtbl->ReleaseBuffer(This,BufferType) | |
| #define IDirectXVideoDecoder_BeginFrame(This,pRenderTarget,pvPVPData) (This)->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData) | |
| #define IDirectXVideoDecoder_EndFrame(This,pHandleComplete) (This)->lpVtbl->EndFrame(This,pHandleComplete) | |
| #define IDirectXVideoDecoder_Execute(This,pExecuteParams) (This)->lpVtbl->Execute(This,pExecuteParams) | |
| #endif /*COBJMACROS*/ | |
| #undef INTERFACE | |
| #define INTERFACE IDirectXVideoAccelerationService | |
| DECLARE_INTERFACE_(IDirectXVideoAccelerationService,IUnknown) | |
| { | |
| BEGIN_INTERFACE | |
| /* IUnknown methods */ | |
| STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | |
| STDMETHOD_(ULONG, AddRef)(THIS) PURE; | |
| STDMETHOD_(ULONG, Release)(THIS) PURE; | |
| /* IDirectXVideoAccelerationService methods */ | |
| STDMETHOD_(HRESULT,CreateSurface)(THIS_ UINT Width,UINT Height,UINT BackBuffers,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DWORD DxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) PURE; | |
| END_INTERFACE | |
| }; | |
| #ifdef COBJMACROS | |
| #define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | |
| #define IDirectXVideoAccelerationService_AddRef(This) (This)->pVtbl->AddRef(This) | |
| #define IDirectXVideoAccelerationService_Release(This) (This)->pVtbl->Release(This) | |
| #define IDirectXVideoAccelerationService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) | |
| #endif /*COBJMACROS*/ | |
| #undef INTERFACE | |
| #define INTERFACE IDirectXVideoDecoderService | |
| DECLARE_INTERFACE_(IDirectXVideoDecoderService,IDirectXVideoAccelerationService) | |
| { | |
| BEGIN_INTERFACE | |
| /* IUnknown methods */ | |
| STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | |
| STDMETHOD_(ULONG, AddRef)(THIS) PURE; | |
| STDMETHOD_(ULONG, Release)(THIS) PURE; | |
| /* IDirectXVideoAccelerationService methods */ | |
| STDMETHOD_(HRESULT,CreateSurface)(THIS_ UINT Width,UINT Height,UINT BackBuffers,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DWORD DxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) PURE; | |
| /* IDirectXVideoDecoderService methods */ | |
| STDMETHOD_(HRESULT,GetDecoderDeviceGuids)(THIS_ UINT *Count,GUID **pGuids) PURE; | |
| STDMETHOD_(HRESULT,GetDecoderRenderTargets)(THIS_ REFGUID Guid,UINT *pCount,D3DFORMAT **pFormats) PURE; | |
| STDMETHOD_(HRESULT,GetDecoderConfigurations)(THIS_ REFGUID Guid,const DXVA2_VideoDesc *pVideoDesc,IUnknown *pReserved,UINT *pCount,DXVA2_ConfigPictureDecode **ppConfigs) PURE; | |
| STDMETHOD_(HRESULT,CreateVideoDecoder)(THIS_ REFGUID Guid,const DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 **ppDecoderRenderTargets,UINT NumSurfaces,IDirectXVideoDecoder **ppDecode) PURE; | |
| END_INTERFACE | |
| }; | |
| #ifdef COBJMACROS | |
| #define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | |
| #define IDirectXVideoDecoderService_AddRef(This) (This)->pVtbl->AddRef(This) | |
| #define IDirectXVideoDecoderService_Release(This) (This)->pVtbl->Release(This) | |
| #define IDirectXVideoDecoderService_CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle) | |
| #define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,Count,pGuids) (This)->lpVtbl->GetDecoderDeviceGuids(This,Count,pGuids) | |
| #define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,Guid,pCount,pFormats) (This)->lpVtbl->GetDecoderRenderTargets(This,Guid,pCount,pFormats) | |
| #define IDirectXVideoDecoderService_GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs) (This)->lpVtbl->GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs) | |
| #define IDirectXVideoDecoderService_CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode) (This)->lpVtbl->CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode) | |
| #endif /*COBJMACROS*/ | |
| #undef INTERFACE | |
| #define INTERFACE IDirect3DDeviceManager9 | |
| DECLARE_INTERFACE_(IDirect3DDeviceManager9,IUnknown) | |
| { | |
| BEGIN_INTERFACE | |
| /* IUnknown methods */ | |
| STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; | |
| STDMETHOD_(ULONG, AddRef)(THIS) PURE; | |
| STDMETHOD_(ULONG, Release)(THIS) PURE; | |
| /* IDirect3DDeviceManager9 methods */ | |
| STDMETHOD_(HRESULT,ResetDevice)(THIS_ IDirect3DDevice9 *pDevice,UINT resetToken) PURE; | |
| STDMETHOD_(HRESULT,OpenDeviceHandle)(THIS_ HANDLE *phDevice) PURE; | |
| STDMETHOD_(HRESULT,CloseDeviceHandle)(THIS_ HANDLE hDevice) PURE; | |
| STDMETHOD_(HRESULT,TestDevice)(THIS_ HANDLE hDevice) PURE; | |
| STDMETHOD_(HRESULT,LockDevice)(THIS_ HANDLE hDevice,IDirect3DDevice9 **ppDevice,WINBOOL fBlock) PURE; | |
| STDMETHOD_(HRESULT,UnlockDevice)(THIS_ HANDLE hDevice,BOOL fSaveState) PURE; | |
| STDMETHOD_(HRESULT,GetVideoService)(THIS_ HANDLE hDevice,REFIID riid,void **ppService) PURE; | |
| END_INTERFACE | |
| }; | |
| #ifdef COBJMACROS | |
| #define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->pVtbl->QueryInterface(This,riid,ppvObject) | |
| #define IDirect3DDeviceManager9_AddRef(This) (This)->pVtbl->AddRef(This) | |
| #define IDirect3DDeviceManager9_Release(This) (This)->pVtbl->Release(This) | |
| #define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pDevice,resetToken) | |
| #define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice) | |
| #define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice) | |
| #define IDirect3DDeviceManager9_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice) | |
| #define IDirect3DDeviceManager9_LockDevice(This,hDevice,ppDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock) | |
| #define IDirect3DDeviceManager9_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState) | |
| #define IDirect3DDeviceManager9_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService) | |
| #endif /*COBJMACROS*/ | |
| #endif /*(_WIN32_WINNT >= 0x0600)*/ | |
| #endif /*_INC_DXVA2API*/ |