我正在创建一个显示视频的程序,为此我正在使用Delphi和DirectShow。我需要选择视频输入格式(NTSC,PAL,SECAM)。有一个对话框可以让您进行选择,但是我不知道如何使用delphi或c +和directshow显示它。显示允许您选择模拟视频标准的对话框的过程是什么?
谢谢!
最佳答案
function DisplayPropertyFrame(Filter: IBaseFilter; Handle: THandle): HResult;
var
PropertyPages: ISpecifyPropertyPages;
Pages: CAUUID;
FilterInfo: TFilterInfo;
pfilterUnk: IUnknown;
begin
Result := E_FAIL;
if Filter = NIL then EXIT;
Result := Filter.QueryInterface(ISpecifyPropertyPages, PropertyPages);
if (SUCCEEDED(Result)) then
begin
Filter.QueryFilterInfo(FilterInfo);
Filter.QueryInterface(IUnknown, pfilterUnk);
PropertyPages.GetPages(Pages);
PropertyPages := NIL;
OleCreatePropertyFrame(
Handle,
0,
0,
FilterInfo.achName,
1,
@pfilterUnk,
Pages.cElems,
Pages.pElems,
0,
0,
NIL
);
pfilterUnk := NIL;
FilterInfo.pGraph := NIL;
CoTaskMemFree(Pages.pElems);
end;
end;
function DisplayVideoCaptureDeviceProperty( Handle: THandle): HResult;
begin
Result := DisplayPropertyFrame(VideoCaptureFilter, Handle);
end;