[farsight2/master] Free recvonly pipeline when putting port too
Olivier Crête
olivier.crete at collabora.co.uk
Thu Feb 5 06:32:05 PST 2009
---
transmitters/rawudp/fs-rawudp-transmitter.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/transmitters/rawudp/fs-rawudp-transmitter.c b/transmitters/rawudp/fs-rawudp-transmitter.c
index 636e530..47d4a9f 100644
--- a/transmitters/rawudp/fs-rawudp-transmitter.c
+++ b/transmitters/rawudp/fs-rawudp-transmitter.c
@@ -959,6 +959,26 @@ fs_rawudp_transmitter_put_udpport (FsRawUdpTransmitter *trans,
GST_ERROR ("Could not remove udpsink element from transmitter source");
}
+ if (udpport->recvonly_requested_pad)
+ {
+ gst_element_release_request_pad (udpport->tee,
+ udpport->recvonly_requested_pad);
+ gst_object_unref (udpport->recvonly_requested_pad);
+ }
+
+ if (udpport->recvonly_udpsink)
+ {
+ GstStateChangeReturn ret;
+ gst_element_set_locked_state (udpport->recvonly_udpsink, TRUE);
+ ret = gst_element_set_state (udpport->recvonly_udpsink, GST_STATE_NULL);
+ if (ret != GST_STATE_CHANGE_SUCCESS)
+ GST_ERROR ("Error changing state of udpsink: %s",
+ gst_element_state_change_return_get_name (ret));
+ if (!gst_bin_remove (GST_BIN (trans->priv->gst_sink),
+ udpport->recvonly_udpsink))
+ GST_ERROR ("Could not remove udpsink element from transmitter source");
+ }
+
if (udpport->fd >= 0)
close (udpport->fd);
--
1.5.6.5
More information about the farsight-commits
mailing list