OSDN Git Service

* include/amvideo.h (RESET_MASKS,RESET_PALETTE): Use ZeroMemory instead
authorpapadopo <papadopo>
Wed, 10 May 2006 08:57:44 +0000 (08:57 +0000)
committerpapadopo <papadopo>
Wed, 10 May 2006 08:57:44 +0000 (08:57 +0000)
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.

21 files changed:
winsup/w32api/ChangeLog
winsup/w32api/include/amvideo.h
winsup/w32api/include/aviriff.h [new file with mode: 0644]
winsup/w32api/include/bdatypes.h [new file with mode: 0644]
winsup/w32api/include/control.h [new file with mode: 0644]
winsup/w32api/include/dshow.h
winsup/w32api/include/dvdmedia.h [new file with mode: 0644]
winsup/w32api/include/edevdefs.h
winsup/w32api/include/errors.h
winsup/w32api/include/evcode.h
winsup/w32api/include/il21dec.h [new file with mode: 0644]
winsup/w32api/include/ks.h [new file with mode: 0644]
winsup/w32api/include/ksmedia.h [new file with mode: 0644]
winsup/w32api/include/mmreg.h [new file with mode: 0644]
winsup/w32api/include/mmsystem.h
winsup/w32api/include/mpegtype.h [new file with mode: 0644]
winsup/w32api/include/strmif.h [new file with mode: 0644]
winsup/w32api/include/vidcap.h [new file with mode: 0644]
winsup/w32api/include/vmr9.h [new file with mode: 0644]
winsup/w32api/include/vptype.h [new file with mode: 0644]
winsup/w32api/include/xprtdefs.h [new file with mode: 0644]

index 69dd0fa..6c96a90 100644 (file)
@@ -1,5 +1,35 @@
 2006-05-10  Dimitri Papadopoulos  <papadopo@users.sourceforge.net>
 
+       * include/amvideo.h (RESET_MASKS,RESET_PALETTE): Use ZeroMemory instead
+       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.
+
+2006-05-10  Dimitri Papadopoulos  <papadopo@users.sourceforge.net>
+
        * include/winnls.h [WINVER >= 0x0500] (LOCALE_IDEFAULTEBCDICCODEPAGE):
        Documented as defined on Windows 2000 or later.
        [WINVER >= 0x0600] (LOCALE_SDURATION,LOCALE_SIETFLANGUAGE)
 
 2006-05-03  Dimitri Papadopoulos  <papadopo@users.sourceforge.net>
 
-       * lib/directx/quartz.def: Move from lib/directx/...
-       * lib/quartz.def: ... to lib/
+       * lib/directx/quartz.def: Move from here...
+       * lib/quartz.def: ... to here.
 
 2006-05-03  Dimitri Papadopoulos  <papadopo@users.sourceforge.net>
 
index e546280..a582590 100644 (file)
@@ -5,6 +5,7 @@
 #endif
 
 #include <ddraw.h>
+#include <strmif.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -27,8 +28,8 @@ extern "C" {
 #define BIT_MASKS_MATCH(pbmi1,pbmi2) (!memcmp((pbmi1)->dwBitMasks,(pbmi2)->dwBitMasks,3*sizeof(DWORD)))
 #define PALETTISED(pbmi) ((pbmi)->bmiHeader.biBitCount <= 8)
 #define PALETTE_ENTRIES(pbmi) (1 << (pbmi)->bmiHeader.biBitCount)
-#define RESET_MASKS(pbmi) ((void)memset((pbmi)->dwBitFields,0,3*sizeof(DWORD)))
-#define RESET_PALETTE(pbmi) ((void)memset(((pbmi)->bmiColors,0,256*sizeof(RGBQUAD)));
+#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(pbmi)->dwBitFields,3*sizeof(DWORD)))
+#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(pbmi)->bmiColors,256*sizeof(RGBQUAD)));
 #define SIZE_EGA_PALETTE (16*sizeof(RGBQUAD))
 #define SIZE_MASKS (3*sizeof(DWORD))
 #define SIZE_PALETTE (256*sizeof(RGBQUAD))
diff --git a/winsup/w32api/include/aviriff.h b/winsup/w32api/include/aviriff.h
new file mode 100644 (file)
index 0000000..306aa05
--- /dev/null
@@ -0,0 +1,87 @@
+#ifndef _AVIRIFF_H
+#define _AVIRIFF_H
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifndef _MMSYSTEM_H
+#include <mmsystem.h>
+#endif
+#ifndef _WINGDI_H
+#include <wingdi.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct _avimainheader {
+       FOURCC fcc;
+       DWORD cb;
+       DWORD dwMicroSecPerFrame;
+       DWORD dwMaxBytesPerSec;
+       DWORD dwPaddingGranularity;
+       DWORD dwFlags;
+       DWORD dwTotalFrames;
+       DWORD dwInitialFrames;
+       DWORD dwStreams;
+       DWORD dwSuggestedBufferSize;
+       DWORD dwWidth;
+       DWORD dwHeight;
+       DWORD dwReserved[4];
+} AVIMAINHEADER;
+#define AVIF_COPYRIGHTED 0x00020000
+#define AVIF_HASINDEX 0x00000010
+#define AVIF_ISINTERLEAVED 0x00000100
+#define AVIF_MUSTUSEINDEX 0x00000020
+#define AVIF_WASCAPTUREFILE 0x00010000
+typedef struct _avioldindex {
+       FOURCC fcc;
+       DWORD cb;
+       struct _avioldindex_entry {
+               DWORD dwChunkId;
+               DWORD dwFlags;
+               DWORD dwOffset;
+               DWORD dwSize;
+       } aIndex[];
+} AVIOLDINDEX;
+#define AVIIF_LIST 0x00000001
+#define AVIIF_KEYFRAME 0x00000010
+#define AVIIF_NO_TIME 0x00000100
+typedef struct {
+       BYTE bFirstEntry;
+       BYTE bNumEntries;
+       WORD wFlags;
+       PALETTEENTRY peNew[];
+} AVIPALCHANGE;
+typedef struct _avistreamheader {
+       FOURCC fcc;
+       DWORD cb;
+       FOURCC fccType;
+       FOURCC fccHandler;
+       DWORD dwFlags;
+       WORD wPriority;
+       WORD wLanguage;
+       DWORD dwInitialFrames;
+       DWORD dwScale;
+       DWORD dwRate;
+       DWORD dwStart;
+       DWORD dwLength;
+       DWORD dwSuggestedBufferSize;
+       DWORD dwQuality;
+       DWORD dwSampleSize;
+       struct {
+               short int left;
+               short int top;
+               short int right;
+               short int bottom;
+       } rcFrame;
+} AVISTREAMHEADER;
+#define AVISF_DISABLED 0x00000001
+#define AVISF_VIDEO_PALCHANGES 0x00010000
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/bdatypes.h b/winsup/w32api/include/bdatypes.h
new file mode 100644 (file)
index 0000000..5456ff6
--- /dev/null
@@ -0,0 +1,32 @@
+#ifndef _BDATYPES_H
+#define _BDATYPES_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Enumerated Types */
+typedef enum {
+       MEDIA_TRANSPORT_PACKET,
+       MEDIA_ELEMENTARY_STREAM,
+       MEDIA_MPEG2_PSI,
+       MEDIA_TRANSPORT_PAYLOAD
+} MEDIA_SAMPLE_CONTENT;
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct {
+       DWORD dwOffset
+       DWORD dwPacketLength
+       DWORD dwStride
+} MPEG2_TRANSPORT_STRIDE;
+typedef struct {
+       ULONG ulPID;
+       MEDIA_SAMPLE_CONTENT MediaSampleContent ;
+} PID_MAP;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/control.h b/winsup/w32api/include/control.h
new file mode 100644 (file)
index 0000000..9f9f7cf
--- /dev/null
@@ -0,0 +1,18 @@
+#ifndef _CONTROL_H
+#define _CONTROL_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Data Types */
+typedef LONG_PTR OAEVENT;
+typedef LONG_PTR OAHWND;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
index f1894db..da4bf68 100644 (file)
 #pragma GCC system_header
 #endif
 
+#include <strmif.h>
 #include <amaudio.h>
 #include <amvideo.h>
 #include <evcode.h>
 #include <audevcod.h>
 #include <dvdevcod.h>
 #include <errors.h>
+#include <vptype.h>
+#include <ks.h>
+#include <vidcap.h>
+#include <bdatypes.h>
+#include <dvdmedia.h>
+#include <il21dec.h>
+#include <ddraw.h> /* DDSCAPS2, DDPIXELFORMAT */
+#ifndef _WINGDI_H
+#include <wingdi.h> /* BITMAPINFOHEADER */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
 
+/*--- DirectShow Reference - DirectShow Enumerated Types */
+typedef enum _AM_ASPECT_RATIO_MODE {
+       AM_ARMODE_STRETCHED,
+       AM_ARMODE_LETTER_BOX,
+       AM_ARMODE_CROP,
+       AM_ARMODE_STRETCHED_AS_PRIMARY
+} AM_ASPECT_RATIO_MODE;
+typedef enum _AM_WST_DRAWBGMODE {
+       AM_WST_DRAWBGMODE_Opaque,
+       AM_WST_DRAWBGMODE_Transparent
+} AM_WST_DRAWBGMODE,*PAM_WST_DRAWBGMODE;
+typedef enum _AM_WST_LEVEL {
+       AM_WST_LEVEL_1_5 = 0
+} AM_WST_LEVEL,*PAM_WST_LEVEL;
+typedef enum _AM_WST_SERVICE {
+       AM_WST_SERVICE_None = 0,
+       AM_WST_SERVICE_Text,
+       AM_WST_SERVICE_IDS,
+       AM_WST_SERVICE_Invalid
+} AM_WST_SERVICE,*PAM_WST_SERVICE;
+typedef enum _AM_WST_STATE {
+       AM_WST_STATE_Off = 0,
+       AM_WST_STATE_On
+} AM_WST_STATE,*PAM_WST_STATE;
+typedef enum _AM_WST_STYLE {
+       AM_WST_STYLE_None = 0,
+       AM_WST_STYLE_Invers
+} AM_WST_STYLE,*PAM_WST_STYLE;
+typedef enum {
+       AM_EXSEEK_CANSEEK= 1,
+       AM_EXSEEK_CANSCAN = 2,
+       AM_EXSEEK_MARKERSEEK = 4,
+       AM_EXSEEK_SCANWITHOUTCLOCK = 8,
+       AM_EXSEEK_NOSTANDARDREPAINT = 16,
+       AM_EXSEEK_BUFFERING = 32,
+       AM_EXSEEK_SENDS_VIDEOFRAMEREADY = 64
+} AMExtendedSeekingCapabilities;
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct _AM_WST_PAGE {
+       DWORD dwPageNr;
+       DWORD dwSubPageNr;
+       BYTE *pucPageData;
+} AM_WST_PAGE,*PAM_WST_PAGE;
+typedef struct _tag_AMVABeginFrameInfo{
+       DWORD dwDestSurfaceIndex;
+       LPVOID pInputData;
+       DWORD dwSizeInputData;
+       LPVOID pOutputData;
+       DWORD dwSizeOutputData;
+ } AMVABeginFrameInfo,*LPAMVABeginFrameInfo;
+typedef struct _tag_AMVACompBufferInfo{
+       DWORD dwNumCompBuffers;
+       DWORD dwWidthToCreate;
+       DWORD dwHeightToCreate;
+       DWORD dwBytesToAllocate;
+       DDSCAPS2 ddCompCaps;
+       DDPIXELFORMAT ddPixelFormat;
+} AMVACompBufferInfo,*LPAMVACompBufferInfo;
+typedef struct _tag_AMVAEndFrameInfo{
+       DWORD dwSizeMiscData;
+       LPVOID pMiscData;
+} AMVAEndFrameInfo,*LPAMVAEndFrameInfo;
+typedef struct _tag_AMVAInternalMemInfo{
+       DWORD dwScratchMemAlloc;
+} AMVAInternalMemInfo,*LPAMVAInternalMemInfo;
+typedef struct _tag_AMVAUncompBufferInfo{
+       DWORD dwMinNumSurfaces;
+       DWORD dwMaxNumSurfaces;
+       DDPIXELFORMAT ddUncompPixelFormat;
+} AMVAUncompBufferInfo,*LPAMVAUncompBufferInfo;
+ typedef struct _tag_AMVAUncompDataInfo{
+       DWORD dwUncompWidth;
+       DWORD dwUncompHeight;
+       DDPIXELFORMAT ddUncompPixelFormat;
+} AMVAUncompDataInfo,*LPAMVAUncompDataInfo;
+
+#ifdef __cplusplus
+}
+#endif
 #endif
diff --git a/winsup/w32api/include/dvdmedia.h b/winsup/w32api/include/dvdmedia.h
new file mode 100644 (file)
index 0000000..0a312c0
--- /dev/null
@@ -0,0 +1,101 @@
+#ifndef _DVDMEDIA_H
+#define _DVDMEDIA_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _STRMIF_H
+#include <strmif.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures - AM_SAMPLE2_PROPERTIES Structure */
+#define AM_VIDEO_FLAG_FIELD_MASK 0x0003
+#define AM_VIDEO_FLAG_INTERLEAVED_FRAME 0x0000
+#define AM_VIDEO_FLAG_FIELD1 0x0001
+#define AM_VIDEO_FLAG_FIELD2 0x0002
+#define AM_VIDEO_FLAG_FIELD1FIRST 0x0004
+#define AM_VIDEO_FLAG_WEAVE 0x0008
+#define AM_VIDEO_FLAG_REPEAT_FIELD 0x0040
+/*--- DirectShow Reference - DirectShow Enumerated Types */
+enum AM_MPEG2Level {
+       AM_MPEG2Level_Low = 1,
+       AM_MPEG2Level_Main,
+       AM_MPEG2Level_High1440,
+       AM_MPEG2Level_High
+};
+enum AM_MPEG2Profile {
+       AM_MPEG2Profile_Simple = 1,
+       AM_MPEG2Profile_Main,
+       AM_MPEG2Profile_SNRScalable,
+       AM_MPEG2Profile_SpatiallyScalable,
+       AM_MPEG2Profile_High
+};
+typedef enum {
+       AM_RATE_ChangeRate = 1,
+       AM_RATE_FullDataRateMax = 2,
+       AM_RATE_ReverseDecode = 3,
+       AM_RATE_DecoderPosition = 4,
+       AM_RATE_DecoderVersion = 5
+} AM_PROPERTY_DVD_RATE_CHANGE;
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct tagVIDEOINFOHEADER2 {
+       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;
+       BITMAPINFOHEADER bmiHeader;
+} VIDEOINFOHEADER2;
+#define AMINTERLACE_IsInterlaced 0x00000001
+#define AMINTERLACE_1FieldPerSample 0x00000002
+#define AMINTERLACE_Field1First 0x00000004
+#define AMINTERLACE_FieldPatField1Only 0x00000000
+#define AMINTERLACE_FieldPatField2Only 0x00000010
+#define AMINTERLACE_FieldPatBothRegular 0x00000020
+#define AMINTERLACE_FieldPatBothIrregular 0x00000030
+#define AMINTERLACE_DisplayModeBobOnly 0x00000000
+#define AMINTERLACE_DisplayModeWeaveOnly 0x00000040
+#define AMINTERLACE_DisplayModeBobOrWeave 0x00000080
+#define AMINTERLACE_FieldPatternMask 0x00000030
+#define AMINTERLACE_DisplayModeMask 0x000000C0
+#define AMCONTROL_USED 0x00000001
+#define AMCONTROL_PAD_TO_4x3 0x00000002
+#define AMCONTROL_PAD_TO_16x9 0x00000004
+#define AMCONTROL_COLORINFO_PRESENT 0x00000008
+typedef struct tagMPEG2VIDEOINFO {
+       VIDEOINFOHEADER2 hdr;
+       DWORD dwStartTimeCode;
+       DWORD cbSequenceHeader;
+       DWORD dwProfile;
+       DWORD dwLevel;
+       DWORD dwFlags;
+       DWORD dwSequenceHeader[1];
+} MPEG2VIDEOINFO;
+#define AMMPEG2_DoPanScan 0x00000001
+#define AMMPEG2_DVDLine21Field1 0x00000002
+#define AMMPEG2_DVDLine21Field2 0x00000004
+#define AMMPEG2_SourceIsLetterboxed 0x00000008
+#define AMMPEG2_FilmCameraMode 0x00000010
+#define AMMPEG2_LetterboxAnalogOut 0x00000020
+#define AMMPEG2_DSS_UserData 0x00000040
+#define AMMPEG2_DVB_UserData 0x00000080
+#define AMMPEG2_27MhzTimebase 0x00000100
+#define AMMPEG2_WidescreenAnalogOut 0x00000200
+
+#ifdef __cplusplus
+}
+#endif
+#endif
index 8f10244..128631a 100644 (file)
 #define ED_TCG_MIDI_QF 0x00001193
 #define ED_TCG_MIDI_FULL 0x00001194
 #define ED_TCG_FRAMERATE 0x00001195
-#define ED_FORMAT_SMPTE_30 0x00001196
-#define ED_FORMAT_SMPTE_30DROP 0x00001197
-#define ED_FORMAT_SMPTE_25 0x00001198
-#define ED_FORMAT_SMPTE_24 0x00001199
 #define ED_TCG_SYNC_SOURCE 0x0000119A
 #define ED_TCG_VIDEO 0x0000119B
 #define ED_TCG_READER 0x0000119C
index ee20929..9cabd7a 100644 (file)
@@ -8,6 +8,149 @@
 extern "C" {
 #endif
 
+#define VFW_S_NO_MORE_ITEMS 0x00040103
+#define VFW_S_DUPLICATE_NAME 0x0004022D
+#define VFW_S_STATE_INTERMEDIATE 0x00040237
+#define VFW_S_PARTIAL_RENDER 0x00040242
+#define VFW_S_SOME_DATA_IGNORED 0x00040245
+#define VFW_S_CONNECTIONS_DEFERRED 0x00040246
+#define VFW_S_RESOURCE_NOT_NEEDED 0x00040250
+#define VFW_S_MEDIA_TYPE_IGNORED 0x00040254
+#define VFW_S_VIDEO_NOT_RENDERED 0x00040257
+#define VFW_S_AUDIO_NOT_RENDERED 0x00040258
+#define VFW_S_RPZA 0x0004025A
+#define VFW_S_ESTIMATED 0x00040260
+#define VFW_S_RESERVED 0x00040263
+#define VFW_S_STREAM_OFF 0x00040267
+#define VFW_S_CANT_CUE 0x00040268
+#define VFW_S_NOPREVIEWPIN 0x0004027E
+#define VFW_S_DVD_NON_ONE_SEQUENTIAL 0x00040280
+#define VFW_S_DVD_CHANNEL_CONTENTS_NOT_AVAILABLE 0x0004028C
+#define VFW_S_DVD_NOT_ACCURATE 0x0004028D
+#define VFW_E_INVALIDMEDIATYPE 0x80040200
+#define VFW_E_INVALIDSUBTYPE 0x80040201
+#define VFW_E_NEED_OWNER 0x80040202
+#define VFW_E_ENUM_OUT_OF_SYNC 0x80040203
+#define VFW_E_ALREADY_CONNECTED 0x80040204
+#define VFW_E_FILTER_ACTIVE 0x80040205
+#define VFW_E_NO_TYPES 0x80040206
+#define VFW_E_NO_ACCEPTABLE_TYPES 0x80040207
+#define VFW_E_INVALID_DIRECTION 0x80040208
+#define VFW_E_NOT_CONNECTED 0x80040209
+#define VFW_E_NO_ALLOCATOR 0x8004020A
+#define VFW_E_RUNTIME_ERROR 0x8004020B
+#define VFW_E_BUFFER_NOTSET 0x8004020C
+#define VFW_E_BUFFER_OVERFLOW 0x8004020D
+#define VFW_E_BADALIGN 0x8004020E
+#define VFW_E_ALREADY_COMMITTED 0x8004020F
+#define VFW_E_BUFFERS_OUTSTANDING 0x80040210
+#define VFW_E_NOT_COMMITTED 0x80040211
+#define VFW_E_SIZENOTSET 0x80040212
+#define VFW_E_NO_CLOCK 0x80040213
+#define VFW_E_NO_SINK 0x80040214
+#define VFW_E_NO_INTERFACE 0x80040215
+#define VFW_E_NOT_FOUND 0x80040216
+#define VFW_E_CANNOT_CONNECT 0x80040217
+#define VFW_E_CANNOT_RENDER 0x80040218
+#define VFW_E_CHANGING_FORMAT 0x80040219
+#define VFW_E_NO_COLOR_KEY_SET 0x8004021A
+#define VFW_E_NOT_OVERLAY_CONNECTION 0x8004021B
+#define VFW_E_NOT_SAMPLE_CONNECTION 0x8004021C
+#define VFW_E_PALETTE_SET 0x8004021D
+#define VFW_E_COLOR_KEY_SET 0x8004021E
+#define VFW_E_NO_COLOR_KEY_FOUND 0x8004021F
+#define VFW_E_NO_PALETTE_AVAILABLE 0x80040220
+#define VFW_E_NO_DISPLAY_PALETTE 0x80040221
+#define VFW_E_TOO_MANY_COLORS 0x80040222
+#define VFW_E_STATE_CHANGED 0x80040223
+#define VFW_E_NOT_STOPPED 0x80040224
+#define VFW_E_NOT_PAUSED 0x80040225
+#define VFW_E_NOT_RUNNING 0x80040226
+#define VFW_E_WRONG_STATE 0x80040227
+#define VFW_E_START_TIME_AFTER_END 0x80040228
+#define VFW_E_INVALID_RECT 0x80040229
+#define VFW_E_TYPE_NOT_ACCEPTED 0x8004022A
+#define VFW_E_SAMPLE_REJECTED 0x8004022B
+#define VFW_E_SAMPLE_REJECTED_EOS 0x8004022C
+#define VFW_E_DUPLICATE_NAME 0x8004022D
+#define VFW_E_TIMEOUT 0x8004022E
+#define VFW_E_INVALID_FILE_FORMAT 0x8004022F
+#define VFW_E_ENUM_OUT_OF_RANGE 0x80040230
+#define VFW_E_CIRCULAR_GRAPH 0x80040231
+#define VFW_E_NOT_ALLOWED_TO_SAVE 0x80040232
+#define VFW_E_TIME_ALREADY_PASSED 0x80040233
+#define VFW_E_ALREADY_CANCELLED 0x80040234
+#define VFW_E_CORRUPT_GRAPH_FILE 0x80040235
+#define VFW_E_ADVISE_ALREADY_SET 0x80040236
+#define VFW_E_NO_MODEX_AVAILABLE 0x80040238
+#define VFW_E_NO_ADVISE_SET 0x80040239
+#define VFW_E_NO_FULLSCREEN 0x8004023A
+#define VFW_E_IN_FULLSCREEN_MODE 0x8004023B
+#define VFW_E_UNKNOWN_FILE_TYPE 0x80040240
+#define VFW_E_CANNOT_LOAD_SOURCE_FILTER 0x80040241
+#define VFW_E_FILE_TOO_SHORT 0x80040243
+#define VFW_E_INVALID_FILE_VERSION 0x80040244
+#define VFW_E_INVALID_CLSID 0x80040247
+#define VFW_E_INVALID_MEDIA_TYPE 0x80040248
+#define VFW_E_SAMPLE_TIME_NOT_SET 0x80040249
+#define VFW_E_MEDIA_TIME_NOT_SET 0x80040251
+#define VFW_E_NO_TIME_FORMAT_SET 0x80040252
+#define VFW_E_MONO_AUDIO_HW 0x80040253
+#define VFW_E_NO_DECOMPRESSOR 0x80040255
+#define VFW_E_NO_AUDIO_HARDWARE 0x80040256
+#define VFW_E_RPZA 0x80040259
+#define VFW_E_PROCESSOR_NOT_SUITABLE 0x8004025B
+#define VFW_E_UNSUPPORTED_AUDIO 0x8004025C
+#define VFW_E_UNSUPPORTED_VIDEO 0x8004025D
+#define VFW_E_MPEG_NOT_CONSTRAINED 0x8004025E
+#define VFW_E_NOT_IN_GRAPH 0x8004025F
+#define VFW_E_NO_TIME_FORMAT 0x80040261
+#define VFW_E_READ_ONLY 0x80040262
+#define VFW_E_BUFFER_UNDERFLOW 0x80040264
+#define VFW_E_UNSUPPORTED_STREAM 0x80040265
+#define VFW_E_NO_TRANSPORT 0x80040266
+#define VFW_E_BAD_VIDEOCD 0x80040269
+#define VFW_S_NO_STOP_TIME 0x80040270
+#define VFW_E_OUT_OF_VIDEO_MEMORY 0x80040271
+#define VFW_E_VP_NEGOTIATION_FAILED 0x80040272
+#define VFW_E_DDRAW_CAPS_NOT_SUITABLE 0x80040273
+#define VFW_E_NO_VP_HARDWARE 0x80040274
+#define VFW_E_NO_CAPTURE_HARDWARE 0x80040275
+#define VFW_E_DVD_OPERATION_INHIBITED 0x80040276
+#define VFW_E_DVD_INVALIDDOMAIN 0x80040277
+#define VFW_E_DVD_NO_BUTTON 0x80040278
+#define VFW_E_DVD_GRAPHNOTREADY 0x80040279
+#define VFW_E_DVD_RENDERFAIL 0x8004027A
+#define VFW_E_DVD_DECNOTENOUGH 0x8004027B
+#define VFW_E_DDRAW_VERSION_NOT_SUITABLE 0x8004027C
+#define VFW_E_COPYPROT_FAILED 0x8004027D
+#define VFW_E_TIME_EXPIRED 0x8004027F
+#define VFW_E_DVD_WRONG_SPEED 0x80040281
+#define VFW_E_DVD_MENU_DOES_NOT_EXIST 0x80040282
+#define VFW_E_DVD_CMD_CANCELLED 0x80040283
+#define VFW_E_DVD_STATE_WRONG_VERSION 0x80040284
+#define VFW_E_DVD_STATE_CORRUPT 0x80040285
+#define VFW_E_DVD_STATE_WRONG_DISC 0x80040286
+#define VFW_E_DVD_INCOMPATIBLE_REGION 0x80040287
+#define VFW_E_DVD_NO_ATTRIBUTES 0x80040288
+#define VFW_E_DVD_NO_GOUP_PGC 0x80040289
+#define VFW_E_DVD_LOW_PARENTAL_LEVEL 0x8004028A
+#define VFW_E_DVD_NOT_IN_KARAOKE_MODE 0x8004028B
+#define VFW_E_FRAME_STEP_UNSUPPORTED 0x8004028E
+#define VFW_E_DVD_STREAM_DISABLED 0x8004028F
+#define VFW_E_DVD_TITLE_UNKNOWN 0x80040290
+#define VFW_E_DVD_INVALID_DISC 0x80040291
+#define VFW_E_DVD_NO_RESUME_INFORMATION 0x80040292
+#define VFW_E_PIN_ALREADY_BLOCKED_ON_THIS_THREAD 0x80040293
+#define VFW_E_PIN_ALREADY_BLOCKED 0x80040294
+#define VFW_E_CERTIFICATION_FAILURE 0x80040295
+#define VFW_E_VMR_NOT_IN_MIXER_MODE 0x80040296
+#define VFW_E_VMR_NO_AP_SUPPLIED 0x80040297
+#define VFW_E_VMR_NO_DEINTERLACE_HW 0x80040298
+#define VFW_E_VMR_NO_PROCAMP_HW 0x80040299
+#define VFW_E_DVD_VMR9_INCOMPATIBLEDEC 0x8004029A
+#define VFW_E_NO_COPP_HW 0x8004029B
+#define VFW_E_BAD_KEY 0x800403F2
 #define MAX_ERROR_TEXT_LEN 160
 DWORD WINAPI AMGetErrorTextA(HRESULT,CHAR*,DWORD);
 DWORD WINAPI AMGetErrorTextW(HRESULT,WCHAR*,DWORD);
index 5362e11..11426e4 100644 (file)
@@ -4,6 +4,11 @@
 #pragma GCC system_header
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - Constants and GUIDs - Event Notification Codes */
 #define EC_ACTIVATE 0x0013
 #define EC_BUFFERING_DATA 0x0011
 #define EC_BUILT 0x0300
 #define EC_WMT_EVENT 0x0252
 #define EC_WMT_INDEX_EVENT 0x0251
 #define EC_USER 0x8000
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct {
+       HRESULT hrStatus;
+       void   *pData;
+} AM_WMT_EVENT_DATA;
 
+#ifdef __cplusplus
+}
+#endif
 #endif
diff --git a/winsup/w32api/include/il21dec.h b/winsup/w32api/include/il21dec.h
new file mode 100644 (file)
index 0000000..fea328e
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef _IL21DEC_H
+#define _IL21DEC_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Enumerated Types */
+typedef enum _AM_LINE21_CCLEVEL {
+       AM_L21_CCLEVEL_TC2
+} AM_LINE21_CCLEVEL,*PAM_LINE21_CCLEVEL;
+typedef enum _AM_LINE21_CCSERVICE {
+       AM_L21_CCSERVICE_None,
+       AM_L21_CCSERVICE_Caption1,
+       AM_L21_CCSERVICE_Caption2,
+       AM_L21_CCSERVICE_Text1,
+       AM_L21_CCSERVICE_Text2,
+       AM_L21_CCSERVICE_XDS,
+} AM_LINE21_CCSERVICE,*PAM_LINE21_CCSERVICE;
+typedef enum _AM_LINE21_CCSTATE {
+       AM_L21_CCSTATE_Off,
+       AM_L21_CCSTATE_On
+} AM_LINE21_CCSTATE,*PAM_LINE21_CCSTATE;
+typedef enum _AM_LINE21_DRAWBGMODE {
+       AM_L21_DRAWBGMODE_Opaque,
+       AM_L21_DRAWBGMODE_Transparent
+} AM_LINE21_DRAWBGMODE,*PAM_LINE21_DRAWBGMODE;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/ks.h b/winsup/w32api/include/ks.h
new file mode 100644 (file)
index 0000000..7154eae
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef _KS_H
+#define _KS_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct {
+       ULONG Size;
+       ULONG Count;
+} KSMULTIPLE_ITEM,*PKSMULTIPLE_ITEM;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/ksmedia.h b/winsup/w32api/include/ksmedia.h
new file mode 100644 (file)
index 0000000..906649d
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef _KSMEDIA_H
+#define _KSMEDIA_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Enumerated Types - CameraControlFlags Enumeration */
+#define KSPROPERTY_CAMERACONTROL_FLAGS_AUTO 0x0001L
+#define KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL 0x0002L
+#define KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE 0x0000L
+#define KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE 0x0010L
+/*--- DirectShow Reference - DirectShow Enumerated Types - VideoProcAmpFlags Enumeration */
+#define KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO 0X0001L
+#define KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL 0X0002L
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/mmreg.h b/winsup/w32api/include/mmreg.h
new file mode 100644 (file)
index 0000000..9867db0
--- /dev/null
@@ -0,0 +1,71 @@
+#ifndef _MMREG_H
+#define _MMREG_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifndef _MMSYSTEM_H
+#include <mmsystem.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct mpeg1waveformat_tag {
+       WAVEFORMATEX wfx;
+       WORD fwHeadLayer;
+       DWORD dwHeadBitrate;
+       WORD fwHeadMode;
+       WORD fwHeadModeExt;
+       WORD wHeadEmphasis;
+       WORD fwHeadFlags;
+       DWORD dwPTSLow;
+       DWORD dwPTSHigh;
+} MPEG1WAVEFORMAT;
+#define ACM_MPEG_LAYER1 0x0001
+#define ACM_MPEG_LAYER2 0x0002
+#define ACM_MPEG_LAYER3 0x0004
+#define ACM_MPEG_STEREO 0x0001
+#define ACM_MPEG_JOINTSTEREO 0x0002
+#define ACM_MPEG_DUALCHANNEL 0x0004
+#define ACM_MPEG_SINGLECHANNEL 0x0008
+#define ACM_MPEG_PRIVATEBIT 0x0001
+#define ACM_MPEG_COPYRIGHT 0x0002
+#define ACM_MPEG_ORIGINALHOME 0x0004
+#define ACM_MPEG_PROTECTIONBIT 0x0008
+#define ACM_MPEG_ID_MPEG1 0x0010
+typedef struct {
+       WAVEFORMATEX Format;
+       union {
+               WORD wValidBitsPerSample;
+               WORD wSamplesPerBlock;
+               WORD wReserved;
+       } Samples;
+       DWORD dwChannelMask; 
+       GUID SubFormat;
+} WAVEFORMATEXTENSIBLE,*PWAVEFORMATEXTENSIBLE;
+#define SPEAKER_FRONT_LEFT 0x1
+#define SPEAKER_FRONT_RIGHT 0x2
+#define SPEAKER_FRONT_CENTER 0x4
+#define SPEAKER_LOW_FREQUENCY 0x8
+#define SPEAKER_BACK_LEFT 0x10
+#define SPEAKER_BACK_RIGHT 0x20
+#define SPEAKER_FRONT_LEFT_OF_CENTER 0x40
+#define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80
+#define SPEAKER_BACK_CENTER 0x100
+#define SPEAKER_SIDE_LEFT 0x200
+#define SPEAKER_SIDE_RIGHT 0x400
+#define SPEAKER_TOP_CENTER 0x800
+#define SPEAKER_TOP_FRONT_LEFT         0x1000
+#define SPEAKER_TOP_FRONT_CENTER 0x2000
+#define SPEAKER_TOP_FRONT_RIGHT 0x4000
+#define SPEAKER_TOP_BACK_LEFT 0x8000
+#define SPEAKER_TOP_BACK_CENTER 0x10000
+#define SPEAKER_TOP_BACK_RIGHT 0x20000
+
+#ifdef __cplusplus
+}
+#endif
+#endif
index e7187fd..a309c93 100644 (file)
@@ -191,6 +191,7 @@ extern "C" {
 #define WAVE_FORMAT_4M16 1024
 #define WAVE_FORMAT_4S16 2048
 #define WAVE_FORMAT_PCM 1
+#define WAVE_FORMAT_EXTENSIBLE 0xFFFE
 #define MIDIERR_UNPREPARED MIDIERR_BASE
 #define MIDIERR_STILLPLAYING (MIDIERR_BASE+1)
 #define MIDIERR_NOMAP (MIDIERR_BASE+2)
diff --git a/winsup/w32api/include/mpegtype.h b/winsup/w32api/include/mpegtype.h
new file mode 100644 (file)
index 0000000..9d8a218
--- /dev/null
@@ -0,0 +1,29 @@
+#ifndef _MPEGTYPE_H
+#define _MPEGTYPE_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#include <strmif.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct tagAM_MPEGSTREAMTYPE {
+       DWORD dwStreamID;
+       DWORD dwReserved;
+       AM_MEDIA_TYPE mt;
+       BYTE bFormat[1];
+} AM_MPEGSTREAMTYPE;
+typedef struct tagAM_MPEGSYSTEMTYPE {
+       DWORD dwBitRate;
+       DWORD cStreams;
+       AM_MPEGSTREAMTYPE Streams[1];
+} AM_MPEGSYSTEMTYPE;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/strmif.h b/winsup/w32api/include/strmif.h
new file mode 100644 (file)
index 0000000..a697450
--- /dev/null
@@ -0,0 +1,1074 @@
+#ifndef _STRMIF_H
+#define _STRMIF_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Enumerated Types - TVAudioMode Enumeration */
+#define TVAUDIO_MODE_MASK 0x000000FF
+#define TVAUDIO_PRESET_MASK 0x0000FF00
+/*--- DirectShow Reference - DirectShow Data Types */
+typedef LONGLONG REFERENCE_TIME;
+typedef double REFTIME;
+/*--- DirectShow Reference - Constants and GUIDs */
+enum { 
+       MERIT_PREFERRED = 0x800000,
+       MERIT_NORMAL = 0x600000,
+       MERIT_UNLIKELY = 0x400000,
+       MERIT_DO_NOT_USE = 0x200000,
+       MERIT_SW_COMPRESSOR = 0x100000,
+       MERIT_HW_COMPRESSOR = 0x100050
+};
+/*--- DirectShow Reference - DirectShow Enumerated Types */
+typedef enum _AM_AUDIO_RENDERER_STAT_PARAM {
+       AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
+       AM_AUDREND_STAT_PARAM_SLAVE_MODE,
+       AM_AUDREND_STAT_PARAM_SILENCE_DUR,
+       AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,
+       AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
+       AM_AUDREND_STAT_PARAM_SLAVE_RATE,
+       AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
+       AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,
+       AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
+       AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,
+       AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
+       AM_AUDREND_STAT_PARAM_JITTER
+} AM_AUDIO_RENDERER_STAT_PARAM;
+typedef enum _AM_DVD_GRAPH_FLAGS {
+       AM_DVD_HWDEC_PREFER = 0x01,
+       AM_DVD_HWDEC_ONLY = 0x02,
+       AM_DVD_SWDEC_PREFER = 0x04,
+       AM_DVD_SWDEC_ONLY = 0x08,
+       AM_DVD_NOVPE = 0x100,
+       AM_DVD_VMR9_ONLY = 0x800,
+       AM_DVD_EVR_ONLY = 0x1000
+} AM_DVD_GRAPH_FLAGS;
+typedef enum _AM_DVD_STREAM_FLAGS {
+       AM_DVD_STREAM_VIDEO = 0x01,
+       AM_DVD_STREAM_AUDIO = 0x02,
+       AM_DVD_STREAM_SUBPIC = 0x04
+} AM_DVD_STREAM_FLAGS;
+typedef enum _AM_FILTER_MISC_FLAGS {
+       AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x00000001,
+       AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x00000002
+} AM_FILTER_MISC_FLAGS;
+typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
+       AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
+       AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
+       AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
+} AM_GRAPH_CONFIG_RECONNECT_FLAGS;
+typedef enum _AM_INTF_SEARCH_FLAGS {
+       AM_INTF_SEARCH_INPUT_PIN = 0x00000001,
+       AM_INTF_SEARCH_OUTPUT_PIN = 0x00000002,
+       AM_INTF_SEARCH_FILTER = 0x00000004
+} AM_INTF_SEARCH_FLAGS;
+typedef enum _AM_OVERLAY_NOTIFY_FLAGS {
+       AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x00000001,
+       AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x00000002,
+       AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x00000004
+} AM_OVERLAY_NOTIFY_FLAGS;
+typedef enum _AM_PIN_CONNECTION_BLOCK_FLAGS {
+       AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001,
+       AM_PIN_PUSH_THROUGH_DATA = 0x00000002
+} AM_PIN_CONNECTION_BLOCK_FLAGS;
+typedef enum _AM_PUSHSOURCE_FLAGS {
+       AM_PUSHSOURCECAPS_INTERNAL_RM = 0x00000001,
+       AM_PUSHSOURCECAPS_NOT_LIVE = 0x00000002,
+       AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x00000004,
+       AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x00010000
+} AM_PUSHSOURCE_FLAGS;
+typedef enum tagAM_SAMPLE_PROPERTY_FLAGS {
+       AM_SAMPLE_SPLICEPOINT = 0x01,
+       AM_SAMPLE_PREROLL = 0x02,
+       AM_SAMPLE_DATADISCONTINUITY = 0x04,
+       AM_SAMPLE_TYPECHANGED = 0x08,
+       AM_SAMPLE_TIMEVALID = 0x10,
+       AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
+       AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
+       AM_SAMPLE_STOPVALID = 0x100,
+       AM_SAMPLE_ENDOFSTREAM = 0x200,
+       AM_STREAM_MEDIA = 0,
+       AM_STREAM_CONTROL = 1
+} AM_SAMPLE_PROPERTY_FLAGS;
+typedef enum AM_SEEKING_SeekingCapabilities {
+       AM_SEEKING_CanSeekAbsolute = 0x1,
+       AM_SEEKING_CanSeekForwards = 0x2,
+       AM_SEEKING_CanSeekBackwards = 0x4,
+       AM_SEEKING_CanGetCurrentPos = 0x8,
+       AM_SEEKING_CanGetStopPos = 0x10,
+       AM_SEEKING_CanGetDuration = 0x20,
+       AM_SEEKING_CanPlayBackwards = 0x40,
+       AM_SEEKING_CanDoSegments = 0x80,
+       AM_SEEKING_Source = 0x100
+} AM_SEEKING_SEEKING_CAPABILITIES;
+typedef enum {
+       AM_STREAM_INFO_START_DEFINED = 0x00000001,
+       AM_STREAM_INFO_STOP_DEFINED = 0x00000002,
+       AM_STREAM_INFO_DISCARDING = 0x00000004,
+       AM_STREAM_INFO_STOP_SEND_EXTRA = 0x00000010
+} AM_STREAM_INFO_FLAGS;
+enum AMOVERLAYFX {
+       AMOVERFX_NOFX = 0x00000000,
+       AMOVERFX_MIRRORLEFTRIGHT = 0x00000002,
+       AMOVERFX_MIRRORUPDOWN = 0x00000004,
+       AMOVERFX_DEINTERLACE = 0x00000008
+};
+typedef enum _AMRESCTL_RESERVEFLAGS {
+       AMRESCTL_RESERVEFLAGS_RESERVE = 0x00,
+       AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x01
+} AMRESCTL_RESERVEFLAGS;
+typedef enum tagAMTunerModeType {
+       AMTUNER_MODE_DEFAULT = 0x0000,
+       AMTUNER_MODE_TV = 0x0001,
+       AMTUNER_MODE_FM_RADIO = 0x0002,
+       AMTUNER_MODE_AM_RADIO = 0x0004,
+       AMTUNER_MODE_DSS = 0x0008
+} AMTunerModeType;
+typedef enum tagAnalogVideoStandard {
+       AnalogVideo_None = 0x00000000
+       AnalogVideo_NTSC_M = 0x00000001,
+       AnalogVideo_NTSC_M_J = 0x00000002,
+       AnalogVideo_NTSC_433 = 0x00000004,
+       AnalogVideo_PAL_B = 0x00000010,
+       AnalogVideo_PAL_D = 0x00000020,
+       AnalogVideo_PAL_H = 0x00000080,
+       AnalogVideo_PAL_I = 0x00000100,
+       AnalogVideo_PAL_M = 0x00000200,
+       AnalogVideo_PAL_N = 0x00000400,
+       AnalogVideo_PAL_60 = 0x00000800,
+       AnalogVideo_SECAM_B = 0x00001000,
+       AnalogVideo_SECAM_D = 0x00002000,
+       AnalogVideo_SECAM_G = 0x00004000,
+       AnalogVideo_SECAM_H = 0x00008000,
+       AnalogVideo_SECAM_K = 0x00010000,
+       AnalogVideo_SECAM_K1 = 0x00020000,
+       AnalogVideo_SECAM_L = 0x00040000,
+       AnalogVideo_SECAM_L1 = 0x00080000,
+       AnalogVideo_PAL_N_COMBO = 0x00100000
+} AnalogVideoStandard;
+typedef enum {
+       CameraControl_Flags_Auto = 0x0001,
+       CameraControl_Flags_Manual = 0x0002
+} CameraControlFlags;
+typedef enum {
+       CameraControl_Pan = 1,
+       CameraControl_Tilt,
+       CameraControl_Roll,
+       CameraControl_Zoom,
+       CameraControl_Exposure,
+       CameraControl_Iris,
+       CameraControl_Focus
+} CameraControlProperty;
+typedef enum {
+       CompressionCaps_CanQuality = 0x01,
+       CompressionCaps_CanCrunch = 0x02,
+       CompressionCaps_CanKeyFrame = 0x04,
+       CompressionCaps_CanBFrame = 0x08,
+       CompressionCaps_CanWindow = 0x10
+} CompressionCaps;
+typedef enum {
+       DECIMATION_LEGACY,
+       DECIMATION_USE_DECODER_ONLY,
+       DECIMATION_USE_VIDEOPORT_ONLY,
+       DECIMATION_USE_OVERLAY_ONLY,
+       DECIMATION_DEFAULT
+} DECIMATION_USAGE;
+typedef enum tagDVD_AUDIO_APPMODE {
+       DVD_AudioMode_None = 0,
+       DVD_AudioMode_Karaoke = 1,
+       DVD_AudioMode_Surround = 2,
+       DVD_AudioMode_Other = 3
+} DVD_AUDIO_APPMODE;
+typedef enum tagDVD_AUDIO_FORMAT {
+       DVD_AudioFormat_AC3 = 0,
+       DVD_AudioFormat_MPEG1 = 1,
+       DVD_AudioFormat_MPEG1_DRC = 2,
+       DVD_AudioFormat_MPEG2 = 3,
+       DVD_AudioFormat_MPEG2_DRC = 4,
+       DVD_AudioFormat_LPCM = 5,
+       DVD_AudioFormat_DTS = 6,
+       DVD_AudioFormat_SDDS = 7,
+       DVD_AudioFormat_Other = 8
+} DVD_AUDIO_FORMAT;
+typedef enum tagDVD_AUDIO_LANG_EXT {
+       DVD_AUD_EXT_NotSpecified = 0,
+       DVD_AUD_EXT_Captions = 1,
+       DVD_AUD_EXT_VisuallyImpaired = 2,
+       DVD_AUD_EXT_DirectorComments1 = 3,
+       DVD_AUD_EXT_DirectorComments2 = 4
+} DVD_AUDIO_LANG_EXT;
+typedef enum {
+       DVD_CMD_FLAG_None = 0x00000000,
+       DVD_CMD_FLAG_Flush = 0x00000001,
+       DVD_CMD_FLAG_SendEvents = 0x00000002,
+       DVD_CMD_FLAG_Block = 0x00000004,
+       DVD_CMD_FLAG_StartWhenRendered = 0x00000008,
+       DVD_CMD_FLAG_EndAfterRendered = 0x00000010
+} DVD_CMD_FLAGS;
+typedef enum tagDVD_DISC_SIDE {
+       DVD_SIDE_A,
+       DVD_SIDE_B
+} DVD_DISC_SIDE;
+typedef enum tagDVD_DOMAIN {
+       DVD_DOMAIN_FirstPlay,
+       DVD_DOMAIN_VideoManagerMenu,
+       DVD_DOMAIN_VideoTitleSetMenu,
+       DVD_DOMAIN_Title,
+       DVD_DOMAIN_Stop
+} DVD_DOMAIN;
+typedef enum tagDVD_FRAMERATE {
+       DVD_FPS_25 = 1,
+       DVD_FPS_30NonDrop = 3
+} DVD_FRAMERATE;
+typedef enum tagDVD_KARAOKE_ASSIGNMENT {
+       DVD_Assignment_reserved0 = 0,
+       DVD_Assignment_reserved1 = 1,
+       DVD_Assignment_LR = 2,
+       DVD_Assignment_LRM = 3,
+       DVD_Assignment_LR1 = 4,
+       DVD_Assignment_LRM1 = 5,
+       DVD_Assignment_LR12 = 6,
+       DVD_Assignment_LRM12 = 7 
+} DVD_KARAOKE_ASSIGNMENT;
+typedef enum tagDVD_KARAOKE_CONTENTS {
+       DVD_Karaoke_GuideVocal1 = 0x0001,
+       DVD_Karaoke_GuideVocal2 = 0x0002,
+       DVD_Karaoke_GuideMelody1 = 0x0004,
+       DVD_Karaoke_GuideMelody2 = 0x0008,
+       DVD_Karaoke_GuideMelodyA = 0x0010,
+       DVD_Karaoke_GuideMelodyB = 0x0020,
+       DVD_Karaoke_SoundEffectA = 0x0040,
+       DVD_Karaoke_SoundEffectB = 0x0080
+} DVD_KARAOKE_CONTENTS;
+typedef enum tagDVD_KARAOKE_DOWNMIX {
+       DVD_Mix_0to0 = 0x0001,
+       DVD_Mix_1to0 = 0x0002,
+       DVD_Mix_2to0 = 0x0004,
+       DVD_Mix_3to0 = 0x0008,
+       DVD_Mix_4to0 = 0x0010,
+       DVD_Mix_Lto0 = 0x0020,
+       DVD_Mix_Rto0 = 0x0040,
+       DVD_Mix_0to1 = 0x0100,
+       DVD_Mix_1to1 = 0x0200,
+       DVD_Mix_2to1 = 0x0400,
+       DVD_Mix_3to1 = 0x0800,
+       DVD_Mix_4to1 = 0x1000,
+       DVD_Mix_Lto1 = 0x2000,
+       DVD_Mix_Rto1 = 0x4000
+} DVD_KARAOKE_DOWNMIX;
+typedef enum tagDVD_MENU_ID {
+       DVD_MENU_Title = 2,
+       DVD_MENU_Root = 3,
+       DVD_MENU_Subpicture = 4,
+       DVD_MENU_Audio = 5,
+       DVD_MENU_Angle = 6,
+       DVD_MENU_Chapter = 7
+} DVD_MENU_ID;
+typedef enum {
+       DVD_ResetOnStop = 1,
+       DVD_NotifyParentalLevelChange = 2,
+       DVD_HMSF_TimeCodeEvents = 3,
+       DVD_AudioDuringFFwdRew = 4,
+       DVD_EnableNonblockingAPIs = 5,
+       DVD_CacheSizeInMB = 6,
+       DVD_EnablePortableBookmarks = 7
+} DVD_OPTION_FLAG;
+typedef enum tagDVD_PARENTAL_LEVEL {
+       DVD_PARENTAL_LEVEL_8 = 0x8000,
+       DVD_PARENTAL_LEVEL_7 = 0x4000,
+       DVD_PARENTAL_LEVEL_6 = 0x2000,
+       DVD_PARENTAL_LEVEL_5 = 0x1000,
+       DVD_PARENTAL_LEVEL_4 = 0x0800,
+       DVD_PARENTAL_LEVEL_3 = 0x0400,
+       DVD_PARENTAL_LEVEL_2 = 0x0200,
+       DVD_PARENTAL_LEVEL_1 = 0x0100
+} DVD_PARENTAL_LEVEL;
+typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
+       DISPLAY_CONTENT_DEFAULT = 0,
+       DISPLAY_16x9 = 1,
+       DISPLAY_4x3_PANSCAN_PREFERRED = 2,
+       DISPLAY_4x3_LETTERBOX_PREFERRED = 3
+} DVD_PREFERRED_DISPLAY_MODE;
+typedef enum tagDVD_RELATIVE_BUTTON {
+       DVD_Relative_Upper = 1,
+       DVD_Relative_Lower = 2,
+       DVD_Relative_Left = 3,
+       DVD_Relative_Right = 4
+} DVD_RELATIVE_BUTTON;
+typedef enum tagDVD_SUBPICTURE_LANG_EXT {
+       DVD_SP_EXT_NotSpecified = 0,
+       DVD_SP_EXT_Caption_Normal = 1,
+       DVD_SP_EXT_Caption_Big = 2,
+       DVD_SP_EXT_Caption_Children = 3,
+       DVD_SP_EXT_CC_Normal = 5,
+       DVD_SP_EXT_CC_Big = 6,
+       DVD_SP_EXT_CC_Children = 7,
+       DVD_SP_EXT_Forced = 9,
+       DVD_SP_EXT_DirectorComments_Normal = 13,
+       DVD_SP_EXT_DirectorComments_Big = 14,
+       DVD_SP_EXT_DirectorComments_Children = 15
+} DVD_SUBPICTURE_LANG_EXT;
+typedef enum tagDVD_SUBPICTURE_TYPE {
+       DVD_SPType_NotSpecified = 0,
+       DVD_SPType_Language = 1,
+       DVD_SPType_Other = 2
+} DVD_SUBPICTURE_TYPE;
+typedef enum tagDVD_SUBPICTURE_CODING {
+       DVD_SPCoding_RunLength = 0,
+       DVD_SPCoding_Extended = 1,
+       DVD_SPCoding_Other = 2
+} DVD_SUBPICTURE_CODING;
+enum DVD_TextCharSet {
+       DVD_CharSet_Unicode = 0,
+       DVD_CharSet_ISO646 = 1,
+       DVD_CharSet_JIS_Roman_Kanji = 2,
+       DVD_CharSet_ISO8859_1 = 3,
+       DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
+};
+enum DVD_TextStringType {
+       DVD_Struct_Volume = 0x01,
+       DVD_Struct_Title = 0x02,
+       DVD_Struct_ParentalID = 0x03,
+       DVD_Struct_PartOfTitle = 0x04,
+       DVD_Struct_Cell = 0x05,
+       DVD_Stream_Audio = 0x10,
+       DVD_Stream_Subpicture = 0x11,
+       DVD_Stream_Angle = 0x12,
+       DVD_Channel_Audio = 0x20,
+       DVD_General_Name = 0x30,
+       DVD_General_Comments = 0x31,
+       DVD_Title_Series = 0x38,
+       DVD_Title_Movie = 0x39,
+       DVD_Title_Video = 0x3a,
+       DVD_Title_Album = 0x3b,
+       DVD_Title_Song = 0x3c,
+       DVD_Title_Other = 0x3f,
+       DVD_Title_Sub_Series = 0x40,
+       DVD_Title_Sub_Movie = 0x41,
+       DVD_Title_Sub_Video = 0x42,
+       DVD_Title_Sub_Album = 0x43,
+       DVD_Title_Sub_Song = 0x44,
+       DVD_Title_Sub_Other = 0x47,
+       DVD_Title_Orig_Series = 0x48,
+       DVD_Title_Orig_Movie = 0x49,
+       DVD_Title_Orig_Video = 0x4a,
+       DVD_Title_Orig_Album = 0x4b,
+       DVD_Title_Orig_Song = 0x4c,
+       DVD_Title_Orig_Other = 0x4f,
+       DVD_Other_Scene = 0x50,
+       DVD_Other_Cut = 0x51,
+       DVD_Other_Take = 0x52
+};
+typedef enum tagDVD_TIMECODE_FLAGS {
+       DVD_TC_FLAG_25fps = 0x00000001,
+       DVD_TC_FLAG_30fps = 0x00000002,
+       DVD_TC_FLAG_DropFrame = 0x00000004,
+       DVD_TC_FLAG_Interpolated = 0x00000008
+} DVD_TIMECODE_FLAGS;
+typedef enum tagDVD_TITLE_APPMODE {
+       DVD_AppMode_Not_Specified = 0,
+       DVD_AppMode_Karaoke = 1,
+       DVD_AppMode_Other = 3 
+} DVD_TITLE_APPMODE;
+typedef enum tagDVD_VIDEO_COMPRESSION {
+       DVD_VideoCompression_Other = 0,
+       DVD_VideoCompression_MPEG1 = 1,
+       DVD_VideoCompression_MPEG2 = 2 
+} DVD_VIDEO_COMPRESSION;
+typedef enum _DVDECODERRESOLUTION {
+       DVDECODERRESOLUTION_720x480 = 1000,
+       DVDECODERRESOLUTION_360x240 = 1001,
+       DVDECODERRESOLUTION_180x120 = 1002,
+       DVDECODERRESOLUTION_88x60 = 1003
+} DVDECODERRESOLUTION;
+typedef enum _DVRESOLUTION {
+       DVRESOLUTION_FULL = 1000,
+       DVRESOLUTION_HALF = 1001,
+       DVRESOLUTION_QUARTER = 1002,
+       DVRESOLUTION_DC = 1003
+} DVRESOLUTION;
+typedef enum _DVENCODERFORMAT {
+       DVENCODERFORMAT_DVSD = 2007,
+       DVENCODERFORMAT_DVHD = 2008,
+       DVENCODERFORMAT_DVSL = 2009
+} DVENCODERFORMAT;
+typedef enum _DVENCODERRESOLUTION {
+       DVENCODERRESOLUTION_720x480 = 2012,
+       DVENCODERRESOLUTION_360x240 = 2013,
+       DVENCODERRESOLUTION_180x120 = 2014,
+       DVENCODERRESOLUTION_88x60 = 2015
+} DVENCODERRESOLUTION;
+typedef enum _DVENCODERVIDEOFORMAT {
+       DVENCODERVIDEOFORMAT_NTSC = 2000,
+       DVENCODERVIDEOFORMAT_PAL = 2001
+} DVENCODERVIDEOFORMAT;
+typedef enum _FilterState {
+       State_Stopped,
+       State_Paused,
+       State_Running
+} FILTER_STATE;
+typedef enum {
+       INTERLEAVE_NONE,
+       INTERLEAVE_CAPTURE,
+       INTERLEAVE_FULL,
+       INTERLEAVE_NONE_BUFFERED
+} InterleavingMode;
+typedef enum {
+       PhysConn_Video_Tuner = 1,
+       PhysConn_Video_Composite,
+       PhysConn_Video_SVideo,
+       PhysConn_Video_RGB,
+       PhysConn_Video_YRYBY,
+       PhysConn_Video_SerialDigital,
+       PhysConn_Video_ParallelDigital,
+       PhysConn_Video_SCSI,
+       PhysConn_Video_AUX,
+       PhysConn_Video_1394,
+       PhysConn_Video_USB,
+       PhysConn_Video_VideoDecoder,
+       PhysConn_Video_VideoEncoder,
+       PhysConn_Video_SCART,
+       PhysConn_Video_Black,
+       PhysConn_Audio_Tuner = 4096,
+       PhysConn_Audio_Line,
+       PhysConn_Audio_Mic,
+       PhysConn_Audio_AESDigital,
+       PhysConn_Audio_SPDIFDigital,
+       PhysConn_Audio_SCSI,
+       PhysConn_Audio_AUX,
+       PhysConn_Audio_1394,
+       PhysConn_Audio_USB,
+       PhysConn_Audio_AudioDecoder
+} PhysicalConnectorType;
+typedef enum _PinDirection {
+       PINDIR_INPUT,
+       PINDIR_OUTPUT
+} PIN_DIRECTION;
+typedef enum {
+       Famine,
+       Flood
+} QualityMessageType;
+enum {
+       REG_PINFLAG_B_ZERO = 0x1,
+       REG_PINFLAG_B_RENDERER = 0x2,
+       REG_PINFLAG_B_MANY = 0x4,
+       REG_PINFLAG_B_OUTPUT = 0x8
+} REG_PINFLAG;
+typedef enum _REM_FILTER_FLAGS {
+       REMFILTERF_LEAVECONNECTED = 0x00000001
+} REM_FILTER_FLAGS;
+typedef enum {
+       TunerInputCable,
+       TunerInputAntenna
+} TunerInputType;
+typedef enum tagTVAudioMode {
+       AMTVAUDIO_MODE_MONO = 0x0001,
+       AMTVAUDIO_MODE_STEREO = 0x0002,
+       AMTVAUDIO_MODE_LANG_A = 0x0010,
+       AMTVAUDIO_MODE_LANG_B = 0x0020,
+       AMTVAUDIO_MODE_LANG_C = 0x0040,
+       AMTVAUDIO_PRESET_STEREO = 0x0200,
+       AMTVAUDIO_PRESET_LANG_A = 0x1000,
+       AMTVAUDIO_PRESET_LANG_B = 0x2000,
+       AMTVAUDIO_PRESET_LANG_C = 0x4000
+} TVAudioMode;
+typedef enum {
+       UOP_FLAG_Play_Title_Or_AtTime = 0x00000001,
+       UOP_FLAG_Play_Chapter = 0x00000002,
+       UOP_FLAG_Play_Title = 0x00000004,
+       UOP_FLAG_Stop = 0x00000008,
+       UOP_FLAG_ReturnFromSubMenu = 0x00000010,
+       UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020,
+       UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040,
+       UOP_FLAG_PlayNext_Chapter = 0x00000080,
+       UOP_FLAG_Play_Forwards = 0x00000100,
+       UOP_FLAG_Play_Backwards = 0x00000200,
+       UOP_FLAG_ShowMenu_Title = 0x00000400,
+       UOP_FLAG_ShowMenu_Root = 0x00000800,
+       UOP_FLAG_ShowMenu_SubPic = 0x00001000,
+       UOP_FLAG_ShowMenu_Audio = 0x00002000,
+       UOP_FLAG_ShowMenu_Angle = 0x00004000,
+       UOP_FLAG_ShowMenu_Chapter = 0x00008000,
+       UOP_FLAG_Resume = 0x00010000,
+       UOP_FLAG_Select_Or_Activate_Button = 0x00020000,
+       UOP_FLAG_Still_Off = 0x00040000,
+       UOP_FLAG_Pause_On = 0x00080000,
+       UOP_FLAG_Select_Audio_Stream = 0x00100000,
+       UOP_FLAG_Select_SubPic_Stream = 0x00200000,
+       UOP_FLAG_Select_Angle = 0x00400000,
+       UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000,
+       UOP_FLAG_Select_Video_Mode_Preference = 0x01000000
+} VALID_UOP_FLAG;
+typedef enum {
+       VfwCaptureDialog_Source = 0x01,
+       VfwCaptureDialog_Format = 0x02,
+       VfwCaptureDialog_Display = 0x04
+} VfwCaptureDialogs;
+typedef enum {
+       VfwCompressDialog_Config = 0x01,
+       VfwCompressDialog_About = 0x02,
+       VfwCompressDialog_QueryConfig = 0x04,
+       VfwCompressDialog_QueryAbout = 0x08
+} VfwCompressDialogs;
+typedef enum tagVideoControlFlags {
+       VideoControlFlag_FlipHorizontal = 0x0001,
+       VideoControlFlag_FlipVertical = 0x0002,
+       VideoControlFlag_ExternalTriggerEnable = 0x0004,
+       VideoControlFlag_Trigger = 0x0008
+} VideoControlFlags;
+typedef enum {
+       ConstantBitRate = 0,
+       VariableBitRateAverage,
+       VariableBitRatePeak
+} VIDEOENCODER_BITRATE_MODE;
+typedef enum tagVideoProcAmpFlags {
+       VideoProcAmp_Flags_Auto = 0x0001,
+       VideoProcAmp_Flags_Manual = 0x0002
+} VideoProcAmpFlags;
+typedef enum tagVideoProcAmpProperty {
+       VideoProcAmp_Brightness,
+       VideoProcAmp_Contrast,
+       VideoProcAmp_Hue,
+       VideoProcAmp_Saturation,
+       VideoProcAmp_Sharpness,
+       VideoProcAmp_Gamma,
+       VideoProcAmp_ColorEnable,
+       VideoProcAmp_WhiteBalance,
+       VideoProcAmp_BacklightCompensation,
+       VideoProcAmp_Gain
+} VideoProcAmpProperty;
+enum VMR_ASPECT_RATIO_MODE {
+       VMR_ARMODE_NONE,
+       VMR_ARMODE_LETTER_BOX
+};
+typedef enum {
+       DeinterlacePref_NextBest = 0x01,
+       DeinterlacePref_BOB = 0x02,
+       DeinterlacePref_Weave = 0x04,
+       DeinterlacePref_Mask = 0x07
+} VMRDeinterlacePrefs;
+typedef enum {
+       DeinterlaceTech_Unknown = 0x0000,
+       DeinterlaceTech_BOBLineReplicate = 0x0001,
+       DeinterlaceTech_BOBVerticalStretch = 0x0002,
+       DeinterlaceTech_MedianFiltering = 0x0004,
+       DeinterlaceTech_EdgeFiltering = 0x0010,
+       DeinterlaceTech_FieldAdaptive = 0x0020,
+       DeinterlaceTech_PixelAdaptive = 0x0040,
+       DeinterlaceTech_MotionVectorSteered = 0x0080
+} VMRDeinterlacePrefs;
+typedef enum {
+       MixerPref_NoDecimation = 0x00000001,
+       MixerPref_DecimateOutput = 0x00000002,
+       MixerPref_ARAdjustXorY = 0x00000004,
+       MixerPref_DecimationReserved = 0x00000008,
+       MixerPref_DecimateMask = 0x0000000F,
+       MixerPref_BiLinearFiltering = 0x00000010,
+       MixerPref_PointFiltering = 0x00000020,
+       MixerPref_FilteringMask = 0x000000F0,
+       MixerPref_RenderTargetRGB = 0x00000100,
+       MixerPref_RenderTargetYUV = 0x00001000,
+       MixerPref_RenderTargetYUV420 = 0x00000200,
+       MixerPref_RenderTargetYUV422 = 0x00000400,
+       MixerPref_RenderTargetYUV444 = 0x00000800,
+       MixerPref_RenderTargetReserved = 0x0000E000,
+       MixerPref_RenderTargetMask = 0x0000FF00,
+       MixerPref_DynamicSwitchToBOB = 0x00010000,
+       MixerPref_DynamicDecimateBy2 = 0x00020000,
+       MixerPref_DynamicReserved = 0x000C0000,
+       MixerPref_DynamicMask = 0x000F0000
+} VMRMixerPrefs;
+enum VMRMode {
+       VMRMode_Windowed = 0x00000001,
+       VMRMode_Windowless = 0x00000002,
+       VMRMode_Renderless = 0x00000004,
+       VMRMode_Mask = 0x00000007
+};
+typedef enum {
+       VMRSample_SyncPoint = 0x00000001,
+       VMRSample_Preroll = 0x00000002,
+       VMRSample_Discontinuity = 0x00000004,
+       VMRSample_TimeValid = 0x00000008
+} VMRPresentationFlags;
+typedef enum {
+       RenderPrefs_ForceOffscreen = 0x00000001,
+       RenderPrefs_ForceOverlays = 0x00000002,
+       RenderPrefs_AllowOverlays = 0x00000000,
+       RenderPrefs_AllowOffscreen = 0x00000000,
+       RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008,
+       RenderPrefs_RestrictToInitialMonitor = 0x00000010,
+       RenderPrefs_PreferAGPMemWhenMixing = 0x00000020,
+       RenderPrefs_Mask = 0x0000003f
+} VMRRenderPrefs;
+typedef enum {
+       AMAP_PIXELFORMAT_VALID = 0x01,
+       AMAP_3D_TARGET = 0x02,
+       AMAP_ALLOW_SYSMEM = 0x04,
+       AMAP_FORCE_SYSMEM = 0x08,
+       AMAP_DIRECTED_FLIP = 0x10,
+       AMAP_DXVA_TARGET = 0x20
+} VMRSurfaceAllocationFlags;
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct _AllocatorProperties {
+       long cBuffers;
+       long cbBuffer;
+       long cbAlign;
+       long cbPrefix;
+} ALLOCATOR_PROPERTIES;
+typedef struct {
+       HRESULT hrVPEStatus;
+       BOOL bDvdVolInvalid;
+       BOOL bDvdVolUnknown;
+       BOOL bNoLine21In;
+       BOOL bNoLine21Out;
+       int iNumStreams;
+       int iNumStreamsFailed;
+       DWORD dwFailedStreamsFlag;
+} AM_DVD_RENDERSTATUS;
+typedef struct _AMCOPPCommand {
+       GUID macKDI;
+       GUID guidCommandID;
+       DWORD dwSequence;
+       DWORD cbSizeData;
+       BYTE CommandData[4056];
+} AMCOPPCommand,*LPAMCOPPCommand;
+typedef struct _AMCOPPSignature {
+       BYTE Signature[256];
+} AMCOPPSignature;
+typedef struct _AMCOPPStatusInput {
+       GUID rApp;
+       GUID guidStatusRequestID;
+       DWORD dwSequence;
+       DWORD cbSizeData;
+       BYTE StatusData[4056];
+} AMCOPPStatusInput,*LPAMCOPPStatusInput;
+typedef struct _AMCOPPStatusOutput {
+       GUID macKDI;
+       DWORD cbSizeData;
+       BYTE COPPStatus[4076];
+} AMCOPPStatusOutput,*LPAMCOPPStatusOutput;
+typedef struct _AMMediaType {
+       GUID majortype;
+       GUID subtype;
+       BOOL bFixedSizeSamples;
+       BOOL bTemporalCompression;
+       ULONG lSampleSize;
+       GUID formattype;
+       IUnknown *pUnk;
+       ULONG cbFormat;
+       BYTE *pbFormat;
+} AM_MEDIA_TYPE;
+typedef struct tagAM_SAMPLE2_PROPERTIES {
+       DWORD cbData;
+       DWORD dwTypeSpecificFlags;
+       DWORD dwSampleFlags;
+       LONG lActual;
+       REFERENCE_TIME tStart;
+       REFERENCE_TIME tStop;
+       DWORD dwStreamId;
+       AM_MEDIA_TYPE *pMediaType;
+       BYTE *pbBuffer;
+       LONG cbBuffer;
+} AM_SAMPLE2_PROPERTIES;
+typedef struct {
+       REFERENCE_TIME tStart;
+       REFERENCE_TIME tStop;
+       DWORD dwStartCookie;
+       DWORD dwStopCookie;
+       DWORD dwFlags;
+} AM_STREAM_INFO;
+typedef struct {
+       const CLSID *clsMajorType;
+       const CLSID *clsMinorType;
+} REGPINTYPES;
+typedef REGPINTYPES AMOVIESETUP_MEDIATYPE,*PAMOVIESETUP_MEDIATYPE,*LPAMOVIESETUP_MEDIATYPE;
+typedef struct {
+       LPWSTR strName;
+       BOOL bRendered;
+       BOOL bOutput;
+       BOOL bZero;
+       BOOL bMany;
+       const CLSID *clsConnectsToFilter;
+       const WCHAR *strConnectsToPin;
+       UINT nMediaTypes;
+       const REGPINTYPES *lpMediaType;
+} REGFILTERPINS;
+typedef REGFILTERPINS AMOVIESETUP_PIN,*PAMOVIESETUP_PIN,*LPAMOVIESETUP_PIN;
+typedef struct _AMOVIESETUP_FILTER {
+       const CLSID *clsID;
+       const WCHAR *strName;
+       DWORD dwMerit;
+       UINT nPins;
+       const AMOVIESETUP_PIN *lpPin;
+} AMOVIESETUP_FILTER,*PAMOVIESETUP_FILTER,*LPAMOVIESETUP_FILTER;
+typedef struct _AUDIO_STREAM_CONFIG_CAPS {
+       GUID guid;
+       ULONG MinimumChannels;
+       ULONG MaximumChannels;
+       ULONG ChannelsGranularity;
+       ULONG MinimumBitsPerSample;
+       ULONG MaximumBitsPerSample;
+       ULONG BitsPerSampleGranularity;
+       ULONG MinimumSampleFrequency;
+       ULONG MaximumSampleFrequency;
+       ULONG SampleFrequencyGranularity;
+} AUDIO_STREAM_CONFIG_CAPS;
+struct CodecAPIEventData {
+       GUID guid;
+       DWORD dataLength;
+       DWORD reserved[3];
+};
+typedef struct tagCOLORKEY {
+       DWORD KeyType;
+       DWORD PaletteIndex;
+       COLORREF LowColorValue;
+       COLORREF HighColorValue;
+} COLORKEY;
+#define CK_NOCOLORKEY 0x00000000
+#define CK_INDEX 0x00000001
+#define CK_RGB 0x00000002
+typedef struct {
+       DWORD dw1;
+       DWORD dw2;
+} DDCOLORKEY;
+typedef struct tagDVD_AudioAttributes {
+       DVD_AUDIO_APPMODE AppMode;
+       DVD_AUDIO_FORMAT AudioFormat; 
+       LCID Language;
+       DVD_AUDIO_LANG_EXT LanguageExtension;
+       BOOL fHasMultichannelInfo; 
+       DWORD dwFrequency;
+       BYTE bQuantization;
+       BYTE bNumberOfChannels;
+       DWORD dwReserved[2];
+} DVD_AudioAttributes;
+typedef struct tagDVD_DECODER_CAPS {
+       DWORD dwSize;
+       DWORD dwAudioCaps;
+       double dFwdMaxRateVideo;
+       double dFwdMaxRateAudio;
+       double dFwdMaxRateSP;
+       double dBwdMaxRateVideo; 
+       double dBwdMaxRateAudio;
+       double dBwdMaxRateSP;
+       DWORD dwRes1;
+       DWORD dwRes2;
+       DWORD dwRes3;
+       DWORD dwRes4;
+} DVD_DECODER_CAPS;
+#define DVD_AUDIO_CAPS_AC3 0x00000001
+#define DVD_AUDIO_CAPS_MPEG2 0x00000002
+#define DVD_AUDIO_CAPS_LPCM 0x00000004
+#define DVD_AUDIO_CAPS_DTS 0x00000008
+#define DVD_AUDIO_CAPS_SDDS 0x00000010
+typedef struct tagDVD_HMSF_TIMECODE {
+       BYTE bHours;
+       BYTE bMinutes;
+       BYTE bSeconds;
+       BYTE bFrames;
+} DVD_HMSF_TIMECODE;
+typedef struct tagDVD_KaraokeAttributes {
+       BYTE bVersion;
+       BOOL fMasterOfCeremoniesInGuideVocal1;
+       BOOL fDuet;
+       DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
+       WORD wChannelContents[8];
+} DVD_KaraokeAttributes;
+typedef struct tagDVD_MUA_Coeff {
+       double log2_alpha;
+       double log2_beta;
+} DVD_MUA_Coeff;
+typedef struct tagDVD_MUA_MixingInfo {
+       BOOL fMixTo0;
+       BOOL fMixTo1;
+       BOOL fMix0InPhase;
+       BOOL fMix1InPhase;
+       DWORD dwSpeakerPosition;
+} DVD_MUA_MixingInfo;
+#define KSAUDIO_SPEAKER_LEFT 0x00000001
+#define KSAUDIO_SPEAKER_RIGHT 0x00000002
+#define KSAUDIO_SPEAKER_CENTER 0x00000004
+#define KSAUDIO_SPEAKER_SURROUND_LEFT 0x00000008
+#define KSAUDIO_SPEAKER_SURROUND_RIGHT 0x00000010
+#define KSAUDIO_SPEAKER_SUBWOOFER 0x00000020
+#define KSAUDIO_SPEAKER_LEFT_OF_CENTER 0x00000040
+#define KSAUDIO_SPEAKER_RIGHT_OF_CENTER 0x00000080
+#define KSAUDIO_SPEAKER_SURROUND_MONO 0x00000100
+#define KSAUDIO_SPEAKER_SIDE_LEFT 0x00000200
+#define KSAUDIO_SPEAKER_SIDE_RIGHT 0x00000400
+#define KSAUDIO_SPEAKER_TOP 0x00000800
+typedef struct tagDVD_MultichannelAudioAttributes {
+       DVD_MUA_MixingInfo Info[8];
+       DVD_MUA_Coeff Coeff[8];
+} DVD_MultichannelAudioAttributes;
+typedef struct tagDVD_PLAYBACK_LOCATION {
+       ULONG TitleNum;
+       ULONG ChapterNum; 
+       ULONG TimeCode;
+} DVD_PLAYBACK_LOCATION;
+typedef struct tagDVD_PLAYBACK_LOCATION2 {
+       ULONG TitleNum;
+       ULONG ChapterNum;
+       DVD_HMSF_TIMECODE TimeCode;
+       ULONG TimeCodeFlags;
+} DVD_PLAYBACK_LOCATION2;
+typedef struct tagDVD_SubpictureAttributes {
+       DVD_SUBPICTURE_TYPE Type;
+       DVD_SUBPICTURE_CODING CodingMode;
+       LCID Language;
+       DVD_SUBPICTURE_LANG_EXT LanguageExtension;
+} DVD_SubpictureAttributes;
+typedef struct tagDVD_TIMECODE {
+       ULONG Hours1:4; 
+       ULONG Hours10:4; 
+       ULONG Minutes1:4; 
+       ULONG Minutes10:4; 
+       ULONG Seconds1:4; 
+       ULONG Seconds10:4; 
+       ULONG Frames1:4; 
+       ULONG Frames10:2; 
+       ULONG FrameRateCode:2; 
+} DVD_TIMECODE;
+typedef struct tagDVD_VideoAttributes {
+       BOOL fPanscanPermitted;
+       BOOL fLetterboxPermitted;
+       ULONG ulAspectX;
+       ULONG ulAspectY;
+       ULONG ulFrameRate;
+       ULONG ulFrameHeight;
+       DVD_VIDEO_COMPRESSION Compression;
+       BOOL fLine21Field1InGOP;
+       BOOL fLine21Field2InGOP;
+       ULONG ulSourceResolutionX;
+       ULONG ulSourceResolutionY;
+       BOOL fIsSourceLetterboxed;
+       BOOL fIsFilmMode;
+} DVD_VideoAttributes;
+struct tagDVD_MenuAttributes {
+       BOOL fCompatibleRegion[8];
+       DVD_VideoAttributes VideoAttributes;
+       BOOL fAudioPresent;
+       DVD_AudioAttributes AudioAttributes;
+       BOOL fSubpicturePresent;
+       DVD_SubpictureAttributes SubpictureAttributes;
+} DVD_MenuAttributes;
+typedef struct tagDVD_TitleMainAttributes {
+       DVD_TITLE_APPMODE AppMode;
+       DVD_VideoAttributes VideoAttributes;
+       ULONG ulNumberOfAudioStreams;
+       DVD_AudioAttributes AudioAttributes[8];
+       DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
+       ULONG ulNumberOfSubpictureStreams;
+       DVD_SubpictureAttributes SubpictureAttributes[32];
+} DVD_TitleAttributes;
+typedef struct tag_DVINFO {
+       DWORD dwDVAAuxSrc;
+       DWORD dwDVAAuxCtl;
+       DWORD dwDVAAuxSrc1;
+       DWORD dwDVAAuxCtl1;
+       DWORD dwDVVAuxSrc;
+       DWORD dwDVVAuxCtl;
+       DWORD dwDVReserved[2];
+} DVINFO,*PDVINFO;
+/***************
+#define MAX_FILTER_NAME 128
+typedef struct _FilterInfo {
+       WCHAR achName[MAX_FILTER_NAME]; 
+       IFilterGraph *pGraph;
+} FILTER_INFO;
+***************/
+typedef struct _NORMALIZEDRECT {
+       float left;
+       float top;
+       float right;
+       float bottom;
+} NORMALIZEDRECT,*PNORMALIZEDRECT;
+#define MAX_PIN_NAME 128
+typedef struct _PinInfo {
+       IBaseFilter *pFilter;
+       PIN_DIRECTION dir;
+       WCHAR achName[MAX_PIN_NAME];
+} PIN_INFO;
+typedef struct{ 
+       QualityMessageType Type;
+       long Proportion;
+       REFERENCE_TIME Late;
+       REFERENCE_TIME TimeStamp;
+} Quality;
+typedef struct {
+       CLSID clsMedium;
+       DWORD dw1;
+       DWORD dw2;
+} REGPINMEDIUM;
+typedef struct {
+       DWORD dwFlags;
+       UINT cInstances;
+       UINT nMediaTypes; 
+       const REGPINTYPES *lpMediaType;
+       UINT nMediums;
+       const REGPINMEDIUM *lpMedium;
+       const CLSID *clsPinCategory;
+} REGFILTERPINS2;
+typedef struct {
+       DWORD dwVersion;
+       DWORD dwMerit;
+       union {
+               struct {
+                       ULONG cPins;
+                       const REGFILTERPINS *rgPins;
+               };
+               struct {
+                       ULONG cPins2;
+                       const REGFILTERPINS2 *rgPins2;
+               };
+       };
+} REGFILTER2;
+typedef struct {
+       ULONG stream_id;
+       DWORD dwMediaSampleContent;
+       ULONG ulSubstreamFilterValue;
+       int iDataOffset;
+} STREAM_ID_MAP;
+#define MPEG2_PROGRAM_STREAM_MAP 0x00000000
+#define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
+#define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
+#define MPEG2_PROGRAM_PACK_HEADER 0x00000003
+#define MPEG2_PROGRAM_PES_STREAM 0x00000004
+#define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
+#define SUBSTREAM_FILTER_VAL_NONE 0x10000000
+typedef struct tagTIMECODE {
+       WORD wFrameRate;
+       WORD wFrameFract;
+       DWORD dwFrames;
+} TIMECODE;
+#define ED_FORMAT_SMPTE_30 0x00001196
+#define ED_FORMAT_SMPTE_30DROP 0x00001197
+#define ED_FORMAT_SMPTE_25 0x00001198
+#define ED_FORMAT_SMPTE_24 0x00001199
+typedef struct tagTIMECODE_SAMPLE {
+       LONGLONG qwTick;
+       TIMECODE timecode;
+       DWORD dwUser;
+       DWORD dwFlags;
+} TIMECODE_SAMPLE;
+/*#define AM_TIMECODE_FLAG_FCM */
+/*#define AM_TIMECODE_FLAG_CF */
+/*#define AM_TIMECODE_FLAG_FIELD */
+/*#define AM_TIMECODE_FLAG_DF */
+/*#define AM_TIMECODE_COLORFRAME */
+/*#define AM_TIMECODE_COLORSEQUENCE */
+/*#define AM_TIMECODE_FILMSEQUENCE_TYPE */
+typedef struct _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;
+} VIDEO_STREAM_CONFIG_CAPS;
+typedef struct tagVMRALLOCATIONINFO {
+       DWORD dwFlags;
+       LPBITMAPINFOHEADER lpHdr;
+       LPDDPIXELFORMAT lpPixFmt;
+       SIZE szAspectRatio;
+       DWORD dwMinBuffers;
+       DWORD dwMaxBuffers;
+       DWORD dwInterlaceFlags;
+       SIZE szNativeSize;
+} VMRALLOCATIONINFO;
+/**********
+typedef struct _VMRALPHABITMAP {
+       DWORD dwFlags;
+       HDC hdc;
+       LPDIRECTDRAWSURFACE7 pDDS;
+       RECT rSrc;
+       NORMALIZEDRECT rDest;
+       FLOAT fAlpha;
+       COLORREF clrSrcKey;
+} VMRALPHABITMAP,*PVMRALPHABITMAP;
+**********/
+#define VMRBITMAP_DISABLE 0x00000001
+#define VMRBITMAP_HDC 0x00000002
+#define VMRBITMAP_ENTIREDDS 0x00000004
+#define VMRBITMAP_SRCCOLORKEY 0x00000008
+#define VMRBITMAP_SRCRECT 0x00000010
+typedef struct _VMRDeinterlaceCaps {
+       DWORD dwSize;
+       DWORD dwNumPreviousOutputFrames;
+       DWORD dwNumForwardRefSamples;
+       DWORD dwNumBackwardRefSamples;
+       VMRDeinterlaceTech DeinterlaceTechnology;
+} VMRDeinterlaceCaps;
+typedef struct _VMRFrequency {
+       DWORD dwNumerator;
+       DWORD dwDenominator;
+} VMRFrequency;
+typedef struct tagVMRGUID {
+       GUID *pGUID;
+       GUID GUID;
+} VMRGUID;
+typedef struct tagVMRMONITORINFO {
+       VMRGUID guid;
+       RECT rcMonitor;
+       HMONITOR hMon;
+       DWORD dwFlags;
+       wchar_t szDevice[32];
+       wchar_t szDescription[256];
+} VMRMONITORINFO;
+/**********
+typedef struct tagVMRPRESENTATIONINFO {
+       DWORD dwFlags;
+       LPDIRECTDRAWSURFACE7 lpSurf;
+       REFERENCE_TIME rtStart;
+       REFERENCE_TIME rtEnd;
+       SIZE szAspectRatio;
+       RECT rcSrc;
+       RECT rcDst;
+       DWORD dwTypeSpecificFlags;
+       DWORD dwInterlaceFlags;
+} VMRPRESENTATIONINFO;
+**********/
+typedef struct _VMRVideoDesc {
+       DWORD dwSize;
+       DWORD dwSampleWidth;
+       DWORD dwSampleHeight;
+       BOOL SingleFieldPerSample;
+       DWORD dwFourCC;
+       VMRFrequency InputSampleFreq;
+       VMRFrequency OutputFrameFreq;
+} VMRVideoDesc;
+/**********
+typedef struct _VMRVIDEOSTREAMINFO {
+       LPDIRECTDRAWSURFACE7 pddsVideoSurface;
+       DWORD dwWidth;
+       DWORD dwHeight;
+       DWORD dwStrmID;
+       FLOAT fAlpha;
+       DDCOLORKEY ddClrKey;
+       NORMALIZEDRECT rNormal;
+} VMRVIDEOSTREAMINFO;
+**********/
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/vidcap.h b/winsup/w32api/include/vidcap.h
new file mode 100644 (file)
index 0000000..be9260f
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef _VIDCAP_H
+#define _VIDCAP_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct {
+       ULONG FromNode;
+       ULONG FromNodePin;
+       ULONG ToNode;
+       ULONG ToNodePin;
+} KSTOPOLOGY_CONNECTION;
+#define KSFILTER_NODE 0xFFFFFFFF
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/vmr9.h b/winsup/w32api/include/vmr9.h
new file mode 100644 (file)
index 0000000..9c5cd8d
--- /dev/null
@@ -0,0 +1,211 @@
+#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
diff --git a/winsup/w32api/include/vptype.h b/winsup/w32api/include/vptype.h
new file mode 100644 (file)
index 0000000..d90d614
--- /dev/null
@@ -0,0 +1,55 @@
+#ifndef _VPTYPE_H
+#define _VPTYPE_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*--- DirectShow Reference - DirectShow Enumerated Types */
+typedef enum _AMVP_MODE {
+       AMVP_MODE_WEAVE,
+       AMVP_MODE_BOBINTERLEAVED,
+       AMVP_MODE_BOBNONINTERLEAVED,
+       AMVP_MODE_SKIPEVEN,
+       AMVP_MODE_SKIPODD
+} AMVP_MODE;
+typedef enum _AMVP_SELECT_FORMAT_BY {
+       AMVP_DO_NOT_CARE,
+       AMVP_BEST_BANDWIDTH,
+       AMVP_INPUT_SAME_AS_OUTPUT
+} AMVP_SELECT_FORMAT_BY;
+/*--- DirectShow Reference - DirectShow Structures */
+typedef struct _AMVPDIMINFO{
+       DWORD dwFieldWidth;
+       DWORD dwFieldHeight;
+       DWORD dwVBIWidth;
+       DWORD dwVBIHeight;
+       RECT rcValidRegion;
+} AMVPDIMINFO,*LPAMVPDIMINFO;
+typedef struct _AMVPDATAINFO{
+       DWORD dwSize;
+       DWORD dwMicrosecondsPerField;
+       AMVPDIMINFO amvpDimInfo;
+       DWORD dwPictAspectRatioX;
+       DWORD dwPictAspectRatioY;
+       BOOL bEnableDoubleClock;
+       BOOL bEnableVACT;
+       BOOL bDataIsInterlaced;
+       LONG lHalfLinesOdd;
+       BOOL bFieldPolarityInverted;
+       DWORD dwNumLinesInVREF;
+       LONG lHalfLinesEven;
+       DWORD dwReserved1;
+} AMVPDATAINFO,*LPAMVPDATAINFO;
+typedef struct _AMVPSIZE{
+       DWORD dwWidth;
+       DWORD dwHeight;
+} AMVPSIZE,*LPAMVPSIZE;
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/winsup/w32api/include/xprtdefs.h b/winsup/w32api/include/xprtdefs.h
new file mode 100644 (file)
index 0000000..e61e8ac
--- /dev/null
@@ -0,0 +1,11 @@
+#ifndef _XPTRDEFS_H
+#define _XPTRDEFS_H
+#if __GNUC__ >= 3
+#pragma GCC system_header
+#endif
+
+/*--- DirectShow Reference - DirectShow Structures - TIMECODE_SAMPLE Structure */
+#define ED_DEVCAP_ATN_READ 0x13B7
+#define ED_DEVCAP_RTC_READ 0x13BA
+
+#endif