diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index 69dd0fa10..6c96a905f 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,33 @@ +2006-05-10 Dimitri Papadopoulos + + * include/amvideo.h (RESET_MASKS,RESET_PALETTE): Use ZeroMemory instead + of memset to avoid . 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 * include/winnls.h [WINVER >= 0x0500] (LOCALE_IDEFAULTEBCDICCODEPAGE): @@ -82,8 +112,8 @@ 2006-05-03 Dimitri Papadopoulos - * 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 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 +#include #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 +#endif +#ifndef _WINGDI_H +#include +#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 #include #include #include #include #include #include - +#include +#include +#include +#include +#include +#include +#include /* DDSCAPS2, DDPIXELFORMAT */ +#ifndef _WINGDI_H +#include /* 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 +#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 +#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 + +#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