Я создаю программу, которая отображает видео, для этого я использую 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;
Других решений пока нет …