procedure TForm1.GOClick(Sender: TObject);
var Filter: IBaseFilter;
FileSink: IFileSinkFilter;
begin
FilterGraph.Active := true;
with FilterGraph as ICaptureGraphBuilder2 do
begin
SetOutputFileName(MEDIASUBTYPE_Avi, StringToOleStr(Output.Text), Filter, FileSink);
ShowFilterPropertyPage(Self.Handle, DivXEncoder as IBaseFilter, ppVFWCompConfig);
OpenDialog.Title := 'Select Video File';
if OpenDialog.Execute then
begin
with FileSource as IFileSourceFilter do Load(StringToOleStr(OpenDialog.FileName), nil);
RenderStream(nil, nil, FileSource as IBaseFilter, DivXEncoder as IBaseFilter, Filter);
RenderStream(nil, nil, FileSource as IBaseFilter, DivXEncoder as IBaseFilter, Filter);
FilterGraph.Play;
end;
end;
end;
procedure TForm1.FilterGraphDSEvent(sender: TComponent; Event, Param1,
Param2: Integer);
begin
memo1.Lines.Add(GetEventCodeDef(Event))
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
FilterGraph.ClearGraph;
FilterGraph.Active := false;
end;