?? dshow.pas
字號:
end;
IFileSourceFilter = interface(IUnknown)
['{56A868A6-0AD4-11CE-B03A-0020AF0BA770}']
function Load(pszFileName: PWCHAR; const pmt: TAM_Media_Type): HResult; stdcall;
function GetCurFile(var ppszFileName: POLESTR; out pmt: TAM_Media_Type): HResult; stdcall;
end;
IFileSinkFilter = interface(IUnknown)
['{A2104830-7C70-11CF-8BCE-00AA00A3F1A6}']
function SetFileName(pszFileName: POLESTR; const pmt: TAM_Media_Type): HResult; stdcall;
function GetCurFile(var ppszFileName: POLESTR; out pmt: TAM_Media_Type): HResult; stdcall;
end;
IFileSinkFilter2 = interface(IFileSinkFilter)
['{00855B90-CE1B-11D0-BD4F-00A0C911CE86}']
function SetMode(dwFlags: DWORD): HResult; stdcall;
function GetMode(var pdwFlags: DWORD): HResult; stdcall;
end;
TAM_FileSink_Flags = (
AM_FILE_INVALID_0,
AM_FILE_OVERWRITE
);
PAsyncIOReq = ^TAsyncIOReq;
TAsyncIOReq = record
engine: array[0..3] of DWORD;
lpv: Pointer;
cb: DWORD;
dwError: DWORD;
cbDone: DWORD;
liPos: TLargeInteger;
hEvent: DWORD;
dwUser: DWORD;
end;
IFileAsyncIO = interface(IUnknown)
['{56A868A7-0AD4-11CE-B03A-0020AF0BA770}']
function QueryAlignment(var pdwAlign: DWORD): HResult; stdcall;
function Read(const pReq: TAsyncIOReq): HResult; stdcall;
function Write(const pReq: TAsyncIOReq): HResult; stdcall;
function WaitForNext(var ppReq: PAsyncIOReq;
dwTimeout: DWORD): HResult; stdcall;
function WaitForSpecific(var pReq: TAsyncIOReq;
dwTimeout: DWORD): HResult; stdcall;
function DiscardPending: HResult; stdcall;
function Flush: HResult; stdcall;
end;
IGraphBuilder = interface(IFilterGraph)
['{56A868A9-0AD4-11CE-B03A-0020AF0BA770}']
function Connect(ppinOut, ppinIn: IPin): HResult; stdcall;
function Render(ppinOut: IPin): HResult; stdcall;
function RenderFile(lpcwstrFile, lpcwstrPlayList: LPCWSTR): HResult; stdcall;
function AddSourceFilter(lpcwstrFileName, lpcwstrFilterName: LPCWSTR;
out ppFilter: IBaseFilter): HResult; stdcall;
function SetLogFile(hFile: THandle): HResult; stdcall;
function Abort: HResult; stdcall;
function ShouldOperationContinue: HResult; stdcall;
end;
IAMCopyCaptureFileProgress = interface;
ICaptureGraphBuilder = interface(IUnknown)
['{BF87B6E0-8C27-11D0-B3F0-00AA003761C5}']
function SetFiltergraph(pfg: IGraphBuilder): HResult; stdcall;
function GetFiltergraph(out ppfg: IGraphBuilder): HResult; stdcall;
function SetOutputFileName(const pType: TGUID; lpstrFile: PWCHAR;
out ppf: IBaseFilter; out ppSink: IFileSinkFilter): HResult; stdcall;
function FindInterface(const pCategory: TGUID; pf: IBaseFilter;
const riid: TGUID; out ppint): HResult; stdcall;
function RenderStream(const pCategory: TGUID; pSource: IUnknown;
pfCompressor, pfRenderer: IBaseFilter): HResult; stdcall;
function ControlStream(const pCategory: TGUID; pFilter: IBaseFilter;
const pstart, pstop: TReference_Time; wStartCookie, wStopCookie: WORD): HResult; stdcall;
function AllocCapFile(lpstr: PWCHAR; dwlSize: LONGLONG): HResult; stdcall;
function CopyCaptureFile(lpwstrOld, lpwstrNew: PWCHAR; fAllowEscAbort: Integer;
pCallback: IAMCopyCaptureFileProgress): HResult; stdcall;
end;
IAMCopyCaptureFileProgress = interface(IUnknown)
['{670D1D20-A068-11D0-B3F0-00AA003761C5}']
function Progress(iProgress: Integer): HResult; stdcall;
end;
const
AM_RENDEREX_RENDERTOEXISTINGRENDERERS = $01;
type
IFilterGraph2 = interface(IGraphBuilder)
['{36B73882-C2C8-11CF-8B46-00805F6CEF60}']
function AddSourceFilterForMoniker(pMoniker: IMoniker; pCtx: IBindCtx;
lpcwstrFilterName: LPCWSTR; out ppFilter: IBaseFilter): HResult; stdcall;
function ReconnectEx(ppin: IPin; const pmt: TAM_Media_Type): HResult; stdcall;
function RenderEx(pPinOut: IPin; dwFlags: DWORD; pvContext: Pointer): HResult; stdcall;
end;
IStreamBuilder = interface(IUnknown)
['{56A868BF-0AD4-11CE-B03A-0020AF0BA770}']
function Render(ppinOut: IPin; pGraph: IGraphBuilder): HResult; stdcall;
function Backout(ppinOut: IPin; pGraph: IGraphBuilder): HResult; stdcall;
end;
IAsyncReader = interface(IUnknown)
['{56A868AA-0AD4-11CE-B03A-0020AF0BA770}']
function RequestAllocator(pPreferred: IMemAllocator;
const pProps: TAllocator_Properties; out ppActual: IMemAllocator): HResult; stdcall;
function Request(pSample: IMediaSample; dwUser: DWORD): HResult; stdcall;
function WaitForNext(dwTimeout: DWORD; out ppSample: IMediaSample;
var pdwUser: DWORD): HResult; stdcall;
function SyncReadAligned(pSample: IMediaSample): HResult; stdcall;
function SyncRead(llPosition: LONGLONG; lLength: Longint; var pBuffer): HResult; stdcall;
function Length(var pTotal, pAvailable: LONGLONG): HResult; stdcall;
function BeginFlush: HResult; stdcall;
function EndFlush: HResult; stdcall;
end;
IGraphVersion = interface(IUnknown)
['{56A868AB-0AD4-11CE-B03A-0020AF0BA770}']
function QueryVersion(var pVersion: Longint): HResult; stdcall;
end;
IResourceConsumer = interface(IUnknown)
['{56A868AD-0AD4-11CE-B03A-0020AF0BA770}']
function AcquireResource(idResource: Longint): HResult; stdcall;
function ReleaseResource(idResource: Longint): HResult; stdcall;
end;
IResourceManager = interface(IUnknown)
['{56A868AC-0AD4-11CE-B03A-0020AF0BA770}']
function Register(pName: LPCWSTR; cResource: Longint;
var plToken: Longint): HResult; stdcall;
function RegisterGroup(pName: LPCWSTR; cResource: Longint;
const palTokens: Longint; var plToken: Longint): HResult; stdcall;
function RequestResource(idResource: Longint; pFocusObject: IUnknown;
pConsumer: IResourceConsumer): HResult; stdcall;
function NotifyAcquire(idResource: Longint; pConsumer: IResourceConsumer;
hr: HResult): HResult; stdcall;
function NotifyRelease(idResource: Longint; pConsumer: IResourceConsumer;
bStillWant: BOOL): HResult; stdcall;
function CancelRequest(idResource: Longint; pConsumer: IResourceConsumer): HResult; stdcall;
function SetFocus(pFocusObject: IUnknown): HResult; stdcall;
function ReleaseFocus(pFocusObject: IUnknown): HResult; stdcall;
end;
IDistributorNotify = interface(IUnknown)
['{56A868AF-0AD4-11CE-B03A-0020AF0BA770}']
function Stop: HResult; stdcall;
function Pause: HResult; stdcall;
function Run(tStart: TReference_Time): HResult; stdcall;
function SetSyncSource(pClock: IReferenceClock): HResult; stdcall;
function NotifyGraphChange: HResult; stdcall;
end;
const
AM_STREAM_INFO_START_DEFINED = $1;
AM_STREAM_INFO_STOP_DEFINED = $2;
AM_STREAM_INFO_DISCARDING = $4;
AM_STREAM_INFO_STOP_SEND_EXTRA = $10;
type
{TAM_Stream_Info_Flags = (
AM_STREAM_INFO_INVALID_0,
AM_STREAM_INFO_START_DEFINED,
AM_STREAM_INFO_INVALID_1,
AM_STREAM_INFO_STOP_DEFINED,
AM_STREAM_INFO_INVALID_3,
AM_STREAM_INFO_DISCARDING,
AM_STREAM_INFO_INVALID_4,
AM_STREAM_INFO_INVALID_5,
AM_STREAM_INFO_INVALID_6,
AM_STREAM_INFO_INVALID_7,
AM_STREAM_INFO_INVALID_8,
AM_STREAM_INFO_INVALID_9,
AM_STREAM_INFO_INVALID_10,
AM_STREAM_INFO_INVALID_11,
AM_STREAM_INFO_INVALID_12,
AM_STREAM_INFO_INVALID_13,
AM_STREAM_INFO_INVALID_14,
AM_STREAM_INFO_INVALID_15,
AM_STREAM_INFO_STOP_SEND_EXTRA
);
}
TAM_Stream_Info = record
tStart: TReference_Time;
tStop: TReference_Time;
dwStartCookie: DWORD;
dwStopCookie: DWORD;
dwFlags: DWORD;
end;
IAMStreamControl = interface(IUnknown)
['{36b73881-c2c8-11cf-8b46-00805f6cef60}']
function StartAt(const ptStart: TReference_Time; dwCookie: DWORD): HResult; stdcall;
function StopAt(const ptStop: TReference_Time; bSendExtra: BOOL;
dwCookie: DWORD): HResult; stdcall;
function GetInfo(out pInfo: TAM_Stream_Info): HResult; stdcall;
end;
ISeekingPassThru = interface(IUnknown)
['{36B73883-C2C8-11CF-8B46-00805F6CEF60}']
function Init(bSupportRendering: BOOL; pPin: IPin): HResult; stdcall;
end;
TVideo_Stream_Config_Caps = record
guid: TGUID;
VideoStandard: ULONG;
InputSize: TSize;
MinCroppingSize: TSize;
MaxCroppingSize: TSize;
CropGranularityX: Integer;
CropGranularityY: Integer;
CropAlignX: Integer;
CropAlignY: Integer;
MinOutputSize: TSize;
MaxOutputSize: TSize;
OutputGranularityX: Integer;
OutputGranularityY: Integer;
StretchTapsX: Integer;
StretchTapsY: Integer;
ShrinkTapsX: Integer;
ShrinkTapsY: Integer;
MinFrameInterval: LONGLONG;
MaxFrameInterval: LONGLONG;
MinBitsPerSecond: Longint;
MaxBitsPerSecond: Longint;
end;
TAudio_Stream_Config_Caps = record
guid: TGUID;
MinimumChannels: ULONG;
MaximumChannels: ULONG;
ChannelsGranularity: ULONG;
MinimumBitsPerSample: ULONG;
MaximumBitsPerSample: ULONG;
BitsPerSampleGranularity: ULONG;
MinimumSampleFrequency: ULONG;
MaximumSampleFrequency: ULONG;
SampleFrequencyGranularity: ULONG;
end;
IAMStreamConfig = interface(IUnknown)
['{C6E13340-30AC-11d0-A18C-00A0C9118956}']
function SetFormat(const pmt: TAM_Media_Type): HResult; stdcall;
function GetFormat(var ppmt: PAM_Media_Type): HResult; stdcall;
function GetNumberOfCapabilities(var piCount, piSize: Integer): HResult; stdcall;
function GetStreamCaps(iIndex: Integer; var ppmt: PAM_Media_Type;
var pSCC): HResult; stdcall;
end;
TInterleavingMode = (
INTERLEAVE_NONE,
INTERLEAVE_CAPTURE,
INTERLEAVE_FULL
);
IConfigInterleaving = interface(IUnknown)
['{BEE3D220-157B-11d0-BD23-00A0C911CE86}']
function put_Mode(mode: TInterleavingMode): HResult; stdcall;
function get_Mode(var pMode: TInterleavingMode): HResult; stdcall;
function put_Interleaving(const prtInterleave, prtPreroll: TReference_Time): HResult; stdcall;
function get_Interleaving(var prtInterleave, prtPreroll: TReference_Time): HResult; stdcall;
end;
IConfigAviMux = interface(IUnknown)
['{5ACD6AA0-F482-11ce-8B67-00AA00A3F1A6}']
function SetMasterStream(iStream: Longint): HResult; stdcall;
function GetMasterStream(var pStream: Longint): HResult; stdcall;
function SetOutputCompatibilityIndex(fOldIndex: BOOL): HResult; stdcall;
function GetOutputCompatibilityIndex(var pfOldIndex: BOOL): HResult; stdcall;
end;
const
CompressionCaps_CanQuality = $1;
CompressionCaps_CanCrunch = $2;
CompressionCaps_CanKeyFrame = $4;
CompressionCaps_CanBFrame = $8;
CompressionCaps_CanWindow = $10;
type
IAMVideoCompression = interface(IUnknown)
['{C6E13343-30AC-11d0-A18C-00A0C9118956}']
function put_KeyFrameRate(KeyFrameRate: Longint): HResult; stdcall;
function get_KeyFrameRate(pKeyFrameRate: Longint): HResult; stdcall;
function put_PFramesPerKeyFrame(PFramesPerKeyFrame: Longint): HResult; stdcall;
function get_PFramesPerKeyFrame(var pPFramesPerKeyFrame: Longint): HResult; stdcall;
function put_Quality(Quality: double): HResult; stdcall;
function get_Quality(var pQuality: double): HResult; stdcall;
function put_WindowSize(WindowSize: LONGLONG): HResult; stdcall;
function get_WindowSize(var pWindowSize: LONGLONG): HResult; stdcall;
function GetInfo(pszVersion: PWCHAR; var pcbVersion: Integer;
pszDescription: LPWSTR; var pcbDescription: Integer;
var pDefaultKeyFrameRate, pDefaultPFramesPerKey: Longint;
var pDefaultQuality: double; pCapabilities: Longint): HResult; stdcall;
function OverrideKeyFrame(FrameNumber: Longint): HResult; stdcall;
function OverrideFrameSize(FrameNumber, Size: Longint): HResult; stdcall;
end;
const
VfwCaptureDialog_Source = $1;
VfwCaptureDialog_Format = $2;
VfwCaptureDialog_Display = $4;
VfwCompressDialog_Config = $1;
VfwCompressDialog_About = $2;
type
IAMVfwCaptureDialogs = interface(IUnknown)
['{D8D715A0-6E5E-11D0-B3F0-00AA003761C5}']
function HasDialog(iDialog: Integer): HResult; stdcall;
function ShowDialog(iDialog: Integer; hwnd: HWND): HResult; stdcall;
function SendDriverMessage(iDialog: Integer; uMsg: Integer;
dw1, dw2: Longint): HResult; stdcall;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -