Question

I need to play some video via DsPack from StartPosition to EndPosition. I have written a simple piece of code that allows to specify StartPosition:

  FilterGraph1.Active := true;
  VideoWindow1.FilterGraph:= FilterGraph1;
  FilterGraph1.RenderFile('C:\Users\idsa\Documents\ENGLISH_2\ENGLISH_2\0001\0.avi');
  FilterGraph1.Position := 10000;
  FilterGraph1.Play;

But how can I specify StopPosition?

Was it helpful?

Solution

Thanks FreeConsulting for a hint. Here is the final code.

uses DirectShow9;

...

procedure TForm1.FormShow(Sender: TObject);
var
  MediaSeeking: IMediaSeeking;
  Start: Int64;
  Stop: Int64;
begin
  FilterGraph1.Active := true;
  VideoWindow1.FilterGraph:= FilterGraph1;
  FilterGraph1.RenderFile('fileName');
  FilterGraph1.QueryInterface(IMediaSeeking, MediaSeeking);

  Start := 0;
  Stop := 10 * 10000000;

  MediaSeeking.SetPositions(Start, AM_SEEKING_AbsolutePositioning, Stop, AM_SEEKING_AbsolutePositioning);

  FilterGraph1.Play;
end;
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top