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