Philip Withnall [Wed, 15 Sep 2010 15:22:30 +0000 (16:22 +0100)]
Add individuals to the EmpathyIndividualStore before updating them
When adding a new contact _with_ an alias set, the code in
EmpathyIndividualStore was listening to (and acting on) property notifications
(such as alias changes) for the individual before adding the individual to the
store, resulting in duplicate contact listings. Closes: bgo#629380
GStreamers basetransform has a nasty issue where its caps negotiation doesn't
keep the ordering of caps when unioning, as a result of this linking the
pipeline as "<src> ! videoscale ! colorspace ! video/x-raw-yuv" means at the
<src> element yuv is no longer preferred.
Changing the pipeline to be "<src> ! colorspace ! videoscale ! video/x-raw-yuv"
forces the videoscale to only negotiate video/x-raw-yuv, which in turns ensures
the colorspace and <src> element pick the right colorspace.
In combination with emulated formats in v4l2src picking the wrong colorspace
causes quite a performance hit (the src would do a color conversion in libv4l,
while the colorspace element would later convert it back to a colorspace
actually native to the src device!)
* Fix various typos and broken phrasing
* Use the right log level for various messages
* Fix potentially calling gst_object_unref (NULL)
* Fix coding style
* Make various debug messages more useful
Add videomaxrate and postproc_tmpnoise as optional filters to
empathy_video_src_init. Thay will used if thay are installed.
videomaxrate will set maximal framerate to 15fps if some haw webcam
will get more than 15fps it will not kill empathy-av with high CPU load.
postproc_tmpnoise will reduce video noise produced by most (all) webcams.
This will add smoll overhead for load but reduce CPU load of video encoder.
Also this should reduce network load (for theoraenc x2)
Instead of hardcoding one server, let the connection manager try doing
SRV resolution and if the resolution fails, let it try a list of fallback
servers. Note that talkx.l.google.com is now used instead of
talk.google.com. This is the DNS used in the Windows client, this DNS
returns a list of IPs instead of 1. This also enable usage of HTTPS
proxy when falling back to port 443 with old_ssl.
Philip Withnall [Tue, 7 Sep 2010 09:46:12 +0000 (10:46 +0100)]
Remove calls to gtk_dialog_set_has_separator() if building against GTK+ 3
gtk_dialog_set_has_separator() has been removed in GTK+ 3, but can't be
removed (or the property's default value changed) in GTK+ 2 without breaking
API. This adds a wrapper macro to keep the calls when building against GTK+ 2,
and remove them when building against GTK+ 3.
Philip Withnall [Wed, 1 Sep 2010 10:05:20 +0000 (11:05 +0100)]
Add a confirmation dialogue to the unlink process
This makes it harder to accidentally remove a linked Individual now that the
“Unlink” button is easier to find, and also makes it more obvious that
Empathy hasn't just crashed when unlinking. Helps: bgo#628377
Philip Withnall [Thu, 2 Sep 2010 17:29:50 +0000 (18:29 +0100)]
Update the Edit dialogue on contact linking or unlinking
Ensure any open Edit dialogues are:
• closed, if they're editing the details for a meta-contact which is then
unlinked; or
• reloaded to show the details of the new meta-contact, if they're editing
the details for a contact which is then linked.
Philip Withnall [Thu, 2 Sep 2010 16:29:50 +0000 (17:29 +0100)]
Update the Information dialogue on contact linking or unlinking
Ensure any open Information dialogues are:
• closed, if they're showing the details for a meta-contact which is then
unlinked; or
• reloaded to show the details of the new meta-contact, if they're showing
the details for a contact which is then linked.
Philip Withnall [Thu, 2 Sep 2010 16:28:38 +0000 (17:28 +0100)]
Handle the EmpathyIndividualWidget disappearing during an async details call
The EmpathyIndividualWidget may be destroyed between starting and finishing
an async call to get contact details. This patch prevents the finishing
callback from accessing private data which may have been freed.
Philip Withnall [Thu, 2 Sep 2010 15:39:09 +0000 (16:39 +0100)]
Listen to FolksIndividual::removed in EmpathyIndividualWidget
In certain cases, a tooltip will be updated on the contact list when unlinking
a meta-contact (reproducable with a meta-contact of meta-contacts). In order
to prevent an individual table from getting stuck in the
EmpathyIndividualWidget in the tooltip, EmpathyIndividualWidget needs to
connect to FolksIndividual::removed to be updated when the Individual is
removed or replaced.
Philip Withnall [Thu, 2 Sep 2010 15:02:01 +0000 (16:02 +0100)]
Add a heuristic to prefer audio- and video-capable Personas when calling
When choosing which Persona out of an Individual to start an audio or video
call to, given a choice between two Personas of equal presence, choose the
one which is capable of both audio and video calls over the one which is
capable of only one of the two. This is because clients which can do both
types of call are generally more featureful than those which can only do one
type. Helps: bgo#628338