[Ffmpeg-devel] Re: directshow grab device?

Aaron Griffin aaronmgriffin
Fri Apr 20 22:58:50 CEST 2007

On 4/20/07, Ramiro Ribeiro Polla <ramiro at lisha.ufsc.br> wrote:
> Hello,
> Aaron Griffin wrote:
> > Hey all,
> > I've looked through the archives, though not exhaustively, but I can't
> > seem to find a windows based grab device for libavformat besides
> > drffmpeg.
> >
> > I'm curious if anyone has actually done work on this, and if the
> > ffmpeg people would be interested in this.  The reason being that I am
> > currently writing a (commercial) app which does just this, and I was
> > debating doing the reverse of ffdshow - that is, convert directshow
> > style to ffmpeg, and not ffmpeg style to directshow.
> >
> > Has anyone done any work in this regard and/or would be interested in
> > it if I were to throw something together?
> >
> I did VFW capture, and sent an unfinished patch to the mailinglist
> earlier on this year (probably january or february).
> I gave up on it, but it's being used somewhere in bbc.co.uk. I don't
> have the final version anymore, it's somewhere on my older shut down
> computer. I'd have to bring it back up...

Yeah, but the biggest hurdle here is that VFW dies with Vista.  In
most of my tests, VFW seems to actually be more performant for
grabbing raw frames.  *sigh*

> If you can really convert directshow style to ffmpeg, that would be
> nice. It will be hard though, since directshow style is quite ugly for
> ffmpeg's standards. Also, remember that the code must compile on MinGW,
> not MSVC++. When I tried that with MinGW, I had to change a bunch of
> stuff in dshow.h.

Actually, the plan was to use wine's DirectShow headers, as they
nicely wrap COM into C style, so it doesn't force C++ usage, which
would be bad news in ffmpeg.

I'm still trying to figure out which is actually better - the
less-code ISampleGrabber route (simply sticking an ISampleGrabber in
between the device filter and a NullRenderer filter), or the more
complex custom filter version, which requires implementing 5-6
interfaces in each of 4 distinct classes.  As it stands I see very
little difference in performance, but apps like VLC go the custom
filter route.  Would anyone happen to know why this is, I can't seem
to find any information besides some speculation that ISampleGrabber
doesn't work on Windows 2000, though that doesn't seem right.

More information about the ffmpeg-devel mailing list