summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Ruprecht <maiku@pidgin.im>2009-10-26 23:26:59 +0000
committerMichael Ruprecht <maiku@pidgin.im>2009-10-26 23:26:59 +0000
commit9b4a39146ec7f8fb745c33d601b72f5e18a6369d (patch)
treee3b62955485b860f7f99da7718ec694bc894e555
parentaeb767ef6ef8ffeff9281b28b2bf6672a4b3653c (diff)
downloadpidgin-9b4a39146ec7f8fb745c33d601b72f5e18a6369d.tar.gz
Move set_remote_codec functionality to the Fs2 media backend.
-rw-r--r--libpurple/media/backend-fs2.c21
-rw-r--r--libpurple/media/media.c59
2 files changed, 23 insertions, 57 deletions
diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c
index f959c47912..716a507f70 100644
--- a/libpurple/media/backend-fs2.c
+++ b/libpurple/media/backend-fs2.c
@@ -1462,6 +1462,27 @@ static gboolean
purple_media_backend_fs2_set_send_codec(PurpleMediaBackend *self,
const gchar *sess_id, PurpleMediaCodec *codec)
{
+ PurpleMediaBackendFs2Session *session;
+ FsCodec *fscodec;
+ GError *err = NULL;
+
+ g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE);
+
+ session = _get_session(PURPLE_MEDIA_BACKEND_FS2(self), sess_id);
+
+ if (session == NULL)
+ return FALSE;
+
+ fscodec = _codec_to_fs(codec);
+ fs_session_set_send_codec(session->session, fscodec, &err);
+ fs_codec_destroy(fscodec);
+
+ if (err) {
+ purple_debug_error("media", "Error setting send codec\n");
+ g_error_free(err);
+ return FALSE;
+ }
+
return TRUE;
}
diff --git a/libpurple/media/media.c b/libpurple/media/media.c
index deab485a23..767e032a12 100644
--- a/libpurple/media/media.c
+++ b/libpurple/media/media.c
@@ -620,44 +620,6 @@ purple_media_from_fs(FsMediaType type, FsStreamDirection direction)
return result;
}
-static FsCodec *
-purple_media_codec_to_fs(const PurpleMediaCodec *codec)
-{
- FsCodec *new_codec;
- gint id;
- char *encoding_name;
- PurpleMediaSessionType media_type;
- guint clock_rate;
- guint channels;
- GList *iter;
-
- if (codec == NULL)
- return NULL;
-
- g_object_get(G_OBJECT(codec),
- "id", &id,
- "encoding-name", &encoding_name,
- "media-type", &media_type,
- "clock-rate", &clock_rate,
- "channels", &channels,
- "optional-params", &iter,
- NULL);
-
- new_codec = fs_codec_new(id, encoding_name,
- purple_media_to_fs_media_type(media_type),
- clock_rate);
- new_codec->channels = channels;
-
- for (; iter; iter = g_list_next(iter)) {
- PurpleKeyValuePair *param = (PurpleKeyValuePair*)iter->data;
- fs_codec_add_optional_parameter(new_codec,
- param->key, param->value);
- }
-
- g_free(encoding_name);
- return new_codec;
-}
-
static PurpleMediaSession*
purple_media_get_session(PurpleMedia *media, const gchar *sess_id)
{
@@ -1572,27 +1534,10 @@ gboolean
purple_media_set_send_codec(PurpleMedia *media, const gchar *sess_id, PurpleMediaCodec *codec)
{
#ifdef USE_VV
- PurpleMediaSession *session;
- FsCodec *fscodec;
- GError *err = NULL;
-
g_return_val_if_fail(PURPLE_IS_MEDIA(media), FALSE);
- session = purple_media_get_session(media, sess_id);
-
- if (session != NULL)
- return FALSE;
-
- fscodec = purple_media_codec_to_fs(codec);
- fs_session_set_send_codec(session->session, fscodec, &err);
- fs_codec_destroy(fscodec);
-
- if (err) {
- purple_debug_error("media", "Error setting send codec\n");
- g_error_free(err);
- return FALSE;
- }
- return TRUE;
+ return purple_media_backend_set_send_codec(
+ media->priv->backend, sess_id, codec);
#else
return FALSE;
#endif