[farsight2/master] Stop substream components in the right order
Olivier Crête
olivier.crete at collabora.co.uk
Wed Dec 17 17:55:02 PST 2008
---
gst/fsrtpconference/fs-rtp-substream.c | 34 +++++++++++++------------------
1 files changed, 14 insertions(+), 20 deletions(-)
diff --git a/gst/fsrtpconference/fs-rtp-substream.c b/gst/fsrtpconference/fs-rtp-substream.c
index cb4f78a..7d802c5 100644
--- a/gst/fsrtpconference/fs-rtp-substream.c
+++ b/gst/fsrtpconference/fs-rtp-substream.c
@@ -609,15 +609,6 @@ fs_rtp_sub_stream_dispose (GObject *object)
self->priv->output_ghostpad = NULL;
}
- if (self->priv->capsfilter) {
- gst_object_ref (self->priv->capsfilter);
- gst_element_set_state (self->priv->capsfilter, GST_STATE_NULL);
- gst_bin_remove (GST_BIN (self->priv->conference), self->priv->capsfilter);
- gst_element_set_state (self->priv->capsfilter, GST_STATE_NULL);
- gst_object_unref (self->priv->capsfilter);
- self->priv->capsfilter = NULL;
- }
-
if (self->priv->valve) {
gst_object_ref (self->priv->valve);
gst_element_set_state (self->priv->valve, GST_STATE_NULL);
@@ -627,16 +618,6 @@ fs_rtp_sub_stream_dispose (GObject *object)
self->priv->valve = NULL;
}
-
- FS_RTP_SESSION_LOCK (self->priv->session);
-
- if (self->priv->blocking_id)
- {
- gst_pad_remove_data_probe (self->priv->rtpbin_pad,
- self->priv->blocking_id);
- self->priv->blocking_id = 0;
- }
-
if (self->priv->codecbin) {
gst_object_ref (self->priv->codecbin);
gst_element_set_state (self->priv->codecbin, GST_STATE_NULL);
@@ -646,8 +627,21 @@ fs_rtp_sub_stream_dispose (GObject *object)
self->priv->codecbin = NULL;
}
- FS_RTP_SESSION_UNLOCK (self->priv->session);
+ if (self->priv->capsfilter) {
+ gst_object_ref (self->priv->capsfilter);
+ gst_element_set_state (self->priv->capsfilter, GST_STATE_NULL);
+ gst_bin_remove (GST_BIN (self->priv->conference), self->priv->capsfilter);
+ gst_element_set_state (self->priv->capsfilter, GST_STATE_NULL);
+ gst_object_unref (self->priv->capsfilter);
+ self->priv->capsfilter = NULL;
+ }
+ if (self->priv->blocking_id)
+ {
+ gst_pad_remove_data_probe (self->priv->rtpbin_pad,
+ self->priv->blocking_id);
+ self->priv->blocking_id = 0;
+ }
if (self->priv->rtpbin_pad) {
gst_object_unref (self->priv->rtpbin_pad);
--
1.5.6.5
More information about the farsight-commits
mailing list