From dec9d95edbbf6b4fbbf7bd8b9582703e745a87d9 Mon Sep 17 00:00:00 2001 From: Stefan Kost Date: Thu, 7 Feb 2008 13:48:20 +0000 Subject: [PATCH] gst/multifile/gstmultifilesink.c: Add a fixme comment. Original commit message from CVS: * gst/multifile/gstmultifilesink.c: Add a fixme comment. * plugins/elements/gstoutputselector.c: Fix same leak as in input-selector. * tests/icles/output-selector-test.c: Improve the test. --- plugins/elements/gstoutputselector.c | 17 ++++++++--------- tests/icles/output-selector-test.c | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/plugins/elements/gstoutputselector.c b/plugins/elements/gstoutputselector.c index 1d1dc05..a60df6a 100644 --- a/plugins/elements/gstoutputselector.c +++ b/plugins/elements/gstoutputselector.c @@ -25,13 +25,6 @@ * Direct input stream to one out of N output pads. */ -/* FIXME: By default basesinks require some prerolled data before changing - to playing state. Also pipeline with output-selector connected to multiple - sink elements won't change to playing until all sink elements have received - the preroll data. Currently this can be worked around using live source element - and and exporting GST_COMPAT="no-live-preroll". -*/ - #ifdef HAVE_CONFIG_H #include "config.h" #endif @@ -212,7 +205,12 @@ gst_output_selector_set_property (GObject * object, guint prop_id, GstPad *next_pad = gst_element_get_static_pad (GST_ELEMENT (sel), g_value_get_string (value)); - if (next_pad && (next_pad != sel->active_srcpad)) { + if (!next_pad) { + GST_WARNING ("pad %s not found, activation failed", + g_value_get_string (value)); + break; + } + if (next_pad != sel->active_srcpad) { /* switch to new srcpad in next chain run */ if (sel->pending_srcpad != NULL) { GST_INFO ("replacing pending switch"); @@ -220,7 +218,8 @@ gst_output_selector_set_property (GObject * object, guint prop_id, } sel->pending_srcpad = next_pad; } else { - GST_WARNING ("setting active pad failed"); + GST_INFO ("pad already active"); + gst_object_unref (next_pad); } break; } diff --git a/tests/icles/output-selector-test.c b/tests/icles/output-selector-test.c index 304295c..b158b68 100755 --- a/tests/icles/output-selector-test.c +++ b/tests/icles/output-selector-test.c @@ -93,8 +93,8 @@ main (gint argc, gchar * argv[]) g_object_set (G_OBJECT (src), "is-live", TRUE, NULL); g_object_set (G_OBJECT (src), "do-timestamp", TRUE, NULL); g_object_set (G_OBJECT (src), "num-buffers", 500, NULL); - g_object_set (G_OBJECT (sink1), "sync", FALSE, NULL); - g_object_set (G_OBJECT (sink2), "sync", FALSE, NULL); + g_object_set (G_OBJECT (sink1), "sync", FALSE, "async", FALSE, NULL); + g_object_set (G_OBJECT (sink2), "sync", FALSE, "async", FALSE, NULL); g_object_set (G_OBJECT (osel), "resend-latest", TRUE, NULL); /* link src ! timeoverlay ! osel */ -- 2.7.4