strmif.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 1,160 行 · 第 1/3 页
H
1,160 行
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;
**********/
/*--- DirectShow Reference - Interfaces */
#define INTERFACE IAMAnalogVideoDecoder
DECLARE_INTERFACE_(IAMAnalogVideoDecoder, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(HRESULT,get_AvailableTVFormats)(THIS_ long*) PURE;
STDMETHOD_(HRESULT,get_HorizontalLocked)(THIS_ long*) PURE;
STDMETHOD_(HRESULT,get_NumberOfLines)(THIS_ long*) PURE;
STDMETHOD_(HRESULT,get_OutputEnable)(THIS_ long*) PURE;
STDMETHOD_(HRESULT,get_TVFormat)(THIS_ long*) PURE;
STDMETHOD_(HRESULT,get_VCRHorizontalLocking)(THIS_ long*) PURE;
STDMETHOD_(HRESULT,put_OutputEnable)(THIS_ long) PURE;
STDMETHOD_(HRESULT,put_TVFormat)(THIS_ long) PURE;
STDMETHOD_(HRESULT,put_VCRHorizontalLocking)(THIS_ long) PURE;
};
#undef INTERFACE
#define INTERFACE IAMAudioInputMixer
DECLARE_INTERFACE_(IAMAudioInputMixer, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(HRESULT,get_Bass)(THIS_ double*) PURE;
STDMETHOD_(HRESULT,get_BassRange)(THIS_ double*) PURE;
STDMETHOD_(HRESULT,get_Enable)(THIS_ BOOL*) PURE;
STDMETHOD_(HRESULT,get_Loudness)(THIS_ BOOL*) PURE;
STDMETHOD_(HRESULT,get_MixLevel)(THIS_ double*) PURE;
STDMETHOD_(HRESULT,get_Mono)(THIS_ BOOL*) PURE;
STDMETHOD_(HRESULT,get_Pan)(THIS_ double*) PURE;
STDMETHOD_(HRESULT,get_Treble)(THIS_ double*) PURE;
STDMETHOD_(HRESULT,get_TrebleRange)(THIS_ double*) PURE;
STDMETHOD_(HRESULT,put_Bass)(THIS_ double) PURE;
STDMETHOD_(HRESULT,put_Enable)(THIS_ BOOL) PURE;
STDMETHOD_(HRESULT,put_Loudness)(THIS_ BOOL) PURE;
STDMETHOD_(HRESULT,put_MixLevel)(THIS_ double) PURE;
STDMETHOD_(HRESULT,put_Mono)(THIS_ BOOL) PURE;
STDMETHOD_(HRESULT,put_Pan)(THIS_ double) PURE;
STDMETHOD_(HRESULT,put_Treble)(THIS_ double) PURE;
};
#undef INTERFACE
#define INTERFACE IAMAudioRendererStats
DECLARE_INTERFACE_(IAMAudioRendererStats, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(HRESULT,GetStatParam)(THIS_ DWORD,DWORD*,DWORD*) PURE;
};
#undef INTERFACE
#define INTERFACE IAMBufferNegotiation
DECLARE_INTERFACE_(IAMBufferNegotiation, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(HRESULT,GetAllocatorProperties)(THIS_ ALLOCATOR_PROPERTIES*) PURE;
STDMETHOD_(HRESULT,SuggestAllocatorProperties)(THIS_ const ALLOCATOR_PROPERTIES*) PURE;
};
#undef INTERFACE
#define INTERFACE IAMCameraControl
DECLARE_INTERFACE_(IAMCameraControl, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(HRESULT,Get)(THIS_ long,long*,long*) PURE;
STDMETHOD_(HRESULT,GetRange)(THIS_ long,long*,long*,long*,long*,long*) PURE;
STDMETHOD_(HRESULT,Set)(THIS_ long,long,long) PURE;
};
#undef INTERFACE
#define INTERFACE IAMCertifiedOutputProtection
DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
STDMETHOD_(HRESULT,KeyExchange)(THIS_ GUID*,BYTE**,DWORD*) PURE;
STDMETHOD_(HRESULT,ProtectionCommand)(THIS_ const AMCOPPCommand*) PURE;
STDMETHOD_(HRESULT,ProtectionStatus)(THIS_ const AMCOPPStatusInput*,AMCOPPStatusOutput*) PURE;
STDMETHOD_(HRESULT,SessionSequenceStart)(THIS_ const AMCOPPSignature*) PURE;
};
#undef INTERFACE
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?