Where is winegstreamer used?

Andrew Eikum aeikum at codeweavers.com
Thu Aug 4 08:19:17 CDT 2016


On Wed, Aug 03, 2016 at 02:50:07PM -0300, Bruno Jesus wrote:
> After looking for gstreamer related source code in Wine I could not
> find a place that calls winegstreamer to actually do something like
> video/audio decode/output. I think it should be somewhere
> amstream/quartz related but I'm not sure.
> 

quartz is crazy complicated. The short version is Wine calls
winegstreamer's DllRegisterServer during prefix creation because it's
present in <loader/wine.inf.in>. Applications which use directshow
(quartz and friends) eventually will load winegstreamer, usually via
IGraphBuilder::Connect in quartz.

winegstreamer itself subclasses the implementations in strmbase, which
handles a lot of the actual moving of data between filter graph
components.

> My question is basically what I need to do (preferably with source
> example or documentation) to get a mpg movie to play and that ends up
> using winegstreamer, for example. For example with AVI files I can
> simply do some avifil32/msvfw32 calls and get the video output to a
> window.
> 

AVI has a decoder built into Wine, as you found. Other formats that
don't have a built-in decoder should go through winegstreamer, though
the connection will fail if your gstreamer installation can't decode
it. Very few distros ship useful 32-bit gstreamer libraries.

You can use a program called Graph Studio[1] to explore dshow graphs.
The "File->Render Media File" function is basically a front-end to
IGraphBuilder::RenderFile, which should build a complete graph to play
back a media file.

[1] http://blog.monogram.sk/janos/tools/monogram-graphstudio/

Hope that helps,
Andrew



More information about the wine-devel mailing list