?? dshow.pas
字號(hào):
function IsPreroll: HResult; stdcall;
function SetPreroll(bIsPreroll: BOOL): HResult; stdcall;
function GetActualDataLength: Longint; stdcall;
function SetActualDataLength(lLen: Longint): HResult; stdcall;
function GetMediaType(var ppMediaType: PAM_Media_Type): HResult; stdcall;
function SetMediaType(const pMediaType: TAM_Media_Type): HResult; stdcall;
function IsDiscontinuity: HResult; stdcall;
function SetDiscontinuity(bDiscontinuity: BOOL): HResult; stdcall;
function GetMediaTime(var pTimeStart, pTimeEnd: TReference_Time): HResult; stdcall;
function SetMediaTime(var pTimeStart, pTimeEnd: TReference_Time): HResult; stdcall;
end;
const
AM_SAMPLE_SPLICEPOINT = $1;
AM_SAMPLE_PREROLL = $2;
AM_SAMPLE_DATADISCONTINUITY = $4;
AM_SAMPLE_TYPECHANGED = $8;
AM_SAMPLE_TIMEVALID = $10;
AM_SAMPLE_TIMEDISCONTINUITY = $40;
AM_SAMPLE_FLUSH_ON_PAUSE = $80;
AM_SAMPLE_STOPVALID = $100;
AM_SAMPLE_ENDOFSTREAM = $200;
AM_STREAM_MEDIA = 0;
AM_STREAM_CONTROL = 1;
type
TAM_Sample2_Properties = record
cbData: DWORD;
dwTypeSpecificFlags: DWORD;
dwSampleFlags: DWORD;
lActual: Longint;
tStart: TReference_Time;
tStop: TReference_Time;
dwStreamId: DWORD;
pMediaType: PAM_Media_Type;
pbBuffer: Pointer;
cbBuffer: Longint;
end;
type
IMediaSample2 = interface(IMediaSample)
['{36B73884-C2C8-11CF-8B46-00805F6CEF60}']
function GetProperties(cbProperties: DWORD; var pbProperties): HResult; stdcall;
function SetProperties(cbProperties: DWORD; const pbProperties): HResult; stdcall;
end;
const
AM_GBF_PREVFRAMESKIPPED = 1;
AM_GBF_NOTASYNCPOINT = 2;
AM_GBF_NOWAIT = 4;
type
IMemAllocator = interface(IUnknown)
['{56A8689C-0AD4-11CE-B03A-0020AF0BA770}']
function SetProperties(const pRequest: TAllocator_Properties;
var pActual: TAllocator_Properties): HResult; stdcall;
function GetProperties(var pProps: TAllocator_Properties): HResult; stdcall;
function Commit: HResult; stdcall;
function Decommit: HResult; stdcall;
function GetBuffer(out ppBuffer: IMediaSample;
var pStartTime, pEndTime: TReference_Time; dwFlags: DWORD): HResult; stdcall;
function ReleaseBuffer(pBuffer: IMediaSample): HResult; stdcall;
end;
IMemInputPin = interface(IUnknown)
['{56A8689D-0AD4-11CE-B03A-0020AF0BA770}']
function GetAllocator(out ppAllocator: IMemAllocator): HResult; stdcall;
function NotifyAllocator(pAllocator: IMemAllocator; bReadOnly: BOOL): HResult; stdcall;
function GetAllocatorRequirements(var pProps: TAllocator_Properties): HResult; stdcall;
function Receive(pSample: IMediaSample): HResult; stdcall;
function ReceiveMultiple(const pSamples; nSamples: Longint;
var nSamplesProcessed: Longint): HResult; stdcall;
function ReceiveCanBlock: HResult; stdcall;
end;
IAMovieSetup = interface(IUnknown)
['{A3D8CEC0-7E5A-11CF-BBC5-00805F6CEF20}']
function Register: HResult; stdcall;
function Unregister: HResult; stdcall;
end;
const
AM_SEEKING_NoPositioning = 0;
AM_SEEKING_AbsolutePositioning = $1;
AM_SEEKING_RelativePositioning = $2;
AM_SEEKING_IncrementalPositioning = $3;
AM_SEEKING_PositioningBitsMask = $3;
AM_SEEKING_SeekToKeyFrame = $4;
AM_SEEKING_ReturnTime = $8;
AM_SEEKING_Segment = $10;
AM_SEEKING_NoFlush = $20;
AM_SEEKING_CanSeekAbsolute = $1;
AM_SEEKING_CanSeekForwards = $2;
AM_SEEKING_CanSeekBackwards = $4;
AM_SEEKING_CanGetCurrentPos = $8;
AM_SEEKING_CanGetStopPos = $10;
AM_SEEKING_CanGetDuration = $20;
AM_SEEKING_CanPlayBackwards = $40;
AM_SEEKING_CanDoSegments = $80;
AM_SEEKING_Source = $100;
type
IMediaSeeking = interface(IUnknown)
['{36B73880-C2C8-11CF-8B46-00805F6CEF60}']
function GetCapabilities(var pCapabilities: DWORD): HResult; stdcall;
function CheckCapabilities(var pCapabilities: DWORD): HResult; stdcall;
function IsFormatSupported(const pFormat: TGUID): HResult; stdcall;
function QueryPreferredFormat(var pFormat: TGUID): HResult; stdcall;
function GetTimeFormat(var pFormat: TGUID): HResult; stdcall;
function IsUsingTimeFormat(const pFormat: TGUID): HResult; stdcall;
function SetTimeFormat(const pFormat: TGUID): HResult; stdcall;
function GetDuration(var pDuration: LONGLONG): HResult; stdcall;
function GetStopPosition(var pStop: LONGLONG): HResult; stdcall;
function GetCurrentPosition(var pCurrent: LONGLONG): HResult; stdcall;
function ConvertTimeFormat(var pTarget: LONGLONG; const pTargetFormat: TGUID;
Source: LONGLONG; const pSourceFormat: TGUID): HResult; stdcall;
function SetPositions(var pCurrent: LONGLONG; dwCurrentFlags: DWORD;
var pStop: LONGLONG; dwStopFlags: DWORD): HResult; stdcall;
function GetPositions(var pCurrent, pStop: LONGLONG): HResult; stdcall;
function GetAvailable(var pEarliest, pLatest: LONGLONG): HResult; stdcall;
function SetRate(dRate: double): HResult; stdcall;
function GetRate(var pdRate: double): HResult; stdcall;
function GetPreroll(var pllPreroll: LONGLONG): HResult; stdcall;
end;
const
AM_MEDIAEVENT_NONOTIFY = $01;
type
TRefFilter = record
Clsid: TGUID;
Name: LPWSTR;
end;
PRefFilter = ^TRefFilter;
IEnumRegFilters = interface(IUnknown)
['{56A868A4-0AD4-11CE-B03A-0020AF0BA770}']
function Next(cFilters: ULONG; var apRegFilter: PRefFilter;
var pcFetched: ULONG): HResult; stdcall;
function Skip(cFilters: ULONG): HResult; stdcall;
function Reset: HResult; stdcall;
function Clone(out ppEnum: IEnumRegFilters): HResult; stdcall;
end;
const
MERIT_PREFERRED = $800000;
MERIT_NORMAL = $600000;
MERIT_UNLIKELY = $400000;
MERIT_DO_NOT_USE = $200000;
MERIT_SW_COMPRESSOR = $100000;
MERIT_HW_COMPRESSOR = $100050;
type
IFilterMapper = interface(IUnknown)
['{56A868A3-0AD4-11CE-B03A-0020AF0BA770}']
function RegisterFilter(const clsid: TGUID; Name: LPCWSTR; dwMerit: DWORD): HResult; stdcall;
function RegisterFilterInstance(const clsid: TGUID; Name: LPCWSTR;
var MRId: TGUID): HResult; stdcall;
function RegisterPin(const Filter: TGUID; Name: LPCWSTR;
bRendered, bOutput, bZero, bMany: BOOL; const ConnectsToFilter: TGUID;
ConnectsToPin: LPCWSTR): HResult; stdcall;
function RegisterPinType(const clsFilter: TGUID; strName: LPCWSTR;
const clsMajorType, clsSubType: TGUID): HResult; stdcall;
function UnregisterFilter(const Filter: TGUID): HResult; stdcall;
function UnregisterFilterInstance(const MRId: TGUID): HResult; stdcall;
function UnregisterPin(const Filter: TGUID; Name: LPCWSTR): HResult; stdcall;
function EnumMatchingFilters(out ppEnum: IEnumRegFilters; dwMerit: DWORD;
bInputNeeded: BOOL; const clsInMaj, clsInSub: TGUID;
bRender, bOututNeeded: BOOL; const clsOutMaj, clsOutSub: TGUID): HResult; stdcall;
end;
PRefInTypes = ^TRefInTypes;
TRefInTypes = record
clsMajorType: PGUID;
clsMinorType: PGUID;
end;
PRegFilterPins = ^TRegFilterPins;
TRegFilterPins = record
strName: LPWSTR;
bRendered: BOOL;
bOutput: BOOL;
bZero: BOOL;
bMany: BOOL;
oFilter: PGUID;
strConnectsToPin: PWCHAR;
nMediaTypes: UINT;
lpMediaType: PRefInTypes;
end;
PRegPinMedium = ^TRegPinMedium;
TRegPinMedium = record
clsMedium: TGUID;
dw1: DWORD;
dw2: DWORD;
end;
const
REG_PINFLAG_B_ZERO = $1;
REG_PINFLAG_B_RENDERER = $2;
REG_PINFLAG_B_MANY = $4;
REG_PINFLAG_B_OUTPUT = $8;
type
PRegFilterPins2 = ^TRegFilterPins2;
TRegFilterPins2 = record
dwFlags: DWORD;
cInstances: UINT;
nMediaTypes: UINT;
lpMediaType: PRefInTypes;
lpMedium: PRegPinMedium;
clsPinCategory: PGUID;
end;
TRegFilter2 = record
dwVersion: DWORD;
dwMerit: DWORD;
case Integer of
0: (
cPins: ULONG;
cPins2: ULONG;
);
1: (
rgPins: PRegFilterPins;
rgPins2: PRegFilterPins2;
);
end;
IFilterMapper2 = interface(IUnknown)
['{B79BB0B0-33C1-11D1-ABE1-00A0C905F375}']
function CreateCategory(const clsidCategory: TGUID; dwCategoryMerit: DWORD;
Description: LPCWSTR): HResult; stdcall;
function UnregisterFilter(const pclsidCategory: TGUID;
szInstance: PWCHAR; const Filter: TGUID): HResult; stdcall;
function RegisterFilter(const clsidFilter: TGUID; Name: LPCWSTR;
out ppMoniker: IMoniker; const pclsidCategory: TGUID;
szInstance: PWCHAR; const prf2: TRegFilter2): HResult; stdcall;
function EnumMatchingFilters(out ppEnum: IEnumMoniker; dwFlags: DWORD;
bExactMatch: BOOL; dwMerit: DWORD; bInputNeeded: BOOL; cInputTypes: DWORD;
const pInputTypes, pPinCategoryIn: TGUID; bRender, bOutputNeeded: BOOL;
cOutputTypes: DWORD; const pMedOut: TRegPinMedium;
const pPinCategoryOut: TGUID): HResult; stdcall;
end;
TQualityMessageType = (
Famine,
Flood
);
TQuality = record
Typ: TQualityMessageType;
Proportion: Longint;
Late: TReference_Time;
TimeStamp: TReference_Time;
end;
IQualityControl = interface(IUnknown)
['{56A868A5-0AD4-11CE-B03A-0020AF0BA770}']
function Notify(pSelf: IBaseFilter; q: TQuality): HResult; stdcall;
function SetSink(piqc: IQualityControl): HResult; stdcall;
end;
const
CK_NOCOLORKEY = $0;
CK_INDEX = $1;
CK_RGB = $2;
type
TColorKey = record
KeyType: DWORD;
PaletteIndex: DWORD;
LowColorValue: COLORREF;
HighColorValue: COLORREF;
end;
const
ADVISE_NONE = 0;
ADVISE_CLIPPING = $1;
ADVISE_PALETTE = $2;
ADVISE_COLORKEY = $4;
ADVISE_POSITION = $8;
ADVISE_ALL = ADVISE_CLIPPING or ADVISE_PALETTE or ADVISE_COLORKEY or ADVISE_POSITION;
type
IOverlayNotify = interface(IUnknown)
['{56A868A0-0AD4-11CE-B03A-0020AF0BA770}']
function OnPaletteChange(dwColors: DWORD; const pPalette): HResult; stdcall;
function OnClipChange(const pSourceRect, pDestinationRect: TRect;
const pRgnData: TRgnData): HResult; stdcall;
function OnColorKeyChange(const pColorKey: TColorKey): HResult; stdcall;
function OnPositionChange(const pSourceRect, pDestinationRect: TRect): HResult; stdcall;
end;
IOverlay = interface(IUnknown)
['{56A868A1-0AD4-11CE-B03A-0020AF0BA770}']
function GetPalette(var pdwColors: DWORD; var ppPalette): HResult; stdcall;
function SetPalette(dwColors: DWORD; const pPalette): HResult; stdcall;
function GetDefaultColorKey(var pColorKey: TColorKey): HResult; stdcall;
function GetColorKey(var pColorKey: TColorKey): HResult; stdcall;
function SetColorKey(const pColorKey: TColorKey): HResult; stdcall;
function GetWindowHandle(var pHwnd: HWND): HResult; stdcall;
function GetClipList(var pSourceRect, pDestinationRect: TRect;
var ppRgnData: PRgnData): HResult; stdcall;
function GetVideoPosition(var pSourceRect, pDestinationRect: TRect): HResult; stdcall;
function Advise(pOverlayNotify: IOverlayNotify; dwInterests: DWORD): HResult; stdcall;
function Unadvise: HResult; stdcall;
end;
IMediaEventSink = interface(IUnknown)
['{56A868A2-0AD4-11CE-B03A-0020AF0BA770}']
function Notify(EventCode, EventParam1, EventParam2: Longint): HResult; stdcall;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -