diff options
author | Robert McQueen <robert.mcqueen@collabora.co.uk> | 2006-12-29 18:57:23 +0000 |
---|---|---|
committer | Robert McQueen <robert.mcqueen@collabora.co.uk> | 2006-12-29 18:57:23 +0000 |
commit | dbe331c90352fdb2afd3fd621233544c24b03357 (patch) | |
tree | a55e454c2e1ceb19f60e8f8b259344385fd54a4e | |
parent | 155f41311797eb5de03584471ea4add515add9c4 (diff) | |
download | telepathy-farstream-dbe331c90352fdb2afd3fd621233544c24b03357.tar.gz |
use new video sink making function for output windows too
20061229185723-418b8-ac7779fe42eea6cf6c58ec0b62b1e3da6efc814a.gz
-rw-r--r-- | src/stream.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/src/stream.c b/src/stream.c index b76294e..c7db24b 100644 --- a/src/stream.c +++ b/src/stream.c @@ -1458,8 +1458,7 @@ tp_stream_engine_stream_set_output_window ( { TpStreamEngineStreamPrivate *priv = STREAM_PRIVATE (stream); TpStreamEngine *engine; - GstElement *pipeline, *sink; - const gchar *videosink_name; + GstElement *sink; if (stream->media_type != FARSIGHT_MEDIA_TYPE_VIDEO) { @@ -1496,24 +1495,20 @@ tp_stream_engine_stream_set_output_window ( return TRUE; } - DEBUG (stream, "putting video output in window %d", window_id); + sink = tp_stream_engine_make_video_sink (engine); - if ((videosink_name = getenv ("FS_VIDEO_SINK")) || (videosink_name = getenv("FS_VIDEOSINK"))) - { - DEBUG (stream, "making video sink with pipeline \"%s\"", videosink_name); - sink = gst_parse_bin_from_description (videosink_name, TRUE, NULL); - } - else + if (sink == NULL) { - DEBUG (stream, "using xvimagesink"); - sink = gst_element_factory_make ("xvimagesink", NULL); - g_object_set (sink, "sync", FALSE, NULL); + DEBUG (stream, "failed to make video sink, no output for window %d :(", + window_id); + g_set_error (error, TELEPATHY_ERRORS, NotAvailable, "failed to make a " + "video sink"); + return FALSE; } - tp_stream_engine_add_output_window (engine, stream, sink, window_id); - pipeline = tp_stream_engine_get_pipeline (engine); - gst_bin_add (GST_BIN (pipeline), sink); + DEBUG (stream, "putting video output in window %d", window_id); + tp_stream_engine_add_output_window (engine, stream, sink, window_id); farsight_stream_set_sink (priv->fs_stream, sink); gst_object_unref (sink); |