summaryrefslogtreecommitdiff
path: root/transmitters
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.co.uk>2010-02-03 17:31:38 +0200
committerOlivier CrĂȘte <olivier.crete@collabora.co.uk>2010-09-07 17:09:39 +0300
commitfd916e1a71e5e2530c6a5c38a6241b8c479cf19c (patch)
treef01b52a53f84a08b2c3e8d307cc4e887e3cdeee4 /transmitters
parented0937ed0eb62c354de4c327061821756c57e1f1 (diff)
downloadfarstream-fd916e1a71e5e2530c6a5c38a6241b8c479cf19c.tar.gz
shmtrans: Release teepad before stopping downstream elements
Diffstat (limited to 'transmitters')
-rw-r--r--transmitters/shm/fs-shm-transmitter.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/transmitters/shm/fs-shm-transmitter.c b/transmitters/shm/fs-shm-transmitter.c
index 51d7e042..76d8b99c 100644
--- a/transmitters/shm/fs-shm-transmitter.c
+++ b/transmitters/shm/fs-shm-transmitter.c
@@ -840,6 +840,14 @@ fs_shm_transmitter_check_shm_sink (FsShmTransmitter *self, ShmSink *shm,
if (path && !strcmp (path, shm->path))
return TRUE;
+ if (shm->teepad)
+ {
+ gst_element_release_request_pad (self->priv->tees[shm->component],
+ shm->teepad);
+ gst_object_unref (shm->teepad);
+ }
+ shm->teepad = NULL;
+
if (shm->sink)
{
gst_element_set_locked_state (shm->sink, TRUE);
@@ -856,14 +864,6 @@ fs_shm_transmitter_check_shm_sink (FsShmTransmitter *self, ShmSink *shm,
}
shm->recvonly_filter = NULL;
- if (shm->teepad)
- {
- gst_element_release_request_pad (self->priv->tees[shm->component],
- shm->teepad);
- gst_object_unref (shm->teepad);
- }
- shm->teepad = NULL;
-
g_free (shm->path);
g_slice_free (ShmSink, shm);