212 lines
5.3 KiB
C
212 lines
5.3 KiB
C
|
#ifndef _VMR9_H
|
||
|
#define _VMR9_H
|
||
|
#if __GNUC__ >= 3
|
||
|
#pragma GCC system_header
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/*--- DirectShow Reference - DirectShow Enumerated Types */
|
||
|
typedef enum _VMR9_SampleFormat {
|
||
|
VMR9_SampleReserved = 1,
|
||
|
VMR9_SampleProgressiveFrame = 2,
|
||
|
VMR9_SampleFieldInterleavedEvenFirst = 3,
|
||
|
VMR9_SampleFieldInterleavedOddFirst = 4,
|
||
|
VMR9_SampleFieldSingleEven = 5,
|
||
|
VMR9_SampleFieldSingleOdd = 6
|
||
|
} VMR9_SampleFormat;
|
||
|
typedef enum {
|
||
|
VMR9AlphaBitmap_Disable = 0x00000001,
|
||
|
VMR9AlphaBitmap_hDC = 0x00000002,
|
||
|
VMR9AlphaBitmap_EntireDDS = 0x00000004,
|
||
|
VMR9AlphaBitmap_SrcColorKey = 0x00000008,
|
||
|
VMR9AlphaBitmap_SrcRect = 0x00000010,
|
||
|
VMR9AlphaBitmap_FilterMode = 0x00000020
|
||
|
} VMR9AlphaBitmapFlags;
|
||
|
typedef enum {
|
||
|
VMR9ARMode_None,
|
||
|
VMR9ARMode_LetterBox
|
||
|
} VMR9AspectRatioMode;
|
||
|
typedef enum {
|
||
|
DeinterlacePref9_NextBest = 0x01,
|
||
|
DeinterlacePref9_BOB = 0x02,
|
||
|
DeinterlacePref9_Weave = 0x04,
|
||
|
DeinterlacePref9_Mask = 0x07
|
||
|
} VMR9DeinterlacePrefs;
|
||
|
typedef enum {
|
||
|
DeinterlaceTech9_Unknown = 0x0000,
|
||
|
DeinterlaceTech9_BOBLineReplicate = 0x0001,
|
||
|
DeinterlaceTech9_BOBVerticalStretch = 0x0002,
|
||
|
DeinterlaceTech9_MedianFiltering = 0x0004,
|
||
|
DeinterlaceTech9_EdgeFiltering = 0x0010,
|
||
|
DeinterlaceTech9_FieldAdaptive = 0x0020,
|
||
|
DeinterlaceTech9_PixelAdaptive = 0x0040,
|
||
|
DeinterlaceTech9_MotionVectorSteered = 0x0080
|
||
|
} VMR9DeinterlaceTech;
|
||
|
typedef enum {
|
||
|
MixerPref9_NoDecimation = 0x00000001,
|
||
|
MixerPref9_DecimateOutput = 0x00000002,
|
||
|
MixerPref9_ARAdjustXorY = 0x00000004,
|
||
|
MixerPref9_NonSquareMixing = 0x00000008,
|
||
|
MixerPref9_DecimateMask = 0x0000000F,
|
||
|
MixerPref9_BiLinearFiltering = 0x00000010,
|
||
|
MixerPref9_PointFiltering = 0x00000020,
|
||
|
MixerPref9_AnisotropicFiltering = 0x00000040,
|
||
|
MixerPref9_PyramidalQuadFiltering = 0x00000080,
|
||
|
MixerPref9_GaussianQuadFiltering = 0x00000100,
|
||
|
MixerPref9_FilteringReserved = 0x00000E00,
|
||
|
MixerPref9_FilteringMask = 0x00000FF0,
|
||
|
MixerPref9_RenderTargetRGB = 0x00001000,
|
||
|
MixerPref9_RenderTargetYUV = 0x00002000,
|
||
|
MixerPref9_RenderTargetReserved = 0x000FC000,
|
||
|
MixerPref9_RenderTargetMask = 0x000FF000
|
||
|
MixerPref9_DynamicSwitchToBOB = 0x00100000,
|
||
|
MixerPref9_DynamicDecimateBy2 = 0x00200000,
|
||
|
MixerPref9_DynamicReserved = 0x00C00000,
|
||
|
MixerPref9_DynamicMask = 0x00F00000
|
||
|
} VMR9MixerPrefs;
|
||
|
typedef enum VMR9Mode {
|
||
|
VMR9Mode_Windowed = 0x00000001,
|
||
|
VMR9Mode_Windowless = 0x00000002,
|
||
|
VMR9Mode_Renderless = 0x00000004,
|
||
|
VMR9Mode_Mask = 0x00000007
|
||
|
};
|
||
|
typedef enum {
|
||
|
VMR9Sample_SyncPoint = 0x00000001,
|
||
|
VMR9Sample_Preroll = 0x00000002,
|
||
|
VMR9Sample_Discontinuity = 0x00000004,
|
||
|
VMR9Sample_TimeValid = 0x00000008
|
||
|
} VMR9PresentationFlags;
|
||
|
typedef enum {
|
||
|
ProcAmpControl9_Brightness = 0x00000001,
|
||
|
ProcAmpControl9_Contrast = 0x00000002,
|
||
|
ProcAmpControl9_Hue = 0x00000004,
|
||
|
ProcAmpControl9_Saturation = 0x00000008,
|
||
|
ProcAmpControl9_Mask = 0x0000000F
|
||
|
} VMR9ProcAmpControlFlags;
|
||
|
typedef enum VMR9RenderPrefs {
|
||
|
RenderPrefs9_DoNotRenderBorder = 0x00000001,
|
||
|
RenderPrefs9_Mask = 0x00000001
|
||
|
};
|
||
|
typedef enum {
|
||
|
VMR9AllocFlag_3DRenderTarget = 0x0001,
|
||
|
VMR9AllocFlag_DXVATarget = 0x0002,
|
||
|
VMR9AllocFlag_TextureSurface = 0x0004,
|
||
|
VMR9AllocFlag_OffscreenSurface = 0x0008,
|
||
|
VMR9AllocFlag_UsageReserved = 0x00F0,
|
||
|
VMR9AllocFlag_UsageMask = 0x00FF
|
||
|
} VMR9SurfaceAllocationFlags;
|
||
|
/*--- DirectShow Reference - DirectShow Structures */
|
||
|
/**********
|
||
|
typedef struct VMR9AllocationInfo{
|
||
|
DWORD dwFlags;
|
||
|
DWORD dwWidth;
|
||
|
DWORD dwHeight;
|
||
|
D3DFORMAT Format;
|
||
|
D3DPOOL Pool;
|
||
|
DWORD MinBuffers;
|
||
|
SIZE szAspectRatio;
|
||
|
SIZE szNativeSize;
|
||
|
};
|
||
|
**********/
|
||
|
typedef struct _VMR9DeinterlaceCaps {
|
||
|
DWORD dwSize;
|
||
|
DWORD dwNumPreviousOutputFrames;
|
||
|
DWORD dwNumForwardRefSamples;
|
||
|
DWORD dwNumBackwardRefSamples;
|
||
|
VMRDeinterlaceTech DeinterlaceTechnology;
|
||
|
} VMR9DeinterlaceCaps;
|
||
|
typedef struct _VMR9Frequency {
|
||
|
DWORD dwNumerator;
|
||
|
DWORD dwDenominator;
|
||
|
} VMR9Frequency;
|
||
|
typedef struct {
|
||
|
UINT uDevID;
|
||
|
RECT rcMonitor;
|
||
|
HMONITOR hMon;
|
||
|
DWORD dwFlags;
|
||
|
wchar_t szDevice[32];
|
||
|
wchar_t szDescription[512]
|
||
|
LARGE_INTEGER liDriverVersion;
|
||
|
DWORD dwVendorId;
|
||
|
DWORD dwDeviceId;
|
||
|
DWORD dwSubSysId;
|
||
|
DWORD dwRevision;
|
||
|
} VMR9MonitorInfo;
|
||
|
typedef struct VMR9NormalizedRect{
|
||
|
float left;
|
||
|
float top;
|
||
|
float right;
|
||
|
float bottom;
|
||
|
};
|
||
|
/**********
|
||
|
typedef struct {
|
||
|
DWORD dwFlags;
|
||
|
IDirect3DSurface9 *lpSurf;
|
||
|
REFERENCE_TIME rtStart;
|
||
|
REFERENCE_TIME rtEnd;
|
||
|
SIZE szAspectRatio;
|
||
|
RECT rcSrc;
|
||
|
RECT rcDst;
|
||
|
DWORD dwReserved1;
|
||
|
DWORD dwReserved2;
|
||
|
} VMR9PresentationInfo;
|
||
|
**********/
|
||
|
typedef struct _VMR9ProcAmpControl
|
||
|
{
|
||
|
DWORD dwSize;
|
||
|
DWORD dwFlags;
|
||
|
float Contrast;
|
||
|
float Brightness;
|
||
|
float Hue;
|
||
|
float Saturation;
|
||
|
} VMR9ProcAmpControl;
|
||
|
typedef struct _VMR9ProcAmpControlRange
|
||
|
{
|
||
|
DWORD dwSize;
|
||
|
VMR9ProcAmpControlFlags dwProperty;
|
||
|
float MinValue;
|
||
|
float MaxValue;
|
||
|
float DefaultValue;
|
||
|
float StepSize;
|
||
|
} VMR9ProcAmpControlRange;
|
||
|
typedef struct _VMR9VideoDesc {
|
||
|
DWORD dwSize;
|
||
|
DWORD dwSampleWidth;
|
||
|
DWORD dwSampleHeight;
|
||
|
VMR9_SampleFormat SampleFormat;
|
||
|
DWORD dwFourCC;
|
||
|
VMR9Frequency InputSampleFreq;
|
||
|
VMR9Frequency OutputFrameFreq;
|
||
|
} VMR9VideoDesc;
|
||
|
/**********
|
||
|
typedef struct VMR9VideoStreamInfo{
|
||
|
IDirect3DSurface9 *pddsVideoSurface;
|
||
|
DWORD dwWidth;
|
||
|
DWORD dwHeight;
|
||
|
DWORD dwStrmID;
|
||
|
FLOAT fAlpha;
|
||
|
VMR9NormalizedRect rNormal;
|
||
|
REFERENCE_TIME rtStart;
|
||
|
REFERENCE_TIME rtEnd;
|
||
|
VMR9_SampleFormat SampleFormat;
|
||
|
};
|
||
|
typedef struct VMR9AlphaBitmap{
|
||
|
DWORD dwFlags;
|
||
|
HDC hdc;
|
||
|
IDirect3DSurface9 *pDDS;
|
||
|
RECT rSrc;
|
||
|
VMR9NormalizedRect rDest;
|
||
|
FLOAT fAlpha;
|
||
|
COLORREF clrSrcKey;
|
||
|
DWORD dwFilterMode;
|
||
|
};
|
||
|
**********/
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
#endif
|