[gst-devel] xvideosink rewrite

Benjamin Otte in7y118 at public.uni-hamburg.de
Mon Feb 18 15:02:02 CET 2002


I rewrote the whole xvideosink to be more general and allow a plugin
architecture (it's not implemented, so don't worry).

It looks like this:

GStreamer      Display coordination     Video output

                    GtkWidget           XImage
videosink   <--->   X Window    <--->   XvImage
                      ...                 ...

This would even allow to exchange the XWindow with a DirectShowWindow if
somebody ported this to windows ;)

While I was at it, I did some other things:
- reorganised the code to look better
- tried to remove duplication of effort
- no more global variables
- renamed this thing from "xvideosink" to "videosink" to a) allow
parallel installation if nobody likes my stuff and b) because the name
fits better as it is more general.


The rewrite was done to allow better integration of a GstVideoWidget
which I'm going to write for the media player next, because:
- The way with a deprecated function like socket_steal is a hack and I
don't like hacked media players.
- A GstVideoWidget could never be a GstElement too, because GObject
doesn't allow multiple inheritance and it descends from GtkWidget
already.

There is a question about this though:
- How do I install / link to this element and the video output stuff?
There are no header files installed (this is gst-plugins) nor can I link
to a lib. I could (and would like if we did) write the GstVideoWidget in
Gst-Plugins but we would need to install a header file, a lib to link
against and an entry for pkgconfig for people that want to use the
widget.
The other possibility would be to include this widget/element combo in
gst-player, but IMO it doesn't belong there.

Thoughts?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile.am
Type: text/x-makefile
Size: 420 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstvideosink.c
Type: text/x-c
Size: 13401 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstvideosink.h
Type: text/x-c
Size: 3121 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstximage.c
Type: text/x-c
Size: 6296 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstximageplugin.h
Type: text/x-c
Size: 1148 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstxvimage.c
Type: text/x-c
Size: 8522 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0005.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstxwindow.h
Type: text/x-c
Size: 679 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0006.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gstxwindow.c
Type: text/x-c
Size: 5623 bytes
Desc: 
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20020218/efb82f40/attachment-0007.bin>


More information about the gstreamer-devel mailing list