XOverlay lost after setting playbin state to Null

David Hoyt dhoyt at hoytsoft.org
Wed Nov 30 10:07:53 PST 2011

> Interesting, I had no idea such a sink existed.  Where can I find more
> information about it, examples, etc.?

Our discussion thread about it is here:

The source is available here:

Just replace dshowvideosink with d3dvideosink. If you're using OSSBuild,
autovideosink should select d3dvideosink by default.

d3dvideosink was created because the direct show one locked up and crashed
all the time for me and seemed generally unusable for any serious use.
Direct show has a media graph/pipeline similar to gstreamer (the 2 are
somewhat analogous) and it also seemed redundant to create a 2nd media
pipeline and push buffers through it simply for display. Direct show, I'd
guess (but I don't *know*), uses direct 3d under the covers. So it made
sense to skip the middle man. dshowvideosink, I believe, does bypass most of
the direct show graph, so that certainly helps.

Another plus is that there's direct 3d headers now for gcc through mingw.org
or mingw-w64. As far as I know, you still need to have visual c++ to compile
the direct show elements because they need to use the direct show base
classes. So you can compile d3dvideosink using gcc (and others have), but
not dshowvideosink.

But I've been running d3dvideosink continuously now for months and months
without a problem. Seems to be pretty stable. But then again, I wrote most
of it. So I'm biased. :D

More information about the gstreamer-devel mailing list