[1046] | 1 | #ifndef _VMR9_H
|
---|
| 2 | #define _VMR9_H
|
---|
| 3 | #if __GNUC__ >= 3
|
---|
| 4 | #pragma GCC system_header
|
---|
| 5 | #endif
|
---|
| 6 |
|
---|
| 7 | #ifdef __cplusplus
|
---|
| 8 | extern "C" {
|
---|
| 9 | #endif
|
---|
| 10 |
|
---|
| 11 | /*--- DirectShow Reference - DirectShow Enumerated Types */
|
---|
| 12 | typedef enum _VMR9_SampleFormat {
|
---|
| 13 | VMR9_SampleReserved = 1,
|
---|
| 14 | VMR9_SampleProgressiveFrame = 2,
|
---|
| 15 | VMR9_SampleFieldInterleavedEvenFirst = 3,
|
---|
| 16 | VMR9_SampleFieldInterleavedOddFirst = 4,
|
---|
| 17 | VMR9_SampleFieldSingleEven = 5,
|
---|
| 18 | VMR9_SampleFieldSingleOdd = 6
|
---|
| 19 | } VMR9_SampleFormat;
|
---|
| 20 | typedef enum {
|
---|
| 21 | VMR9AlphaBitmap_Disable = 0x00000001,
|
---|
| 22 | VMR9AlphaBitmap_hDC = 0x00000002,
|
---|
| 23 | VMR9AlphaBitmap_EntireDDS = 0x00000004,
|
---|
| 24 | VMR9AlphaBitmap_SrcColorKey = 0x00000008,
|
---|
| 25 | VMR9AlphaBitmap_SrcRect = 0x00000010,
|
---|
| 26 | VMR9AlphaBitmap_FilterMode = 0x00000020
|
---|
| 27 | } VMR9AlphaBitmapFlags;
|
---|
| 28 | typedef enum {
|
---|
| 29 | VMR9ARMode_None,
|
---|
| 30 | VMR9ARMode_LetterBox
|
---|
| 31 | } VMR9AspectRatioMode;
|
---|
| 32 | typedef enum {
|
---|
| 33 | DeinterlacePref9_NextBest = 0x01,
|
---|
| 34 | DeinterlacePref9_BOB = 0x02,
|
---|
| 35 | DeinterlacePref9_Weave = 0x04,
|
---|
| 36 | DeinterlacePref9_Mask = 0x07
|
---|
| 37 | } VMR9DeinterlacePrefs;
|
---|
| 38 | typedef enum {
|
---|
| 39 | DeinterlaceTech9_Unknown = 0x0000,
|
---|
| 40 | DeinterlaceTech9_BOBLineReplicate = 0x0001,
|
---|
| 41 | DeinterlaceTech9_BOBVerticalStretch = 0x0002,
|
---|
| 42 | DeinterlaceTech9_MedianFiltering = 0x0004,
|
---|
| 43 | DeinterlaceTech9_EdgeFiltering = 0x0010,
|
---|
| 44 | DeinterlaceTech9_FieldAdaptive = 0x0020,
|
---|
| 45 | DeinterlaceTech9_PixelAdaptive = 0x0040,
|
---|
| 46 | DeinterlaceTech9_MotionVectorSteered = 0x0080
|
---|
| 47 | } VMR9DeinterlaceTech;
|
---|
| 48 | typedef enum {
|
---|
| 49 | MixerPref9_NoDecimation = 0x00000001,
|
---|
| 50 | MixerPref9_DecimateOutput = 0x00000002,
|
---|
| 51 | MixerPref9_ARAdjustXorY = 0x00000004,
|
---|
| 52 | MixerPref9_NonSquareMixing = 0x00000008,
|
---|
| 53 | MixerPref9_DecimateMask = 0x0000000F,
|
---|
| 54 | MixerPref9_BiLinearFiltering = 0x00000010,
|
---|
| 55 | MixerPref9_PointFiltering = 0x00000020,
|
---|
| 56 | MixerPref9_AnisotropicFiltering = 0x00000040,
|
---|
| 57 | MixerPref9_PyramidalQuadFiltering = 0x00000080,
|
---|
| 58 | MixerPref9_GaussianQuadFiltering = 0x00000100,
|
---|
| 59 | MixerPref9_FilteringReserved = 0x00000E00,
|
---|
| 60 | MixerPref9_FilteringMask = 0x00000FF0,
|
---|
| 61 | MixerPref9_RenderTargetRGB = 0x00001000,
|
---|
| 62 | MixerPref9_RenderTargetYUV = 0x00002000,
|
---|
| 63 | MixerPref9_RenderTargetReserved = 0x000FC000,
|
---|
| 64 | MixerPref9_RenderTargetMask = 0x000FF000
|
---|
| 65 | MixerPref9_DynamicSwitchToBOB = 0x00100000,
|
---|
| 66 | MixerPref9_DynamicDecimateBy2 = 0x00200000,
|
---|
| 67 | MixerPref9_DynamicReserved = 0x00C00000,
|
---|
| 68 | MixerPref9_DynamicMask = 0x00F00000
|
---|
| 69 | } VMR9MixerPrefs;
|
---|
| 70 | typedef enum VMR9Mode {
|
---|
| 71 | VMR9Mode_Windowed = 0x00000001,
|
---|
| 72 | VMR9Mode_Windowless = 0x00000002,
|
---|
| 73 | VMR9Mode_Renderless = 0x00000004,
|
---|
| 74 | VMR9Mode_Mask = 0x00000007
|
---|
| 75 | };
|
---|
| 76 | typedef enum {
|
---|
| 77 | VMR9Sample_SyncPoint = 0x00000001,
|
---|
| 78 | VMR9Sample_Preroll = 0x00000002,
|
---|
| 79 | VMR9Sample_Discontinuity = 0x00000004,
|
---|
| 80 | VMR9Sample_TimeValid = 0x00000008
|
---|
| 81 | } VMR9PresentationFlags;
|
---|
| 82 | typedef enum {
|
---|
| 83 | ProcAmpControl9_Brightness = 0x00000001,
|
---|
| 84 | ProcAmpControl9_Contrast = 0x00000002,
|
---|
| 85 | ProcAmpControl9_Hue = 0x00000004,
|
---|
| 86 | ProcAmpControl9_Saturation = 0x00000008,
|
---|
| 87 | ProcAmpControl9_Mask = 0x0000000F
|
---|
| 88 | } VMR9ProcAmpControlFlags;
|
---|
| 89 | typedef enum VMR9RenderPrefs {
|
---|
| 90 | RenderPrefs9_DoNotRenderBorder = 0x00000001,
|
---|
| 91 | RenderPrefs9_Mask = 0x00000001
|
---|
| 92 | };
|
---|
| 93 | typedef enum {
|
---|
| 94 | VMR9AllocFlag_3DRenderTarget = 0x0001,
|
---|
| 95 | VMR9AllocFlag_DXVATarget = 0x0002,
|
---|
| 96 | VMR9AllocFlag_TextureSurface = 0x0004,
|
---|
| 97 | VMR9AllocFlag_OffscreenSurface = 0x0008,
|
---|
| 98 | VMR9AllocFlag_UsageReserved = 0x00F0,
|
---|
| 99 | VMR9AllocFlag_UsageMask = 0x00FF
|
---|
| 100 | } VMR9SurfaceAllocationFlags;
|
---|
| 101 | /*--- DirectShow Reference - DirectShow Structures */
|
---|
| 102 | /**********
|
---|
| 103 | typedef struct VMR9AllocationInfo{
|
---|
| 104 | DWORD dwFlags;
|
---|
| 105 | DWORD dwWidth;
|
---|
| 106 | DWORD dwHeight;
|
---|
| 107 | D3DFORMAT Format;
|
---|
| 108 | D3DPOOL Pool;
|
---|
| 109 | DWORD MinBuffers;
|
---|
| 110 | SIZE szAspectRatio;
|
---|
| 111 | SIZE szNativeSize;
|
---|
| 112 | };
|
---|
| 113 | **********/
|
---|
| 114 | typedef struct _VMR9DeinterlaceCaps {
|
---|
| 115 | DWORD dwSize;
|
---|
| 116 | DWORD dwNumPreviousOutputFrames;
|
---|
| 117 | DWORD dwNumForwardRefSamples;
|
---|
| 118 | DWORD dwNumBackwardRefSamples;
|
---|
| 119 | VMRDeinterlaceTech DeinterlaceTechnology;
|
---|
| 120 | } VMR9DeinterlaceCaps;
|
---|
| 121 | typedef struct _VMR9Frequency {
|
---|
| 122 | DWORD dwNumerator;
|
---|
| 123 | DWORD dwDenominator;
|
---|
| 124 | } VMR9Frequency;
|
---|
| 125 | typedef struct {
|
---|
| 126 | UINT uDevID;
|
---|
| 127 | RECT rcMonitor;
|
---|
| 128 | HMONITOR hMon;
|
---|
| 129 | DWORD dwFlags;
|
---|
| 130 | wchar_t szDevice[32];
|
---|
| 131 | wchar_t szDescription[512]
|
---|
| 132 | LARGE_INTEGER liDriverVersion;
|
---|
| 133 | DWORD dwVendorId;
|
---|
| 134 | DWORD dwDeviceId;
|
---|
| 135 | DWORD dwSubSysId;
|
---|
| 136 | DWORD dwRevision;
|
---|
| 137 | } VMR9MonitorInfo;
|
---|
| 138 | typedef struct VMR9NormalizedRect{
|
---|
| 139 | float left;
|
---|
| 140 | float top;
|
---|
| 141 | float right;
|
---|
| 142 | float bottom;
|
---|
| 143 | };
|
---|
| 144 | /**********
|
---|
| 145 | typedef struct {
|
---|
| 146 | DWORD dwFlags;
|
---|
| 147 | IDirect3DSurface9 *lpSurf;
|
---|
| 148 | REFERENCE_TIME rtStart;
|
---|
| 149 | REFERENCE_TIME rtEnd;
|
---|
| 150 | SIZE szAspectRatio;
|
---|
| 151 | RECT rcSrc;
|
---|
| 152 | RECT rcDst;
|
---|
| 153 | DWORD dwReserved1;
|
---|
| 154 | DWORD dwReserved2;
|
---|
| 155 | } VMR9PresentationInfo;
|
---|
| 156 | **********/
|
---|
| 157 | typedef struct _VMR9ProcAmpControl
|
---|
| 158 | {
|
---|
| 159 | DWORD dwSize;
|
---|
| 160 | DWORD dwFlags;
|
---|
| 161 | float Contrast;
|
---|
| 162 | float Brightness;
|
---|
| 163 | float Hue;
|
---|
| 164 | float Saturation;
|
---|
| 165 | } VMR9ProcAmpControl;
|
---|
| 166 | typedef struct _VMR9ProcAmpControlRange
|
---|
| 167 | {
|
---|
| 168 | DWORD dwSize;
|
---|
| 169 | VMR9ProcAmpControlFlags dwProperty;
|
---|
| 170 | float MinValue;
|
---|
| 171 | float MaxValue;
|
---|
| 172 | float DefaultValue;
|
---|
| 173 | float StepSize;
|
---|
| 174 | } VMR9ProcAmpControlRange;
|
---|
| 175 | typedef struct _VMR9VideoDesc {
|
---|
| 176 | DWORD dwSize;
|
---|
| 177 | DWORD dwSampleWidth;
|
---|
| 178 | DWORD dwSampleHeight;
|
---|
| 179 | VMR9_SampleFormat SampleFormat;
|
---|
| 180 | DWORD dwFourCC;
|
---|
| 181 | VMR9Frequency InputSampleFreq;
|
---|
| 182 | VMR9Frequency OutputFrameFreq;
|
---|
| 183 | } VMR9VideoDesc;
|
---|
| 184 | /**********
|
---|
| 185 | typedef struct VMR9VideoStreamInfo{
|
---|
| 186 | IDirect3DSurface9 *pddsVideoSurface;
|
---|
| 187 | DWORD dwWidth;
|
---|
| 188 | DWORD dwHeight;
|
---|
| 189 | DWORD dwStrmID;
|
---|
| 190 | FLOAT fAlpha;
|
---|
| 191 | VMR9NormalizedRect rNormal;
|
---|
| 192 | REFERENCE_TIME rtStart;
|
---|
| 193 | REFERENCE_TIME rtEnd;
|
---|
| 194 | VMR9_SampleFormat SampleFormat;
|
---|
| 195 | };
|
---|
| 196 | typedef struct VMR9AlphaBitmap{
|
---|
| 197 | DWORD dwFlags;
|
---|
| 198 | HDC hdc;
|
---|
| 199 | IDirect3DSurface9 *pDDS;
|
---|
| 200 | RECT rSrc;
|
---|
| 201 | VMR9NormalizedRect rDest;
|
---|
| 202 | FLOAT fAlpha;
|
---|
| 203 | COLORREF clrSrcKey;
|
---|
| 204 | DWORD dwFilterMode;
|
---|
| 205 | };
|
---|
| 206 | **********/
|
---|
| 207 |
|
---|
| 208 | #ifdef __cplusplus
|
---|
| 209 | }
|
---|
| 210 | #endif
|
---|
| 211 | #endif
|
---|