Small fixes to the autoplugger so that it uses a colorspace element for video.

Original commit message from CVS:
Small fixes to the autoplugger so that it uses a colorspace element for
video.
This commit is contained in:
Wim Taymans 2001-06-27 20:19:00 +00:00
parent b562614242
commit a8fd594d6b
2 changed files with 30 additions and 8 deletions

View file

@ -11,7 +11,7 @@ autoplug_have_size (GstElement *element, guint width, guint height,
static void
gst_play_have_type (GstElement *typefind, GstCaps *caps, GstElement *pipeline)
{
GstElement *osssink, *videosink;
GstElement *osssink, *videosink, *videoelement, *colorspace;
GtkWidget *appwindow;
GstElement *new_element;
GstAutoplug *autoplug;
@ -36,11 +36,22 @@ gst_play_have_type (GstElement *typefind, GstCaps *caps, GstElement *pipeline)
osssink = gst_elementfactory_make("osssink", "play_audio");
g_assert(osssink != NULL);
videosink = gst_bin_new ("videosink");
/* and an video sink */
videosink = gst_elementfactory_make("xvideosink", "play_video");
videoelement = gst_elementfactory_make("xvideosink", "play_video");
//videosink = gst_elementfactory_make("aasink", "play_video");
g_assert(videosink != NULL);
colorspace = gst_elementfactory_make("colorspace", "colorspace");
g_assert(colorspace != NULL);
gst_element_connect (colorspace, "src", videoelement, "sink");
gst_bin_add (GST_BIN (videosink), colorspace);
gst_bin_add (GST_BIN (videosink), videoelement);
gst_element_add_ghost_pad (videosink,
gst_element_get_pad (colorspace, "sink"), "sink");
autoplug = gst_autoplugfactory_make ("staticrender");
g_assert (autoplug != NULL);
@ -73,12 +84,12 @@ gst_play_have_type (GstElement *typefind, GstCaps *caps, GstElement *pipeline)
gtk_widget_realize (socket);
gtk_socket_steal (GTK_SOCKET (socket),
gst_util_get_int_arg (GTK_OBJECT (videosink), "xid"));
gst_util_get_int_arg (GTK_OBJECT (videoelement), "xid"));
gtk_widget_set_usize(socket,320,240);
gtk_widget_show_all (appwindow);
gtk_signal_connect (GTK_OBJECT (videosink), "have_size",
gtk_signal_connect (GTK_OBJECT (videoelement), "have_size",
GTK_SIGNAL_FUNC (autoplug_have_size), socket);
gst_element_set_state (pipeline, GST_STATE_PLAYING);

View file

@ -11,7 +11,7 @@ autoplug_have_size (GstElement *element, guint width, guint height,
static void
gst_play_have_type (GstElement *typefind, GstCaps *caps, GstElement *pipeline)
{
GstElement *osssink, *videosink;
GstElement *osssink, *videosink, *videoelement, *colorspace;
GtkWidget *appwindow;
GstElement *new_element;
GstAutoplug *autoplug;
@ -36,11 +36,22 @@ gst_play_have_type (GstElement *typefind, GstCaps *caps, GstElement *pipeline)
osssink = gst_elementfactory_make("osssink", "play_audio");
g_assert(osssink != NULL);
videosink = gst_bin_new ("videosink");
/* and an video sink */
videosink = gst_elementfactory_make("xvideosink", "play_video");
videoelement = gst_elementfactory_make("xvideosink", "play_video");
//videosink = gst_elementfactory_make("aasink", "play_video");
g_assert(videosink != NULL);
colorspace = gst_elementfactory_make("colorspace", "colorspace");
g_assert(colorspace != NULL);
gst_element_connect (colorspace, "src", videoelement, "sink");
gst_bin_add (GST_BIN (videosink), colorspace);
gst_bin_add (GST_BIN (videosink), videoelement);
gst_element_add_ghost_pad (videosink,
gst_element_get_pad (colorspace, "sink"), "sink");
autoplug = gst_autoplugfactory_make ("staticrender");
g_assert (autoplug != NULL);
@ -73,12 +84,12 @@ gst_play_have_type (GstElement *typefind, GstCaps *caps, GstElement *pipeline)
gtk_widget_realize (socket);
gtk_socket_steal (GTK_SOCKET (socket),
gst_util_get_int_arg (GTK_OBJECT (videosink), "xid"));
gst_util_get_int_arg (GTK_OBJECT (videoelement), "xid"));
gtk_widget_set_usize(socket,320,240);
gtk_widget_show_all (appwindow);
gtk_signal_connect (GTK_OBJECT (videosink), "have_size",
gtk_signal_connect (GTK_OBJECT (videoelement), "have_size",
GTK_SIGNAL_FUNC (autoplug_have_size), socket);
gst_element_set_state (pipeline, GST_STATE_PLAYING);