- Add some KS definitions. Patch by Lee Schroeder
CORE-6783

svn path=/trunk/; revision=72962
This commit is contained in:
Thomas Faber 2016-10-13 08:53:11 +00:00
parent 6a96846321
commit 1da8f46087
2 changed files with 297 additions and 0 deletions

View file

@ -115,6 +115,11 @@ DEFINE_GUIDSTRUCT("9b365890-165f-11d0-a195-0020afd156e4", KSNAME_Filter);
DEFINE_GUIDSTRUCT("d833f8f8-7894-11d1-b069-00a0c9062802", KSMEMORY_TYPE_KERNEL_PAGED);
#define KSMEMORY_TYPE_KERNEL_PAGED DEFINE_GUIDNAMED(KSMEMORY_TYPE_KERNEL_PAGED)
#define STATIC_KSDATAFORMAT_SUBTYPE_NONE \
0xe436eb8eL, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}
DEFINE_GUIDSTRUCT("e436eb8e-524f-11ce-9f53-0020af0ba770", KSDATAFORMAT_SUBTYPE_NONE);
#define KSDATAFORMAT_SUBTYPE_NONE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NONE)
/* ===============================================================
I/O Control Codes
*/

View file

@ -235,6 +235,21 @@ DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE", KSCATEGORY_AUDIO_SPLIT
#define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE
#define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE
#define STATIC_KSDATAFORMAT_SPECIFIER_ANALOGVIDEO \
0x0482DDE0L, 0x7817, 0x11CF, {0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65}
DEFINE_GUIDSTRUCT("0482DDE0-7817-11CF-8A03-00AA006ECB65", KSDATAFORMAT_SPECIFIER_ANALOGVIDEO);
#define KSDATAFORMAT_SPECIFIER_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO)
#define STATIC_KSDATAFORMAT_TYPE_ANALOGVIDEO \
0x0482DDE1L, 0x7817, 0x11CF, {0x8A, 0x03, 0x00, 0xAA, 0x00, 0x6E, 0xCB, 0x65}
DEFINE_GUIDSTRUCT("0482DDE1-7817-11CF-8A03-00AA006ECB65", KSDATAFORMAT_TYPE_ANALOGVIDEO);
#define KSDATAFORMAT_TYPE_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGVIDEO)
#define STATIC_PINNAME_VIDEO_ANALOGVIDEOIN \
0xFB6C4283L, 0x0353, 0x11D1, {0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA}
DEFINE_GUIDSTRUCT("FB6C4283-0353-11D1-905F-0000C0CC16BA", PINNAME_VIDEO_ANALOGVIDEOIN);
#define PINNAME_VIDEO_ANALOGVIDEOIN DEFINE_GUIDNAMED(PINNAME_VIDEO_ANALOGVIDEOIN)
/*
Nodes
*/
@ -551,6 +566,13 @@ typedef struct {
//#endif
typedef enum {
KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT,
KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE,
KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS,
KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE
} KSPROPERTY_ALLOCATOR_CONTROL;
typedef struct {
KSDATARANGE DataRange;
ULONG MaximumChannels;
@ -560,6 +582,276 @@ typedef struct {
ULONG MaximumSampleFrequency;
} KSDATARANGE_AUDIO, *PKSDATARANGE_AUDIO;
typedef struct tagKS_AnalogVideoInfo {
RECT rcSource;
RECT rcTarget;
DWORD dwActiveWidth;
DWORD dwActiveHeight;
REFERENCE_TIME AvgTimePerFrame;
} KS_ANALOGVIDEOINFO, *PKS_ANALOGVIDEOINFO;
typedef struct tagKS_DATARANGE_ANALOGVIDEO {
KSDATARANGE DataRange;
KS_ANALOGVIDEOINFO AnalogVideoInfo;
} KS_DATARANGE_ANALOGVIDEO, *PKS_DATARANGE_ANALOGVIDEO;
typedef enum {
KS_TUNER_TUNING_EXACT = 1,
KS_TUNER_TUNING_FINE,
KS_TUNER_TUNING_COARSE,
} KS_TUNER_TUNING_FLAGS;
typedef enum {
KS_TUNER_STRATEGY_PLL = 0x01,
KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0x02,
KS_TUNER_STRATEGY_DRIVER_TUNES = 0x04,
} KS_TUNER_STRATEGY;
typedef struct {
KSPROPERTY Property;
ULONG ModesSupported;
KSPIN_MEDIUM VideoMedium;
KSPIN_MEDIUM TVAudioMedium;
KSPIN_MEDIUM RadioAudioMedium;
} KSPROPERTY_TUNER_CAPS_S, *PKSPROPERTY_TUNER_CAPS_S;
typedef struct {
KSPROPERTY Property;
KSPIN_MEDIUM IFMedium;
} KSPROPERTY_TUNER_IF_MEDIUM_S, *PKSPROPERTY_TUNER_IF_MEDIUM_S;
typedef struct {
KSPROPERTY Property;
ULONG Mode;
} KSPROPERTY_TUNER_MODE_S, *PKSPROPERTY_TUNER_MODE_S;
typedef struct {
KSPROPERTY Property;
ULONG Frequency;
ULONG LastFrequency;
ULONG TuningFlags;
ULONG VideoSubChannel;
ULONG AudioSubChannel;
ULONG Channel;
ULONG Country;
} KSPROPERTY_TUNER_FREQUENCY_S, *PKSPROPERTY_TUNER_FREQUENCY_S;
typedef struct {
KSPROPERTY Property;
ULONG Standard;
} KSPROPERTY_TUNER_STANDARD_S, *PKSPROPERTY_TUNER_STANDARD_S;
typedef struct {
KSPROPERTY Property;
ULONG InputIndex;
} KSPROPERTY_TUNER_INPUT_S, *PKSPROPERTY_TUNER_INPUT_S;
typedef struct {
KSPROPERTY Property;
ULONG CurrentFrequency;
ULONG PLLOffset;
ULONG SignalStrength;
ULONG Busy;
} KSPROPERTY_TUNER_STATUS_S, *PKSPROPERTY_TUNER_STATUS_S;
typedef enum {
KSEVENT_TUNER_CHANGED,
KSEVENT_TUNER_INITIATE_SCAN
} KSEVENT_TUNER;
typedef enum {
KS_AnalogVideo_None = 0x00000000,
KS_AnalogVideo_NTSC_M = 0x00000001,
KS_AnalogVideo_NTSC_M_J = 0x00000002,
KS_AnalogVideo_NTSC_433 = 0x00000004,
KS_AnalogVideo_PAL_B = 0x00000010,
KS_AnalogVideo_PAL_D = 0x00000020,
KS_AnalogVideo_PAL_G = 0x00000040,
KS_AnalogVideo_PAL_H = 0x00000080,
KS_AnalogVideo_PAL_I = 0x00000100,
KS_AnalogVideo_PAL_M = 0x00000200,
KS_AnalogVideo_PAL_N = 0x00000400,
KS_AnalogVideo_PAL_60 = 0x00000800,
KS_AnalogVideo_SECAM_B = 0x00001000,
KS_AnalogVideo_SECAM_D = 0x00002000,
KS_AnalogVideo_SECAM_G = 0x00004000,
KS_AnalogVideo_SECAM_H = 0x00008000,
KS_AnalogVideo_SECAM_K = 0x00010000,
KS_AnalogVideo_SECAM_K1 = 0x00020000,
KS_AnalogVideo_SECAM_L = 0x00040000,
KS_AnalogVideo_SECAM_L1 = 0x00080000,
KS_AnalogVideo_PAL_N_COMBO = 0x00100000
} KS_AnalogVideoStandard;
typedef struct {
KSPROPERTY Property;
ULONG Mode;
ULONG StandardsSupported;
ULONG MinFrequency;
ULONG MaxFrequency;
ULONG TuningGranularity;
ULONG NumberOfInputs;
ULONG SettlingTime;
ULONG Strategy;
} KSPROPERTY_TUNER_MODE_CAPS_S, *PKSPROPERTY_TUNER_MODE_CAPS_S;
typedef struct tagKS_BITMAPINFOHEADER {
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} KS_BITMAPINFOHEADER, *PKS_BITMAPINFOHEADER;
typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
GUID guid;
ULONG VideoStandard;
SIZE InputSize;
SIZE MinCroppingSize;
SIZE MaxCroppingSize;
int CropGranularityX;
int CropGranularityY;
int CropAlignX;
int CropAlignY;
SIZE MinOutputSize;
SIZE MaxOutputSize;
int OutputGranularityX;
int OutputGranularityY;
int StretchTapsX;
int StretchTapsY;
int ShrinkTapsX;
int ShrinkTapsY;
LONGLONG MinFrameInterval;
LONGLONG MaxFrameInterval;
LONG MinBitsPerSecond;
LONG MaxBitsPerSecond;
} KS_VIDEO_STREAM_CONFIG_CAPS, *PKS_VIDEO_STREAM_CONFIG_CAPS;
typedef struct tagKS_FRAME_INFO {
ULONG ExtendedHeaderSize;
DWORD dwFrameFlags;
LONGLONG PictureNumber;
LONGLONG DropCount;
HANDLE hDirectDraw;
HANDLE hSurfaceHandle;
RECT DirectDrawRect;
union {
LONG lSurfacePitch;
DWORD Reserved1;
};
DWORD Reserved2;
union {
struct {
DWORD Reserved3;
DWORD Reserved4;
};
ULONGLONG FrameCompletionNumber;
};
} KS_FRAME_INFO, *PKS_FRAME_INFO;
typedef struct tagKS_VIDEOINFOHEADER {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER, *PKS_VIDEOINFOHEADER;
typedef struct tagKS_VIDEOINFOHEADER2 {
RECT rcSource;
RECT rcTarget;
DWORD dwBitRate;
DWORD dwBitErrorRate;
REFERENCE_TIME AvgTimePerFrame;
DWORD dwInterlaceFlags;
DWORD dwCopyProtectFlags;
DWORD dwPictAspectRatioX;
DWORD dwPictAspectRatioY;
union {
DWORD dwControlFlags;
DWORD dwReserved1;
};
DWORD dwReserved2;
KS_BITMAPINFOHEADER bmiHeader;
} KS_VIDEOINFOHEADER2, *PKS_VIDEOINFOHEADER2;
typedef struct tagKS_DATARANGE_VIDEO {
KSDATARANGE DataRange;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
DWORD StreamDescriptionFlags;
DWORD MemoryAllocationFlags;
KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
KS_VIDEOINFOHEADER VideoInfoHeader;
} KS_DATARANGE_VIDEO, *PKS_DATARANGE_VIDEO;
typedef struct tagKS_DATARANGE_VIDEO2 {
KSDATARANGE DataRange;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
DWORD StreamDescriptionFlags;
DWORD MemoryAllocationFlags;
KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
KS_VIDEOINFOHEADER2 VideoInfoHeader;
} KS_DATARANGE_VIDEO2, *PKS_DATARANGE_VIDEO2;
typedef struct tagKS_VBIINFOHEADER {
ULONG StartLine;
ULONG EndLine;
ULONG SamplingFrequency;
ULONG MinLineStartTime;
ULONG MaxLineStartTime;
ULONG ActualLineStartTime;
ULONG ActualLineEndTime;
ULONG VideoStandard;
ULONG SamplesPerLine;
ULONG StrideInBytes;
ULONG BufferSize;
} KS_VBIINFOHEADER, *PKS_VBIINFOHEADER;
typedef struct tagKS_DATARANGE_VIDEO_VBI {
KSDATARANGE DataRange;
BOOL bFixedSizeSamples;
BOOL bTemporalCompression;
DWORD StreamDescriptionFlags;
DWORD MemoryAllocationFlags;
KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
KS_VBIINFOHEADER VBIInfoHeader;
} KS_DATARANGE_VIDEO_VBI, *PKS_DATARANGE_VIDEO_VBI;
typedef struct tagKS_TVTUNER_CHANGE_INFO {
DWORD dwFlags;
DWORD dwCountryCode;
DWORD dwAnalogVideoStandard;
DWORD dwChannel;
} KS_TVTUNER_CHANGE_INFO, *PKS_TVTUNER_CHANGE_INFO;
typedef struct {
KSPROPERTY Property;
ULONG IndexInputPin;
ULONG IndexOutputPin;
ULONG CanRoute;
} KSPROPERTY_CROSSBAR_ROUTE_S, *PKSPROPERTY_CROSSBAR_ROUTE_S;
typedef struct tagKS_VBI_FRAME_INFO {
ULONG ExtendedHeaderSize;
DWORD dwFrameFlags;
LONGLONG PictureNumber;
LONGLONG DropCount;
DWORD dwSamplingFrequency;
KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo;
KS_VBIINFOHEADER VBIInfoHeader;
} KS_VBI_FRAME_INFO, *PKS_VBI_FRAME_INFO;
#define KS_SIZE_PREHEADER (FIELD_OFFSET(KS_VIDEOINFOHEADER,bmiHeader))
#if !defined( DEFINE_WAVEFORMATEX_GUID )
#define DEFINE_WAVEFORMATEX_GUID(x) (USHORT)(x), 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}
#endif