From 2ec34d175e9e27677fea310be8fd47f742113133 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 1 Mar 2012 15:09:17 +0100 Subject: [PATCH] Port to Farstream Most of this changes are directly from telepathy-farstream. I made sure to not break telepathy-farsight's API so this it's not a bare copy. https://bugs.freedesktop.org/show_bug.cgi?id=46827 --- configure.ac | 2 +- telepathy-farsight/channel.c | 2 +- telepathy-farsight/session.c | 5 +- telepathy-farsight/stream.c | 228 ++++++++++---------- telepathy-farsight/stream.h | 2 +- .../telepathy-farsight-uninstalled.pc.in | 2 +- telepathy-farsight/telepathy-farsight.pc.in | 2 +- 7 files changed, 125 insertions(+), 118 deletions(-) diff --git a/configure.ac b/configure.ac index c53d698..c4bb8c8 100644 --- a/configure.ac +++ b/configure.ac @@ -104,7 +104,7 @@ AC_SUBST(TELEPATHY_CFLAGS) AC_SUBST(TELEPATHY_LIBS) dnl Check for farsight -PKG_CHECK_MODULES(FARSIGHT2, [farsight2-0.10 >= 0.0.29]) +PKG_CHECK_MODULES(FARSIGHT2, [farstream-0.1]) AC_SUBST(FARSIGHT2_CFLAGS) AC_SUBST(FARSIGHT2_LIBS) diff --git a/telepathy-farsight/channel.c b/telepathy-farsight/channel.c index 2674565..48eacf8 100644 --- a/telepathy-farsight/channel.c +++ b/telepathy-farsight/channel.c @@ -36,7 +36,7 @@ #include #include -#include +#include #include "channel.h" #include "stream.h" diff --git a/telepathy-farsight/session.c b/telepathy-farsight/session.c index c64a23c..152d2a0 100644 --- a/telepathy-farsight/session.c +++ b/telepathy-farsight/session.c @@ -22,7 +22,7 @@ #include #include -#include +#include #include "session-priv.h" #include "tf-signals-marshal.h" @@ -156,7 +156,6 @@ _tf_session_constructor (GType type, self->priv->fs_participant = fs_conference_new_participant (self->priv->fs_conference, - "whatever-cname@1.2.3.4", &self->priv->construction_error); if (!self->priv->fs_participant) @@ -419,7 +418,7 @@ _tf_session_bus_message (TfSession *session, { const GstStructure *s = gst_message_get_structure (message); - if (gst_structure_has_name (s, "farsight-error")) + if (gst_structure_has_name (s, "farstream-error")) { GObject *object; const GValue *value = NULL; diff --git a/telepathy-farsight/stream.c b/telepathy-farsight/stream.c index 23ae61a..be966d0 100644 --- a/telepathy-farsight/stream.c +++ b/telepathy-farsight/stream.c @@ -41,9 +41,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include "stream.h" #include "stream-priv.h" @@ -123,7 +123,7 @@ struct _TfStreamPrivate GQueue events_to_send; - gint sending_telephony_event; + gboolean sending_telephony_event; }; enum @@ -256,7 +256,7 @@ tf_stream_init (TfStream *self) g_static_mutex_init (&priv->mutex); priv->has_resource = TP_MEDIA_STREAM_DIRECTION_NONE; priv->current_state = TP_MEDIA_STREAM_STATE_DISCONNECTED; - priv->sending_telephony_event = -1; + priv->sending_telephony_event = FALSE; g_queue_init (&priv->events_to_send); } @@ -451,7 +451,7 @@ tf_stream_dispose (GObject *object) tf_stream_free_resource (stream, TP_MEDIA_STREAM_DIRECTION_RECEIVE); - g_object_run_dispose (G_OBJECT (priv->fs_stream)); + fs_stream_destroy (priv->fs_stream); g_object_unref (priv->fs_stream); tf_stream_free_resource (stream, @@ -462,7 +462,7 @@ tf_stream_dispose (GObject *object) if (priv->fs_session) { - g_object_run_dispose (G_OBJECT (priv->fs_session)); + fs_session_destroy (priv->fs_session); g_object_unref (priv->fs_session); priv->fs_session = NULL; } @@ -790,6 +790,7 @@ get_all_properties_cb (TpProxy *proxy, guint i; gboolean do_controlling = FALSE; GList *rtp_header_extensions; + gboolean res = FALSE; if (dbus_error && !(dbus_error->domain == DBUS_GERROR && @@ -1084,11 +1085,12 @@ get_all_properties_cb (TpProxy *proxy, stream->priv->fs_stream = fs_session_new_stream (stream->priv->fs_session, stream->priv->fs_participant, FS_DIRECTION_NONE, - transmitter, - n_args, - params, &myerror); + if (stream->priv->fs_stream) + res = fs_stream_set_transmitter (stream->priv->fs_stream, + transmitter, params, n_args, &myerror); + for (i = 0; i < n_args; i++) g_value_unset (¶ms[i].value); @@ -1100,6 +1102,15 @@ get_all_properties_cb (TpProxy *proxy, return; } + if (!res) + { + tf_stream_error (stream, fserror_to_tperror (myerror), myerror->message); + WARNING (stream, "Could not set transmitter for stream: %s", + myerror->message); + g_clear_error (&myerror); + return; + } + rtp_header_extensions = fs_utils_get_default_rtp_header_extension_preferences ( GST_ELEMENT (stream->priv->fs_conference), @@ -1498,13 +1509,6 @@ fs_codecs_to_tp (TfStream *stream, g_strdup (param->value)); } - if (fsc->ABI.ABI.ptime) - g_hash_table_insert (params, g_strdup ("ptime"), - g_strdup_printf ("%u", fsc->ABI.ABI.ptime)); - if (fsc->ABI.ABI.maxptime) - g_hash_table_insert (params, g_strdup ("maxptime"), - g_strdup_printf ("%u", fsc->ABI.ABI.maxptime)); - g_value_init (&codec, TP_STRUCT_TYPE_MEDIA_STREAM_HANDLER_CODEC); g_value_take_boxed (&codec, dbus_g_type_specialized_construct (TP_STRUCT_TYPE_MEDIA_STREAM_HANDLER_CODEC)); @@ -1543,7 +1547,7 @@ add_remote_candidate (TpMediaStreamHandler *proxy G_GNUC_UNUSED, fscandidates = tp_transports_to_fs (candidate, transports); - if (!fs_stream_set_remote_candidates (self->priv->fs_stream, + if (!fs_stream_add_remote_candidates (self->priv->fs_stream, fscandidates, &error)) tf_stream_error (self, fserror_to_tperror (error), error->message); @@ -1599,6 +1603,7 @@ set_remote_candidate_list (TpMediaStreamHandler *proxy G_GNUC_UNUSED, guint i; GList *fs_candidates = NULL; GError *error = NULL; + gboolean ret; for (i = 0; i < candidates->len; i++) { @@ -1621,9 +1626,17 @@ set_remote_candidate_list (TpMediaStreamHandler *proxy G_GNUC_UNUSED, tp_transports_to_fs (foundation, transports)); } - if (!fs_stream_set_remote_candidates (self->priv->fs_stream, - fs_candidates, &error)) - tf_stream_error (self, fserror_to_tperror (error), error->message); + ret = fs_stream_add_remote_candidates (self->priv->fs_stream, + fs_candidates, &error); + if (!ret && error && + error->domain == FS_ERROR && error->code == FS_ERROR_NOT_IMPLEMENTED) + { + g_clear_error (&error); + ret = fs_stream_force_remote_candidates (self->priv->fs_stream, + fs_candidates, &error); + } + if (!ret) + tf_stream_error (self, fserror_to_tperror (error), error->message); g_clear_error (&error); fs_candidate_list_destroy (fs_candidates); @@ -1634,12 +1647,7 @@ fill_fs_params (gpointer key, gpointer value, gpointer user_data) { FsCodec *codec = user_data; - if (!strcmp (key, "ptime") && atoi (value) > 0) - codec->ABI.ABI.ptime = atoi (value); - else if (!strcmp (key, "maxptime") && atoi (value) > 0) - codec->ABI.ABI.maxptime = atoi (value); - else - fs_codec_add_optional_parameter (codec, key, value); + fs_codec_add_optional_parameter (codec, key, value); } static FsStreamDirection @@ -1722,7 +1730,7 @@ set_remote_codecs (TpMediaStreamHandler *proxy G_GNUC_UNUSED, TP_ARRAY_TYPE_RTCP_FEEDBACK_MESSAGE_LIST); val = g_value_array_get_nth (message_props, 0); - fs_codec->ABI.ABI.minimum_reporting_interval = + fs_codec->minimum_reporting_interval = g_value_get_uint (val); val = g_value_array_get_nth (message_props, 1); @@ -2054,32 +2062,28 @@ start_telephony_event (TpMediaStreamHandler *proxy G_GNUC_UNUSED, DEBUG (self, "called with event %u", event); - if (self->priv->sending_telephony_event != -1) + if (self->priv->sending_telephony_event) { WARNING (self, "start new telephony event without stopping the" " previous one first"); - if (!fs_session_stop_telephony_event (self->priv->fs_session, - self->priv->sending_telephony_event)) + if (!fs_session_stop_telephony_event (self->priv->fs_session)) WARNING (self, "stopping event failed"); } /* this week, volume is 8, for the sake of argument... */ - if (!fs_session_start_telephony_event (self->priv->fs_session, event, 8, - FS_DTMF_METHOD_AUTO)) + if (!fs_session_start_telephony_event (self->priv->fs_session, event, 8)) WARNING (self, "sending event %u failed", event); - self->priv->sending_telephony_event = FS_DTMF_METHOD_AUTO; + self->priv->sending_telephony_event = TRUE; } static gboolean check_codecs_for_telephone_event (TfStream *self, GList **codecs, - FsCodec *send_codec, guint codecid) + FsCodec *send_codec, gint codecid) { GList *item = NULL; - gboolean found = FALSE; GError *error = NULL; - - again: + gboolean changed = FALSE; for (item = *codecs; item; item = item->next) { @@ -2088,29 +2092,25 @@ check_codecs_for_telephone_event (TfStream *self, GList **codecs, if (!g_ascii_strcasecmp (codec->encoding_name, "telephone-event") && send_codec->clock_rate == codec->clock_rate) { - if (found) - { - *codecs = g_list_delete_link (*codecs, item); - goto again; - } - else if (codecid == (guint) codec->id) - { - return TRUE; } + if (codecid < 0 || codecid == codec->id) + return TRUE; else - { - codec->id = codecid; - } + codec->id = codecid; + changed = TRUE; + break; } } - if (!found) + if (codecid < 0) + return FALSE; + + if (!changed) { FsCodec *codec = fs_codec_new (codecid, "telephone-event", FS_MEDIA_TYPE_AUDIO, send_codec->clock_rate); *codecs = g_list_append (*codecs, codec); } - if (!fs_stream_set_remote_codecs (self->priv->fs_stream, *codecs, &error)) { /* @@ -2146,12 +2146,11 @@ start_named_telephony_event (TpMediaStreamHandler *proxy, if (check_codecs_for_telephone_event (self, &codecs, send_codec, codecid)) { - if (self->priv->sending_telephony_event != -1) + if (self->priv->sending_telephony_event) { WARNING (self, "start new telephony event without stopping the" " previous one first"); - if (!fs_session_stop_telephony_event (self->priv->fs_session, - self->priv->sending_telephony_event)) + if (!fs_session_stop_telephony_event (self->priv->fs_session)) WARNING (self, "stopping event failed"); } @@ -2159,9 +2158,9 @@ start_named_telephony_event (TpMediaStreamHandler *proxy, DEBUG (self, "Sending named telephony event %d with pt %d", event, codecid); if (!fs_session_start_telephony_event (self->priv->fs_session, - event, 8, FS_DTMF_METHOD_RTP_RFC4733)) + event, 8)) WARNING (self, "sending event %u failed", event); - self->priv->sending_telephony_event = FS_DTMF_METHOD_RTP_RFC4733; + self->priv->sending_telephony_event = TRUE; } else { @@ -2184,26 +2183,45 @@ start_sound_telephony_event (TpMediaStreamHandler *proxy, guchar event, gpointer user_data, GObject *object) { TfStream *self = TF_STREAM (object); + FsCodec *send_codec = NULL; + GList *codecs = NULL; g_assert (self->priv->fs_session != NULL); DEBUG (self, "called with event %u", event); - if (self->priv->sending_telephony_event != -1) + g_object_get (self->priv->fs_session, + "current-send-codec", &send_codec, + "codecs", &codecs, + NULL); + + if (send_codec == NULL) + goto out; + + if (check_codecs_for_telephone_event (self, &codecs, send_codec, -1)) + { + WARNING (self, "Tried to do sound event while telephone-event is set," + " ignoring"); + goto out; + } + + if (self->priv->sending_telephony_event) { WARNING (self, "start new telephony event without stopping the" " previous one first"); - if (!fs_session_stop_telephony_event (self->priv->fs_session, - self->priv->sending_telephony_event)) + if (!fs_session_stop_telephony_event (self->priv->fs_session)) WARNING (self, "stopping event failed"); } /* this week, volume is 8, for the sake of argument... */ - if (!fs_session_start_telephony_event (self->priv->fs_session, event, 8, - FS_DTMF_METHOD_IN_BAND)) + if (!fs_session_start_telephony_event (self->priv->fs_session, event, 8)) WARNING (self, "sending sound event %u failed", event); - self->priv->sending_telephony_event = FS_DTMF_METHOD_IN_BAND; + self->priv->sending_telephony_event = TRUE; + + out: + fs_codec_destroy (send_codec); + fs_codec_list_destroy (codecs); } @@ -2218,13 +2236,11 @@ stop_telephony_event (TpMediaStreamHandler *proxy G_GNUC_UNUSED, DEBUG (self, "called"); - if (self->priv->sending_telephony_event == -1) - WARNING (self, "Trying to stop telephony event without having started" - " one"); - self->priv->sending_telephony_event = -1; + if (!self->priv->sending_telephony_event) + WARNING (self, "Trying to stop telephony event without having started one"); + self->priv->sending_telephony_event = FALSE; - if (!fs_session_stop_telephony_event (self->priv->fs_session, - FS_DTMF_METHOD_AUTO)) + if (!fs_session_stop_telephony_event (self->priv->fs_session)) WARNING (self, "stopping event failed"); } @@ -2432,21 +2448,19 @@ cb_fs_send_codec_changed (TfStream *self, DEBUG (self, "Sending queued event %d with pt %d", dtmfevent->event_id, dtmfevent->codec_id); dtmfevent = g_queue_pop_head (&self->priv->events_to_send); - if (self->priv->sending_telephony_event != -1) + if (self->priv->sending_telephony_event) { WARNING (self, "start new telephony event without stopping the" " previous one first"); - if (!fs_session_stop_telephony_event (self->priv->fs_session, - self->priv->sending_telephony_event)) + if (!fs_session_stop_telephony_event (self->priv->fs_session)) WARNING (self, "stopping event failed"); } - self->priv->sending_telephony_event = -1; + self->priv->sending_telephony_event = FALSE; if (!fs_session_start_telephony_event (self->priv->fs_session, - dtmfevent->event_id, 8, FS_DTMF_METHOD_RTP_RFC4733)) + dtmfevent->event_id, 8)) WARNING (self, "sending event %u failed", dtmfevent->event_id); - fs_session_stop_telephony_event (self->priv->fs_session, - FS_DTMF_METHOD_RTP_RFC4733); + fs_session_stop_telephony_event (self->priv->fs_session); g_slice_free (struct DtmfEvent, dtmfevent); } @@ -2500,7 +2514,7 @@ _tf_stream_bus_message (TfStream *stream, if (!stream->priv->fs_stream || !stream->priv->fs_session) return FALSE; - if (gst_structure_has_name (s, "farsight-error")) + if (gst_structure_has_name (s, "farstream-error")) { GObject *object; const GValue *value = NULL; @@ -2521,14 +2535,6 @@ _tf_stream_bus_message (TfStream *stream, msg = gst_structure_get_string (s, "error-msg"); debug = gst_structure_get_string (s, "debug-msg"); - /* - * We ignore the Unknown Cname error because current signalling - * does no provide us with a cname - */ - if (errorno == FS_ERROR_UNKNOWN_CNAME) - return TRUE; - - enumclass = g_type_class_ref (FS_TYPE_ERROR); enumvalue = g_enum_get_value (enumclass, errorno); WARNING (stream, "error (%s (%d)): %s : %s", @@ -2539,7 +2545,7 @@ _tf_stream_bus_message (TfStream *stream, return TRUE; } } - else if (gst_structure_has_name (s, "farsight-new-local-candidate")) + else if (gst_structure_has_name (s, "farstream-new-local-candidate")) { FsStream *fsstream; FsCandidate *candidate; @@ -2557,7 +2563,7 @@ _tf_stream_bus_message (TfStream *stream, cb_fs_new_local_candidate (stream, candidate); return TRUE; } - else if (gst_structure_has_name (s, "farsight-local-candidates-prepared")) + else if (gst_structure_has_name (s, "farstream-local-candidates-prepared")) { FsStream *fsstream; const GValue *value; @@ -2572,7 +2578,7 @@ _tf_stream_bus_message (TfStream *stream, return TRUE; } - else if (gst_structure_has_name (s, "farsight-new-active-candidate-pair")) + else if (gst_structure_has_name (s, "farstream-new-active-candidate-pair")) { FsStream *fsstream; FsCandidate *local_candidate; @@ -2594,7 +2600,7 @@ _tf_stream_bus_message (TfStream *stream, cb_fs_new_active_candidate_pair (stream, local_candidate, remote_candidate); return TRUE; } - else if (gst_structure_has_name (s, "farsight-current-recv-codecs-changed")) + else if (gst_structure_has_name (s, "farstream-current-recv-codecs-changed")) { FsStream *fsstream; GList *codecs; @@ -2612,7 +2618,7 @@ _tf_stream_bus_message (TfStream *stream, cb_fs_recv_codecs_changed (stream, codecs); return TRUE; } - else if (gst_structure_has_name (s, "farsight-codecs-changed")) + else if (gst_structure_has_name (s, "farstream-codecs-changed")) { FsSession *fssession; const GValue *value; @@ -2629,7 +2635,7 @@ _tf_stream_bus_message (TfStream *stream, return TRUE; } - else if (gst_structure_has_name (s, "farsight-send-codec-changed")) + else if (gst_structure_has_name (s, "farstream-send-codec-changed")) { FsSession *fssession; const GValue *value; @@ -2645,27 +2651,26 @@ _tf_stream_bus_message (TfStream *stream, value = gst_structure_get_value (s, "codec"); codec = g_value_get_boxed (value); - g_object_get (fssession, "current-send-codec", &objcodec, NULL); + if (!fs_codec_are_equal (objcodec, codec)) { fs_codec_destroy (objcodec); return TRUE; } - fs_codec_destroy (objcodec); value = gst_structure_get_value (s, "secondary-codecs"); secondary_codecs = g_value_get_boxed (value); - DEBUG (stream, "Send codec changed: " FS_CODEC_FORMAT, - FS_CODEC_ARGS (codec)); + if (codec) + DEBUG (stream, "Send codec changed: " FS_CODEC_FORMAT, + FS_CODEC_ARGS (codec)); cb_fs_send_codec_changed (stream, codec, secondary_codecs); - return TRUE; } - else if (gst_structure_has_name (s, "farsight-component-state-changed")) + else if (gst_structure_has_name (s, "farstream-component-state-changed")) { FsStream *fsstream; const GValue *value; @@ -2686,7 +2691,7 @@ _tf_stream_bus_message (TfStream *stream, cb_fs_component_state_changed (stream, component, fsstate); return TRUE; } - else if (gst_structure_has_name (s, "farsight-renegotiate")) + else if (gst_structure_has_name (s, "farstream-renegotiate")) { FsSession *fssession; const GValue *value; @@ -2795,15 +2800,15 @@ fs_codecs_to_feedback_messages (GList *fscodecs) { FsCodec *fs_codec = item->data; - if (fs_codec->ABI.ABI.minimum_reporting_interval != G_MAXUINT || - fs_codec->ABI.ABI.feedback_params) + if (fs_codec->minimum_reporting_interval != G_MAXUINT || + fs_codec->feedback_params) { GValueArray *codec = g_value_array_new (2); GPtrArray *messages = g_ptr_array_new (); GValue *val; GList *item2; - for (item2 = fs_codec->ABI.ABI.feedback_params; + for (item2 = fs_codec->feedback_params; item2; item2 = item2->next) { @@ -2832,7 +2837,7 @@ fs_codecs_to_feedback_messages (GList *fscodecs) g_value_array_insert (codec, 0, NULL); val = g_value_array_get_nth (codec, 0); g_value_init (val, G_TYPE_UINT); - g_value_set_uint (val, fs_codec->ABI.ABI.minimum_reporting_interval); + g_value_set_uint (val, fs_codec->minimum_reporting_interval); g_value_array_insert (codec, 1, NULL); val = g_value_array_get_nth (codec, 1); @@ -2900,7 +2905,6 @@ _tf_stream_get_header_extensions (TfStream *stream) void _tf_stream_try_sending_codecs (TfStream *stream) { - gboolean ready = FALSE; GList *fscodecs = NULL; GList *item = NULL; GPtrArray *tpcodecs = NULL; @@ -2908,6 +2912,7 @@ _tf_stream_try_sending_codecs (TfStream *stream) GPtrArray *header_extensions = NULL; gboolean sent = FALSE; GList *resend_codecs = NULL; + const gchar *codecs_prop = NULL; if (stream->priv->block_ready) return; @@ -2915,17 +2920,21 @@ _tf_stream_try_sending_codecs (TfStream *stream) DEBUG (stream, "called (send_local:%d send_supported:%d)", stream->priv->send_local_codecs, stream->priv->send_supported_codecs); - g_object_get (stream->priv->fs_session, "codecs-ready", &ready, NULL); - if (!ready && stream->priv->has_resource & TP_MEDIA_STREAM_DIRECTION_SEND) + if (stream->priv->has_resource & TP_MEDIA_STREAM_DIRECTION_SEND) + codecs_prop = "codecs"; + else + codecs_prop = "codecs-without-config"; + + g_object_get (stream->priv->fs_session, codecs_prop, &fscodecs, NULL); + + if (!fscodecs) { DEBUG (stream, "Ignoring new codecs because we're sending," " but we're not ready"); return; } - g_object_get (stream->priv->fs_session, "codecs", &fscodecs, NULL); - for(item = fscodecs; item; item = g_list_next (item)) { gchar *tmp = fs_codec_to_string (item->data); @@ -3105,7 +3114,7 @@ cb_fs_component_state_changed (TfStream *self, FsStreamState fsstate) { TpMediaStreamState state; - const gchar *state_str; + const gchar *state_str = ""; if (component != 1) return; @@ -3119,11 +3128,10 @@ cb_fs_component_state_changed (TfStream *self, break; case FS_STREAM_STATE_GATHERING: case FS_STREAM_STATE_CONNECTING: - case FS_STREAM_STATE_CONNECTED: - state_str = "connecting"; state = TP_MEDIA_STREAM_STATE_CONNECTING; + state_str = "connecting"; break; - case FS_STREAM_STATE_READY: + case FS_STREAM_STATE_CONNECTED: default: state_str = "connected"; state = TP_MEDIA_STREAM_STATE_CONNECTED; diff --git a/telepathy-farsight/stream.h b/telepathy-farsight/stream.h index f50224f..ddd4b6b 100644 --- a/telepathy-farsight/stream.h +++ b/telepathy-farsight/stream.h @@ -5,7 +5,7 @@ #include #include -#include +#include G_BEGIN_DECLS diff --git a/telepathy-farsight/telepathy-farsight-uninstalled.pc.in b/telepathy-farsight/telepathy-farsight-uninstalled.pc.in index c78a0bc..4386ea3 100644 --- a/telepathy-farsight/telepathy-farsight-uninstalled.pc.in +++ b/telepathy-farsight/telepathy-farsight-uninstalled.pc.in @@ -6,6 +6,6 @@ abs_top_builddir=@abs_top_builddir@ Name: Telepathy-Farsight Description: Library implementing the Telepathy Media Signalling API using Farsight2 Version: @VERSION@ -Requires.private: dbus-glib-1 >= 0.73, glib-2.0 >= 2.10, gobject-2.0 >= 2.10, farsight2-0.10 > 0.0.3 +Requires.private: dbus-glib-1 >= 0.73, glib-2.0 >= 2.10, gobject-2.0 >= 2.10, farstream-0.1 > 0.0.3 Libs: ${abs_top_builddir}/telepathy-farsight/libtelepathy-farsight.la Cflags: -I${abs_top_srcdir} -I${abs_top_builddir} diff --git a/telepathy-farsight/telepathy-farsight.pc.in b/telepathy-farsight/telepathy-farsight.pc.in index fcae29e..793bc00 100644 --- a/telepathy-farsight/telepathy-farsight.pc.in +++ b/telepathy-farsight/telepathy-farsight.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: Telepathy-Farsight Description: Library implementing the Telepathy Media Signalling API using Farsight2 Version: @VERSION@ -Requires.private: dbus-glib-1 >= 0.73, glib-2.0 >= 2.10, gobject-2.0 >= 2.10, farsight2-0.10 > 0.0.3, telepathy-glib >= 0.7.23, gstreamer-0.10 +Requires.private: dbus-glib-1 >= 0.73, glib-2.0 >= 2.10, gobject-2.0 >= 2.10, farstream-0.1 > 0.0.3, telepathy-glib >= 0.7.23, gstreamer-0.10 Libs: -L${libdir} -ltelepathy-farsight Cflags: -I${includedir}/telepathy-1.0 -- 1.7.7.6