Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Papadopoulos <dimitri_at@users.sf.net>2006-05-10 12:57:45 +0400
committerDimitri Papadopoulos <dimitri_at@users.sf.net>2006-05-10 12:57:45 +0400
commit5f6ae3d31897567bda58f8f221693df9cb40cbff (patch)
tree17226c6bf2e795c2b76e86a1d6358b0ac751eae7 /winsup/w32api/include
parentfe9a050c9eadcb5872d1c1936b9118870ab947a0 (diff)
* 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.
Diffstat (limited to 'winsup/w32api/include')
-rw-r--r--winsup/w32api/include/amvideo.h5
-rw-r--r--winsup/w32api/include/aviriff.h87
-rw-r--r--winsup/w32api/include/bdatypes.h32
-rw-r--r--winsup/w32api/include/control.h18
-rw-r--r--winsup/w32api/include/dshow.h94
-rw-r--r--winsup/w32api/include/dvdmedia.h101
-rw-r--r--winsup/w32api/include/edevdefs.h4
-rw-r--r--winsup/w32api/include/errors.h143
-rw-r--r--winsup/w32api/include/evcode.h13
-rw-r--r--winsup/w32api/include/il21dec.h35
-rw-r--r--winsup/w32api/include/ks.h20
-rw-r--r--winsup/w32api/include/ksmedia.h23
-rw-r--r--winsup/w32api/include/mmreg.h71
-rw-r--r--winsup/w32api/include/mmsystem.h1
-rw-r--r--winsup/w32api/include/mpegtype.h29
-rw-r--r--winsup/w32api/include/strmif.h1074
-rw-r--r--winsup/w32api/include/vidcap.h23
-rw-r--r--winsup/w32api/include/vmr9.h211
-rw-r--r--winsup/w32api/include/vptype.h55
-rw-r--r--winsup/w32api/include/xprtdefs.h11
20 files changed, 2044 insertions, 6 deletions
diff --git a/winsup/w32api/include/amvideo.h b/winsup/w32api/include/amvideo.h
index e5462800f..a5825901e 100644
--- a/winsup/w32api/include/amvideo.h
+++ b/winsup/w32api/include/amvideo.h
@@ -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
index 000000000..306aa0581
--- /dev/null
+++ b/winsup/w32api/include/aviriff.h
@@ -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
index 000000000..5456ff68b
--- /dev/null
+++ b/winsup/w32api/include/bdatypes.h
@@ -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
index 000000000..9f9f7cfb0
--- /dev/null
+++ b/winsup/w32api/include/control.h
@@ -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
diff --git a/winsup/w32api/include/dshow.h b/winsup/w32api/include/dshow.h
index f1894db7f..da4bf68f4 100644
--- a/winsup/w32api/include/dshow.h
+++ b/winsup/w32api/include/dshow.h
@@ -4,11 +4,105 @@
#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
index 000000000..0a312c088
--- /dev/null
+++ b/winsup/w32api/include/dvdmedia.h
@@ -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
diff --git a/winsup/w32api/include/edevdefs.h b/winsup/w32api/include/edevdefs.h
index 8f10244c2..128631ae9 100644
--- a/winsup/w32api/include/edevdefs.h
+++ b/winsup/w32api/include/edevdefs.h
@@ -115,10 +115,6 @@
#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
diff --git a/winsup/w32api/include/errors.h b/winsup/w32api/include/errors.h
index ee2092932..9cabd7a23 100644
--- a/winsup/w32api/include/errors.h
+++ b/winsup/w32api/include/errors.h
@@ -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);
diff --git a/winsup/w32api/include/evcode.h b/winsup/w32api/include/evcode.h
index 5362e11e4..11426e455 100644
--- a/winsup/w32api/include/evcode.h
+++ b/winsup/w32api/include/evcode.h
@@ -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
@@ -51,5 +56,13 @@
#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
index 000000000..fea328e7c
--- /dev/null
+++ b/winsup/w32api/include/il21dec.h
@@ -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
index 000000000..7154eae60
--- /dev/null
+++ b/winsup/w32api/include/ks.h
@@ -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
index 000000000..906649dec
--- /dev/null
+++ b/winsup/w32api/include/ksmedia.h
@@ -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
index 000000000..9867db00c
--- /dev/null
+++ b/winsup/w32api/include/mmreg.h
@@ -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
diff --git a/winsup/w32api/include/mmsystem.h b/winsup/w32api/include/mmsystem.h
index e7187fd1a..a309c938b 100644
--- a/winsup/w32api/include/mmsystem.h
+++ b/winsup/w32api/include/mmsystem.h
@@ -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
index 000000000..9d8a21821
--- /dev/null
+++ b/winsup/w32api/include/mpegtype.h
@@ -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
index 000000000..a697450bf
--- /dev/null
+++ b/winsup/w32api/include/strmif.h
@@ -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
index 000000000..be9260f0e
--- /dev/null
+++ b/winsup/w32api/include/vidcap.h
@@ -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
index 000000000..9c5cd8d8c
--- /dev/null
+++ b/winsup/w32api/include/vmr9.h
@@ -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
index 000000000..d90d614f6
--- /dev/null
+++ b/winsup/w32api/include/vptype.h
@@ -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
index 000000000..e61e8ac5a
--- /dev/null
+++ b/winsup/w32api/include/xprtdefs.h
@@ -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