In the SDK it says that an imagecopy will be done from the current "rendered" frame. So as I understood up to now that Dshow stuff works as following.
- Create a Graph
- Add/remove Filters if wanted
- Render the Graph or renderfromfile()
- Play
This is the Dshow "intelligent connect" way.
So you could try without playing by just only seeking to the timestamp of the wanted frame/image and see if Dshow internally does "render" that current frame.
Now do capture that image using The Dshow include's Command and open the resulting bmp
Or just alter the LoadMedia(...) command of the include and search for the following lines:
Code: Select all
If *p\pGraphBuilder\RenderFile(L(filename), #Null) = #S_OK
If Parent
*p\pVideo\get_SourceWidth(@vw) : *p\pWindow\put_width(vw)
*p\pVideo\get_SourceHeight(@vh) : *p\pWindow\put_Height(vh)
*p\pWindow\put_Left(0)
*p\pWindow\put_Top(0)
*p\pWindow\put_Owner(Parent)
*p\pWindow\put_WindowStyle(#WS_CHILD| #WS_CLIPSIBLINGS)
*p\pWindow\put_Visible(#OATRUE)
As you can see "put_Visible(#OATRUE)" in the last line is self explaining, so do your test by setting it to #False (watch out #OATRUE is -1 !). Well maybe there's a quite more senseful way in Dshow, but this should fit to your needs ... imho
But honestly .... don't you want WYSIWYG ? Or do you want to end up in a continous imagesequence on your HD?