diff options
author | Olivier CrĂȘte <olivier.crete@collabora.co.uk> | 2011-02-09 11:25:04 +0000 |
---|---|---|
committer | Olivier CrĂȘte <olivier.crete@collabora.com> | 2011-10-11 15:39:40 -0400 |
commit | ba8b7d2818e7a78de47d40cc3aa4594458bb0193 (patch) | |
tree | b807f5d09bfdcd2e76142cfc3850a2a532447ff6 /gst/fsrawconference | |
parent | 49f40c71c2073c94c8f824e3bd1d7594211dc2e9 (diff) | |
download | farstream-ba8b7d2818e7a78de47d40cc3aa4594458bb0193.tar.gz |
session: Remove transmitter creation from fs_session_new_stream()
Diffstat (limited to 'gst/fsrawconference')
-rw-r--r-- | gst/fsrawconference/fs-raw-session.c | 51 | ||||
-rw-r--r-- | gst/fsrawconference/fs-raw-stream.c | 84 | ||||
-rw-r--r-- | gst/fsrawconference/fs-raw-stream.h | 4 |
3 files changed, 15 insertions, 124 deletions
diff --git a/gst/fsrawconference/fs-raw-session.c b/gst/fsrawconference/fs-raw-session.c index 7bc0fb1c..9509b32d 100644 --- a/gst/fsrawconference/fs-raw-session.c +++ b/gst/fsrawconference/fs-raw-session.c @@ -163,9 +163,6 @@ static void fs_raw_session_constructed (GObject *object); static FsStream *fs_raw_session_new_stream (FsSession *session, FsParticipant *participant, FsStreamDirection direction, - const gchar *transmitter, - guint n_parameters, - GParameter *parameters, GError **error); static gchar **fs_raw_session_list_transmitters (FsSession *session); @@ -1148,15 +1145,11 @@ static FsStream * fs_raw_session_new_stream (FsSession *session, FsParticipant *participant, FsStreamDirection direction, - const gchar *transmitter, - guint n_parameters, - GParameter *parameters, GError **error) { FsRawSession *self = FS_RAW_SESSION (session); FsStream *new_stream = NULL; FsRawConference *conference; - FsStreamTransmitter *stream_transmitter = NULL; if (!FS_IS_RAW_PARTICIPANT (participant)) { @@ -1174,33 +1167,23 @@ fs_raw_session_new_stream (FsSession *session, goto already_have_stream; GST_OBJECT_UNLOCK (conference); - if (transmitter) - { - stream_transmitter = _stream_get_stream_transmitter (NULL, - transmitter, participant, parameters, n_parameters, error, self); - if (!stream_transmitter) - goto error; - } - new_stream = FS_STREAM_CAST (fs_raw_stream_new (self, FS_RAW_PARTICIPANT (participant), - direction, conference, stream_transmitter, - _stream_get_stream_transmitter, self, error)); + direction, conference, + _stream_get_stream_transmitter, self)); - if (new_stream) - { - g_signal_connect_object (new_stream, "notify::remote-codecs", - G_CALLBACK (_stream_remote_codecs_changed), self, 0); + GST_OBJECT_LOCK (conference); + if (self->priv->stream) + goto already_have_stream; - GST_OBJECT_LOCK (conference); - if (self->priv->stream) - { - goto already_have_stream; - } - self->priv->stream = (FsRawStream *) new_stream; - GST_OBJECT_UNLOCK (conference); - } + self->priv->stream = (FsRawStream *) new_stream; + + GST_OBJECT_UNLOCK (conference); + + g_signal_connect_object (new_stream, "notify::remote-codecs", + G_CALLBACK (_stream_remote_codecs_changed), self, 0); + done: gst_object_unref (conference); @@ -1210,16 +1193,6 @@ already_have_stream: GST_OBJECT_UNLOCK (conference); g_set_error (error, FS_ERROR, FS_ERROR_ALREADY_EXISTS, "There already is a stream in this session"); - goto error; - -error: - fs_raw_session_remove_stream (self, NULL); - - if (stream_transmitter) - { - fs_stream_transmitter_stop (stream_transmitter); - g_object_unref (stream_transmitter); - } goto done; } diff --git a/gst/fsrawconference/fs-raw-stream.c b/gst/fsrawconference/fs-raw-stream.c index ed8e5ea1..c41b5114 100644 --- a/gst/fsrawconference/fs-raw-stream.c +++ b/gst/fsrawconference/fs-raw-stream.c @@ -90,8 +90,6 @@ struct _FsRawStreamPrivate GList *remote_codecs; - GError *construction_error; - gulong local_candidates_prepared_handler_id; gulong new_active_candidate_pair_handler_id; gulong new_local_candidate_handler_id; @@ -153,8 +151,6 @@ static void fs_raw_stream_set_property (GObject *object, const GValue *value, GParamSpec *pspec); -static void fs_raw_stream_constructed (GObject *object); - static void _local_candidates_prepared ( FsStreamTransmitter *stream_transmitter, gpointer user_data); @@ -202,7 +198,6 @@ fs_raw_stream_class_init (FsRawStreamClass *klass) gobject_class->set_property = fs_raw_stream_set_property; gobject_class->get_property = fs_raw_stream_get_property; - gobject_class->constructed = fs_raw_stream_constructed; gobject_class->dispose = fs_raw_stream_dispose; gobject_class->finalize = fs_raw_stream_finalize; @@ -503,64 +498,6 @@ fs_raw_stream_set_property (GObject *object, } } -static void -fs_raw_stream_constructed (GObject *object) -{ - FsRawStream *self = FS_RAW_STREAM_CAST (object); - - if (!self->priv->conference) { - self->priv->construction_error = g_error_new (FS_ERROR, - FS_ERROR_INVALID_ARGUMENTS, "A Stream needs a conference object"); - return; - } - - if (self->priv->stream_transmitter) - { - g_object_set (self->priv->stream_transmitter, "sending", - (self->priv->direction & FS_DIRECTION_SEND) ? TRUE : FALSE, NULL); - - self->priv->local_candidates_prepared_handler_id = - g_signal_connect_object (self->priv->stream_transmitter, - "local-candidates-prepared", - G_CALLBACK (_local_candidates_prepared), - self, 0); - self->priv->new_active_candidate_pair_handler_id = - g_signal_connect_object (self->priv->stream_transmitter, - "new-active-candidate-pair", - G_CALLBACK (_new_active_candidate_pair), - self, 0); - self->priv->new_local_candidate_handler_id = - g_signal_connect_object (self->priv->stream_transmitter, - "new-local-candidate", - G_CALLBACK (_new_local_candidate), - self, 0); - self->priv->error_handler_id = - g_signal_connect_object (self->priv->stream_transmitter, - "error", - G_CALLBACK (_transmitter_error), - self, 0); - self->priv->state_changed_handler_id = - g_signal_connect_object (self->priv->stream_transmitter, - "state-changed", - G_CALLBACK (_state_changed), - self, 0); - - if (!fs_stream_transmitter_gather_local_candidates ( - self->priv->stream_transmitter, - &self->priv->construction_error)) - { - if (!self->priv->construction_error) - self->priv->construction_error = g_error_new (FS_ERROR, - FS_ERROR_INTERNAL, - "Unknown error while gathering local candidates"); - return; - } - } - - if (G_OBJECT_CLASS (fs_raw_stream_parent_class)->constructed) - G_OBJECT_CLASS (fs_raw_stream_parent_class)->constructed (object); -} - static void _local_candidates_prepared (FsStreamTransmitter *stream_transmitter, @@ -855,10 +792,8 @@ fs_raw_stream_new (FsRawSession *session, FsRawParticipant *participant, FsStreamDirection direction, FsRawConference *conference, - FsStreamTransmitter *stream_transmitter, stream_get_new_stream_transmitter_cb get_new_stream_transmitter_cb, - gpointer user_data, - GError **error) + gpointer user_data) { FsRawStream *self; @@ -870,22 +805,8 @@ fs_raw_stream_new (FsRawSession *session, "participant", participant, "direction", direction, "conference", conference, - "stream-transmitter", stream_transmitter, NULL); - if (!self) - { - *error = g_error_new (FS_ERROR, FS_ERROR_CONSTRUCTION, - "Could not create object"); - return NULL; - } - else if (self->priv->construction_error) - { - g_propagate_error (error, self->priv->construction_error); - g_object_unref (self); - return NULL; - } - self->priv->get_new_stream_transmitter_cb = get_new_stream_transmitter_cb; self->priv->user_data = user_data; @@ -964,8 +885,7 @@ fs_raw_stream_set_transmitter (FsStream *stream, if (!fs_stream_transmitter_gather_local_candidates ( self->priv->stream_transmitter, error)) { - if (!self->priv->construction_error) - GST_OBJECT_LOCK (conf); + GST_OBJECT_LOCK (conf); self->priv->stream_transmitter = NULL; GST_OBJECT_UNLOCK (conf); diff --git a/gst/fsrawconference/fs-raw-stream.h b/gst/fsrawconference/fs-raw-stream.h index c94ff8d3..4afa54db 100644 --- a/gst/fsrawconference/fs-raw-stream.h +++ b/gst/fsrawconference/fs-raw-stream.h @@ -84,10 +84,8 @@ FsRawStream *fs_raw_stream_new (FsRawSession *session, FsRawParticipant *participant, FsStreamDirection direction, FsRawConference *conference, - FsStreamTransmitter *stream_transmitter, stream_get_new_stream_transmitter_cb get_new_stream_transmitter_cb, - gpointer user_data, - GError **error); + gpointer user_data); G_END_DECLS |