SoC: DirectShow/Gstreamer

Maarten Lankhorst m.b.lankhorst at gmail.com
Fri Mar 20 06:56:20 CDT 2009


Hello Trevor,

2009/3/17 Trevor Davenport <trevor.davenport at gmail.com>:
> Hi Maarten,
>
>> I think this is a great idea. I have no idea how gstreamer works, but
>> a lot of quartz is automatic pulling the pipes etc together. There are
>> 3 categories of filters in directshow:
>> - Source filters (can be a file, can be a webcam, can be any filter
>> that has only an output)
>> - Intermediate filters (can decode or parse a file, multiple can be
>> linked together)
>> - Renderers
>
> Gstreamer is quite similiar, there are:
> - Sources (provide data, filesrc, v4l, networksrc, etc)
> - Sink (data endpoints, xvideo sink, filesink, network sink, etc)
> - Filters, convertors, demuxers, muxers, codecs
>
>> I have only peeked at gstreamer, but it seems it is very similar.
>> Wine's directshow however still misses a few things that are probably
>> important, like sending information about when new segments start,
>> etc. If you implemented a gstreamer codec, a big part of it could be
>> to fix this to be more similar to what windows does.
>
> I expected there to be a number of things that are either not
> implemented or will need some work. At this point I don't think
> getting data in/out of gstreamer will be very difficult (i've done it
> before and am currently using gstreamer for university project).  Is
> there any documentation about the current state of wine's quartz (ie,
> wiki page, good buzilla reports/comments, etc)?
>
>
>> I have also made a stand-alone codec for schroedinger last year, which
>> falls in the 'intermediate filters' category. It's source is available
>> at:
>> http://www.diracvideo.org/git?p=direct-schro.git;a=tree;h=HEAD
>>
>
> Cool, thanks for the link.  I will check it out a bit later once i
> finish some other work.
The easiest way to test how good wine's directshow is is by running
some applications, and seeing what breaks. Our video playback filter
sucks, and I have an improved version at
http://repo.or.cz/w/wine/multimedia.git . Sadly it is not part of the
current wine tree, because it relies on a hack with Xv which AJ won't
allow to be used directly. In that tree there is also a opengl
accelerated version, but that has issues with various drivers. Fglrx
and all open source drivers will not work with them, so it's not the
default. If it wasn't for that I would have gotten this merged with
wine a long time ago, but breaking quartz even more for some users
seemd to be a bad idea.

Directshow's way of loading a file is very simple,
FilterGraph2_AddSourceFilter shows how it's done for wine (and
presumably windows too). There are also some functions there that can
be called by the application to build a full renderer pipeline.

Cheers,
Maarten.



More information about the wine-devel mailing list