summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/playback/gstplaybin2.c11
2 files changed, 13 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 01d2fdc5..e67e47ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2008-11-13 Wim Taymans <wim.taymans@collabora.co.uk>
+ * gst/playback/gstplaybin2.c: (deactivate_group):
+ don't try to unlink the selector sinkpad when we don't have it yet. This
+ can happen if an error occured before the group was complete.
+
+2008-11-13 Wim Taymans <wim.taymans@collabora.co.uk>
+
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
(gst_rtp_buffer_set_packet_len), (gst_rtp_buffer_get_packet_len),
(gst_rtp_buffer_get_header_len), (gst_rtp_buffer_get_version),
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index a81e7fcb..1b33f822 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -2110,11 +2110,14 @@ deactivate_group (GstPlayBin * playbin, GstSourceGroup * group)
continue;
GST_DEBUG_OBJECT (playbin, "unlinking selector %s", select->media);
- gst_pad_unlink (select->srcpad, select->sinkpad);
- /* release back */
- gst_play_sink_release_pad (playbin->playsink, select->sinkpad);
- select->sinkpad = NULL;
+ if (select->sinkpad) {
+ gst_pad_unlink (select->srcpad, select->sinkpad);
+
+ /* release back */
+ gst_play_sink_release_pad (playbin->playsink, select->sinkpad);
+ select->sinkpad = NULL;
+ }
gst_object_unref (select->srcpad);
select->srcpad = NULL;