5f6ae3d318
of memset to avoid <string.h>. Still need a fix for memcmp. * include/dshow.h (AM_ASPECT_RATIO_MODE,AM_WST_DRAWBGMODE,AM_WST_LEVEL) (AMExtendedSeekingCapabilities,AM_WST_SERVICE,AM_WST_STATE) (AM_WST_STYLE): Add enums. (AM_WST_PAGE,AMVABeginFrameInfo,AMVACompBufferInfo,AMVAEndFrameInfo, AMVAInternalMemInfo,AMVAUncompBufferInfo,AMVAUncompDataInfo): New structures. * include/errors.h (VFW_*): Define. * include/evcode.h (AM_WMT_EVENT_DATA): New structure. * include/mmsystem.h (WAVE_FORMAT_EXTENSIBLE): Define. * include/edevdefs.h (ED_FORMAT_SMPTE_30,ED_FORMAT_SMPTE_30DROP) (ED_FORMAT_SMPTE_25,ED_FORMAT_SMPTE_24): Move from here... * include/strmif.h: ... to here. New file. * include/aviriff.h: New file. * include/bdatypes.h: New file. * include/control.h: New file. * include/dvdmedia.h: New file. * include/il21dec.h: New file. * include/ks.h: New file. * include/ksmedia.h: New file. * include/mmreg.h: New file. * include/mpegtype.h: New file. * include/vidcap.h: New file. * include/vmr9.h: New file. * include/vptype.h: New file. * include/xprtdefs.h: New file.
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
|