Merged from trunk revs. 4477-4479:

mingw-w64-headers/include/
	2011-09-16  Ozkan Sezer  <sezeroz@gmail.com>

	* ks.h (KSPROPSETID_MemoryTransport): New.
	* ksmedia.h (KSPROPSETID_Wave_Queued): New.
	(KSPROPSETID_VramCapture): New.

mingw-w64-crt:
	2011-09-16  Jonathan Yong  <jon_y@users.sourceforge.net>

	* libsrc/ksuser.c (KSPROPSETID_MemoryTransport): New.
	(KSPROPSETID_VramCapture): New.

git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/stable/v2.x@4484 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-crt/ChangeLog b/mingw-w64-crt/ChangeLog
index 232e2a4..504646d 100644
--- a/mingw-w64-crt/ChangeLog
+++ b/mingw-w64-crt/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-16  Jonathan Yong  <jon_y@users.sourceforge.net>
+
+	* libsrc/ksuser.c (KSPROPSETID_MemoryTransport): New.
+	(KSPROPSETID_VramCapture): New.
+
 2011-08-24  Kai Tietz  <ktietz@redhat.com>
 
 	* misc/tfind.c, misc/tsearch.c, misc/tdelete.c, misc/twalk.c:
diff --git a/mingw-w64-crt/libsrc/ksuser.c b/mingw-w64-crt/libsrc/ksuser.c
index 58bc1d0..e6ce6ff 100644
--- a/mingw-w64-crt/libsrc/ksuser.c
+++ b/mingw-w64-crt/libsrc/ksuser.c
@@ -344,6 +344,7 @@
 DEFINE_GUID(KSPROPSETID_Itd3d,0x6429f090,0x9fd9,0x11d0,0xa7,0x5b,0x00,0xa0,0xc9,0x03,0x65,0xe3);
 DEFINE_GUID(KSPROPSETID_Linear,0x5a2ffe80,0x16b9,0x11d0,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00);
 DEFINE_GUID(KSPROPSETID_MediaSeeking,0xee904f0c,0xd09b,0x11d0,0xab,0xe9,0x00,0xa0,0xc9,0x22,0x31,0x96);
+DEFINE_GUID(KSPROPSETID_MemoryTransport,0xa3d1c5d,0x5243,0x4819,0x9e,0xd0,0xae,0xe8,0x4,0x4c,0xee,0x2b);
 DEFINE_GUID(KSPROPSETID_Mpeg2Vid,0xc8e11b60,0x0cc9,0x11d0,0xbd,0x69,0x00,0x35,0x05,0xc1,0x03,0xa9);
 DEFINE_GUID(KSPROPSETID_OverlayUpdate,0x490ea5cf,0x7681,0x11d1,0xa2,0x1c,0x00,0xa0,0xc9,0x22,0x31,0x96);
 DEFINE_GUID(KSPROPSETID_Pin,0x8c134960,0x51ad,0x11cf,0x87,0x8a,0x94,0xf8,0x01,0xc1,0x00,0x00);
@@ -362,6 +363,7 @@
 DEFINE_GUID(KSPROPSETID_VBICodecFiltering,0xcafeb0ca,0x8715,0x11d0,0xbd,0x6a,0x00,0x35,0xc0,0xed,0xba,0xbe);
 DEFINE_GUID(KSPROPSETID_VPConfig,0xbc29a660,0x30e3,0x11d0,0x9e,0x69,0x00,0xc0,0x4f,0xd7,0xc1,0x5b);
 DEFINE_GUID(KSPROPSETID_VPVBIConfig,0xec529b00,0x1a1f,0x11d1,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a);
+DEFINE_GUID(KSPROPSETID_VramCapture,0xe73face3L,0x2880,0x4902,0xb7,0x99,0x88,0xd0,0xcd,0x63,0x4e,0xf);
 DEFINE_GUID(KSPROPSETID_Wave,0x924e54b0,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a);
 DEFINE_GUID(KSPROPSETID_Wave_Queued,0x16a15b10,0x16f0,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4);
 DEFINE_GUID(KSPROPSETID_WaveTable,0x8539e660,0x62e9,0x11cf,0xa5,0xd6,0x28,0xdb,0x04,0xc1,0x00,0x00);
diff --git a/mingw-w64-headers/include/ChangeLog b/mingw-w64-headers/include/ChangeLog
index 9eeae4d..bdd8bec 100644
--- a/mingw-w64-headers/include/ChangeLog
+++ b/mingw-w64-headers/include/ChangeLog
@@ -1,3 +1,9 @@
+2011-09-16  Ozkan Sezer  <sezeroz@gmail.com>
+
+	* ks.h (KSPROPSETID_MemoryTransport): New.
+	* ksmedia.h (KSPROPSETID_Wave_Queued): New.
+	(KSPROPSETID_VramCapture): New.
+
 2011-09-14  Vincent Torri  <vincent.torri@gmail.com>
 
 	* psapi.h (LIST_MODULES_DEFAULT): New constant.
diff --git a/mingw-w64-headers/include/ks.h b/mingw-w64-headers/include/ks.h
index cda1797..4d88035 100644
--- a/mingw-w64-headers/include/ks.h
+++ b/mingw-w64-headers/include/ks.h
@@ -1236,6 +1236,23 @@
 				(Handler),				\
 				NULL, 0, NULL, NULL, 0)
 
+#define STATIC_KSPROPSETID_MemoryTransport				\
+	0xA3D1C5DL,0x5243,0x4819,0x9E,0xD0,0xAE,0xE8,0x4,0x4C,0xEE,0x2B
+DEFINE_GUIDSTRUCT("0A3D1C5D-5243-4819-9ED0-AEE8044CEE2B", KSPROPSETID_MemoryTransport);
+#define KSPROPSETID_MemoryTransport DEFINE_GUIDNAMED(KSPROPSETID_MemoryTransport)
+
+enum {
+  KSPROPERTY_MEMORY_TRANSPORT = 1
+};
+
+#define DEFINE_KSPROPERTY_ITEM_MEMORY_TRANSPORT(SetHandler)		\
+	DEFINE_KSPROPERTY_ITEM(						\
+				KSPROPERTY_MEMORY_TRANSPORT,		\
+				NULL,					\
+				sizeof(KSPROPERTY),			\
+				sizeof(WINBOOL),			\
+				(SetHandler), NULL,0,NULL,NULL,0)
+
 #define KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER	0x00000001
 #define KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY		0x00000002
 #define KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY	0x00000004
@@ -1557,6 +1574,8 @@
 #define KSSTREAM_HEADER_OPTIONSF_FLUSHONPAUSE		0x00000080
 #define KSSTREAM_HEADER_OPTIONSF_DURATIONVALID		0x00000100
 #define KSSTREAM_HEADER_OPTIONSF_ENDOFSTREAM		0x00000200
+#define KSSTREAM_HEADER_OPTIONSF_BUFFEREDTRANSFER	0x00000400
+#define KSSTREAM_HEADER_OPTIONSF_VRAM_DATA_TRANSFER	0x00000800
 #define KSSTREAM_HEADER_OPTIONSF_LOOPEDDATA		0x80000000
 
 typedef struct {
diff --git a/mingw-w64-headers/include/ksmedia.h b/mingw-w64-headers/include/ksmedia.h
index a84861f..6226262 100644
--- a/mingw-w64-headers/include/ksmedia.h
+++ b/mingw-w64-headers/include/ksmedia.h
@@ -1630,6 +1630,13 @@
 #define AEC_MODE_HALF_DUPLEX				0x1
 #define AEC_MODE_FULL_DUPLEX				0x2
 
+#if (NTDDI_VERSION < NTDDI_WS03)
+#define STATIC_KSPROPSETID_Wave_Queued					\
+	0x16a15b10L,0x16f0,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4
+DEFINE_GUIDSTRUCT("16a15b10-16f0-11d0-a195-0020afd156e4", KSPROPSETID_Wave_Queued);
+#define KSPROPSETID_Wave_Queued DEFINE_GUIDNAMED(KSPROPSETID_Wave_Queued)
+#endif /* NTDDI_VERSION < NTDDI_WS03 */
+
 #define STATIC_KSPROPSETID_Wave						\
 	0x924e54b0L,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a
 DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a",KSPROPSETID_Wave);
@@ -3068,6 +3075,73 @@
 DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT_VBI);
 #define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI)
 
+
+typedef enum {
+  KS_CAPTURE_ALLOC_INVALID	= 0,
+  KS_CAPTURE_ALLOC_SYSTEM	= 0x0001,
+  KS_CAPTURE_ALLOC_VRAM		= 0x0002,
+  KS_CAPTURE_ALLOC_SYSTEM_AGP	= 0x0004,
+  KS_CAPTURE_ALLOC_VRAM_MAPPED	= 0x0008
+} CAPTURE_MEMORY_ALLOCATION_FLAGS,*PCAPTURE_MEMORY_ALLOCATION_FLAGS;
+
+#define STATIC_KSPROPSETID_VramCapture					\
+	0xe73face3L,0x2880,0x4902,0xb7,0x99,0x88,0xd0,0xcd,0x63,0x4e,0xf
+DEFINE_GUIDSTRUCT("E73FACE3-2880-4902-B799-88D0CD634E0F", KSPROPSETID_VramCapture);
+#define KSPROPSETID_VramCapture DEFINE_GUIDNAMED(KSPROPSETID_VramCapture)
+
+typedef enum {
+  KSPROPERTY_DISPLAY_ADAPTER_GUID = 1,
+  KSPROPERTY_PREFERRED_CAPTURE_SURFACE,
+  KSPROPERTY_CURRENT_CAPTURE_SURFACE,
+  KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS
+} KSPROPERTY_VIDMEM_TRANSPORT;
+
+#define DEFINE_KSPROPERTY_ITEM_DISPLAY_ADAPTER_GUID(GetHandler)		\
+	DEFINE_KSPROPERTY_ITEM(						\
+				KSPROPERTY_DISPLAY_ADAPTER_GUID,	\
+				(GetHandler),				\
+				sizeof(KSPROPERTY),			\
+				sizeof(GUID),				\
+				NULL,NULL,0,NULL,NULL,0)
+#define DEFINE_KSPROPERTY_PREFERRED_CAPTURE_SURFACE(GetHandler)		\
+	DEFINE_KSPROPERTY_ITEM(						\
+				KSPROPERTY_PREFERRED_CAPTURE_SURFACE,	\
+				(GetHandler),				\
+				sizeof(KSPROPERTY),			\
+				sizeof(CAPTURE_MEMORY_ALLOCATION_FLAGS),\
+				NULL,NULL,0,NULL,NULL,0)
+#define DEFINE_KSPROPERTY_CURRENT_CAPTURE_SURFACE(GetHandler,SetHandler)\
+	DEFINE_KSPROPERTY_ITEM(						\
+				KSPROPERTY_CURRENT_CAPTURE_SURFACE,	\
+				(GetHandler),				\
+				sizeof(KSPROPERTY),			\
+				sizeof(CAPTURE_MEMORY_ALLOCATION_FLAGS),\
+				(SetHandler),NULL,0,NULL,NULL,0)
+#define DEFINE_KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS(GetHandler)\
+	DEFINE_KSPROPERTY_ITEM(						\
+				KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS,\
+				(GetHandler),				\
+				sizeof(VRAM_SURFACE_INFO_PROPERTY_S),	\
+				sizeof(DWORD),				\
+				NULL,NULL,0,NULL,NULL,0)
+
+typedef struct {
+  UINT_PTR hSurface;
+  LONGLONG VramPhysicalAddress;
+  DWORD cbCaptured;
+  DWORD dwWidth;
+  DWORD dwHeight;
+  DWORD dwLinearSize;
+  LONG lPitch;
+  ULONGLONG ullReserved[16];
+} VRAM_SURFACE_INFO,*PVRAM_SURFACE_INFO;
+
+typedef struct {
+  KSPROPERTY Property;
+  PVRAM_SURFACE_INFO pVramSurfaceInfo;
+} VRAM_SURFACE_INFO_PROPERTY_S,*PVRAM_SURFACE_INFO_PROPERTY_S;
+
+
 #define KS_VIDEO_FLAG_FRAME		0x0000L
 #define KS_VIDEO_FLAG_FIELD1		0x0001L
 #define KS_VIDEO_FLAG_FIELD2		0x0002L