Author: tfaber
Date: Thu Oct 13 08:53:11 2016
New Revision: 72962
URL:
http://svn.reactos.org/svn/reactos?rev=72962&view=rev
Log:
[PSDK]
- Add some KS definitions. Patch by Lee Schroeder
CORE-6783
Modified:
trunk/reactos/sdk/include/psdk/ks.h
trunk/reactos/sdk/include/psdk/ksmedia.h
Modified: trunk/reactos/sdk/include/psdk/ks.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/ks.h?rev=…
==============================================================================
--- trunk/reactos/sdk/include/psdk/ks.h [iso-8859-1] (original)
+++ trunk/reactos/sdk/include/psdk/ks.h [iso-8859-1] Thu Oct 13 08:53:11 2016
@@ -114,6 +114,11 @@
0xd833f8f8L, 0x7894, 0x11d1, {0xb0, 0x69, 0x00, 0xa0, 0xc9, 0x06, 0x28, 0x02}
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
Modified: trunk/reactos/sdk/include/psdk/ksmedia.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/sdk/include/psdk/ksmedia.h…
==============================================================================
--- trunk/reactos/sdk/include/psdk/ksmedia.h [iso-8859-1] (original)
+++ trunk/reactos/sdk/include/psdk/ksmedia.h [iso-8859-1] Thu Oct 13 08:53:11 2016
@@ -235,6 +235,21 @@
#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 @@
//#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;
@@ -559,6 +581,276 @@
ULONG MinimumSampleFrequency;
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}