summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
m---------common0
-rw-r--r--gst/selector/gstoutputselector.c5
3 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index d482b511..d4aa46b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-26 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/selector/gstoutputselector.c:
+ Fix changing to same pad twice before a chain call.
+
2008-02-26 Sebastian Dröge <slomo@circular-chaos.org>
Patch by: Daniel Fischer <dan at f3c dot com>
diff --git a/common b/common
-Subproject 1c5138efc5679d9eaee66c84dcfabdec5b72749
+Subproject e746d20ef536a73aea9964666c7d5f6d5c9465d
diff --git a/gst/selector/gstoutputselector.c b/gst/selector/gstoutputselector.c
index f8ed8846..85c93564 100644
--- a/gst/selector/gstoutputselector.c
+++ b/gst/selector/gstoutputselector.c
@@ -210,6 +210,7 @@ gst_output_selector_set_property (GObject * object, guint prop_id,
g_value_get_string (value));
break;
}
+ GST_LOG ("Activating pad %s", g_value_get_string (value));
if (next_pad != sel->active_srcpad) {
/* switch to new srcpad in next chain run */
if (sel->pending_srcpad != NULL) {
@@ -219,6 +220,10 @@ gst_output_selector_set_property (GObject * object, guint prop_id,
sel->pending_srcpad = next_pad;
} else {
GST_INFO ("pad already active");
+ if (sel->pending_srcpad != NULL) {
+ gst_object_unref (sel->pending_srcpad);
+ sel->pending_srcpad = NULL;
+ }
gst_object_unref (next_pad);
}
break;