[farsight2/master] Implement stream transmitter stop method in nice transmitter
Olivier Crête
olivier.crete at collabora.co.uk
Tue Dec 23 15:26:29 PST 2008
---
transmitters/nice/fs-nice-stream-transmitter.c | 36 +++++++++++++++++------
1 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/transmitters/nice/fs-nice-stream-transmitter.c b/transmitters/nice/fs-nice-stream-transmitter.c
index 59f6083..5646fbd 100644
--- a/transmitters/nice/fs-nice-stream-transmitter.c
+++ b/transmitters/nice/fs-nice-stream-transmitter.c
@@ -138,6 +138,8 @@ static gboolean fs_nice_stream_transmitter_force_remote_candidates (
static gboolean fs_nice_stream_transmitter_gather_local_candidates (
FsStreamTransmitter *streamtransmitter,
GError **error);
+static void fs_nice_stream_transmitter_stop (
+ FsStreamTransmitter *streamtransmitter);
static void agent_state_changed (NiceAgent *agent,
guint stream_id,
@@ -216,6 +218,8 @@ fs_nice_stream_transmitter_class_init (FsNiceStreamTransmitterClass *klass)
fs_nice_stream_transmitter_force_remote_candidates;
streamtransmitterclass->gather_local_candidates =
fs_nice_stream_transmitter_gather_local_candidates;
+ streamtransmitterclass->stop =
+ fs_nice_stream_transmitter_stop;
g_type_class_add_private (klass, sizeof (FsNiceStreamTransmitterPrivate));
@@ -304,17 +308,9 @@ fs_nice_stream_transmitter_dispose (GObject *object)
{
FsNiceStreamTransmitter *self = FS_NICE_STREAM_TRANSMITTER (object);
- FS_NICE_STREAM_TRANSMITTER_LOCK (self);
- if (self->priv->gststream)
- fs_nice_transmitter_free_gst_stream (self->priv->transmitter,
- self->priv->gststream);
- self->priv->gststream = NULL;
-
- if (self->priv->stream_id)
- nice_agent_remove_stream (self->priv->agent->agent,
- self->priv->stream_id);
- self->priv->stream_id = 0;
+ fs_nice_stream_transmitter_stop (FS_STREAM_TRANSMITTER_CAST (object));
+ FS_NICE_STREAM_TRANSMITTER_LOCK (self);
if (self->priv->state_changed_handler_id)
g_signal_handler_disconnect (self->priv->agent->agent,
self->priv->state_changed_handler_id);
@@ -352,6 +348,26 @@ fs_nice_stream_transmitter_dispose (GObject *object)
}
static void
+fs_nice_stream_transmitter_stop (FsStreamTransmitter *streamtransmitter)
+{
+ FsNiceStreamTransmitter *self =
+ FS_NICE_STREAM_TRANSMITTER (streamtransmitter);
+
+ FS_NICE_STREAM_TRANSMITTER_LOCK (self);
+ if (self->priv->gststream)
+ fs_nice_transmitter_free_gst_stream (self->priv->transmitter,
+ self->priv->gststream);
+ self->priv->gststream = NULL;
+
+ if (self->priv->stream_id)
+ nice_agent_remove_stream (self->priv->agent->agent,
+ self->priv->stream_id);
+ self->priv->stream_id = 0;
+ FS_NICE_STREAM_TRANSMITTER_UNLOCK (self);
+}
+
+
+static void
fs_nice_stream_transmitter_finalize (GObject *object)
{
FsNiceStreamTransmitter *self = FS_NICE_STREAM_TRANSMITTER (object);
--
1.5.6.5
More information about the farsight-commits
mailing list