]> www.infradead.org Git - pidgin-chime.git/log
pidgin-chime.git
7 years agoAdd gst-chime README, homogenize licence to LGPLv2.1
David Woodhouse [Sat, 28 Apr 2018 06:02:07 +0000 (07:02 +0100)]
Add gst-chime README, homogenize licence to LGPLv2.1

7 years agoAutoload seen plugin
David Woodhouse [Fri, 27 Apr 2018 14:34:24 +0000 (15:34 +0100)]
Autoload seen plugin

7 years agoRemove debug printfs from fs-app-transmitter
David Woodhouse [Fri, 27 Apr 2018 12:32:23 +0000 (13:32 +0100)]
Remove debug printfs from fs-app-transmitter

7 years agoAdd plugin to show when messages are seen
David Woodhouse [Fri, 27 Apr 2018 12:31:17 +0000 (13:31 +0100)]
Add plugin to show when messages are seen

We could actually do delivered vs. seen if we wanted to but this
is a good start.

7 years agoClose Joinable Meetings dialog when there are none left
David Woodhouse [Wed, 25 Apr 2018 14:36:34 +0000 (15:36 +0100)]
Close Joinable Meetings dialog when there are none left

In fact, we should probably do this when we *join* the only meeting too.

7 years agoAllow p2p calls
David Woodhouse [Wed, 25 Apr 2018 14:30:14 +0000 (15:30 +0100)]
Allow p2p calls

7 years agoHandle lack of screenshare in Pidgin more gracefully
David Woodhouse [Tue, 24 Apr 2018 09:39:00 +0000 (10:39 +0100)]
Handle lack of screenshare in Pidgin more gracefully

7 years agoRemove limit on incoming frames for screenshare websocket
David Woodhouse [Mon, 23 Apr 2018 23:09:27 +0000 (00:09 +0100)]
Remove limit on incoming frames for screenshare websocket

7 years agoUse Pidgin support for selecting screenshare window/monitor
David Woodhouse [Mon, 23 Apr 2018 23:08:52 +0000 (00:08 +0100)]
Use Pidgin support for selecting screenshare window/monitor

7 years agoAdd IM button to call participants window
David Woodhouse [Thu, 19 Apr 2018 14:21:05 +0000 (15:21 +0100)]
Add IM button to call participants window

This is somewhat horrid as we have to look them up by name. Must fix
that in Pidgin upstream...

7 years agoHook up 'src-element' for screen shares
David Woodhouse [Thu, 19 Apr 2018 13:55:50 +0000 (14:55 +0100)]
Hook up 'src-element' for screen shares

Requires the corresponding Pidgin patch in
https://bitbucket.org/pidgin/main/pull-requests/322

The ximagesrc thing still doesn't work well, because of XLib threading
issues. We really want a gdkimagesrc instead...

7 years agoRemove imagemagick again as it breaks the build
David Woodhouse [Sun, 15 Apr 2018 22:59:35 +0000 (00:59 +0200)]
Remove imagemagick again as it breaks the build

7 years agoAttempt state management
David Woodhouse [Sun, 15 Apr 2018 21:20:12 +0000 (23:20 +0200)]
Attempt state management

7 years agoBasic implementation of outbound screen share
David Woodhouse [Sat, 14 Apr 2018 22:07:36 +0000 (00:07 +0200)]
Basic implementation of outbound screen share

We're stilling Pidgin it's outbound video for now, so I've been testing
with videotestsrc. Need to teach Pidgin about a screen share media type
and do the "choose monitor / window" UI bits there where they belong.

7 years agoStart cleaning up screen transport
David Woodhouse [Fri, 13 Apr 2018 16:37:54 +0000 (18:37 +0200)]
Start cleaning up screen transport

7 years agoFirst attempt at screen share RX
David Woodhouse [Fri, 13 Apr 2018 14:53:50 +0000 (16:53 +0200)]
First attempt at screen share RX

Lots of work to do to make this production-worthy but snapshot the first
one that actually worked...

7 years agoFix potential use of NULL chat->call
David Woodhouse [Thu, 12 Apr 2018 09:03:11 +0000 (11:03 +0200)]
Fix potential use of NULL chat->call

7 years agoShow meeting participants' shared-screen status
David Woodhouse [Thu, 12 Apr 2018 08:39:17 +0000 (10:39 +0200)]
Show meeting participants' shared-screen status

7 years agoDon't attempt to send on NULL ws
David Woodhouse [Wed, 11 Apr 2018 11:31:01 +0000 (13:31 +0200)]
Don't attempt to send on NULL ws

On reconnect, RT packets could be submitted while there is no active
transport

7 years agoChange incoming SSRC for each audio reconnect
David Woodhouse [Wed, 11 Apr 2018 08:32:35 +0000 (10:32 +0200)]
Change incoming SSRC for each audio reconnect

The sequence numbers start again; we should probably represent it as a
new SSRC in the RTP packets we fake for GStreamer.

7 years agoAudio transport cleanup
David Woodhouse [Wed, 11 Apr 2018 07:32:18 +0000 (09:32 +0200)]
Audio transport cleanup

Fix some race conditions, implement reconnect, etc.

7 years agoBasic DTLS functionality
David Woodhouse [Mon, 9 Apr 2018 22:27:28 +0000 (00:27 +0200)]
Basic DTLS functionality

Still a little bit in the "Look Ma!" camp but getting there...

7 years agoMonochrome icon for sub-24px images
David Woodhouse [Mon, 9 Apr 2018 20:22:45 +0000 (22:22 +0200)]
Monochrome icon for sub-24px images

7 years agoEstablish UDP 'connection'
David Woodhouse [Mon, 9 Apr 2018 12:44:48 +0000 (14:44 +0200)]
Establish UDP 'connection'

Next, figure out how to actually invoke GnuTLS using it.

7 years agoStart hooking up DTLS transport
David Woodhouse [Mon, 9 Apr 2018 12:06:40 +0000 (14:06 +0200)]
Start hooking up DTLS transport

First, resolve the address at least...

7 years agoSwitch to live mode for appsrc
David Woodhouse [Fri, 6 Apr 2018 09:42:36 +0000 (10:42 +0100)]
Switch to live mode for appsrc

The input data should be handled as a live stream. Maybe this will
help deal with the case where we get incoming silence on some calls when
Pidgin has been running for a while.

7 years agoRemove "do not publish outside Amazon" warnings now we're preparing to do so
David Woodhouse [Thu, 5 Apr 2018 15:52:16 +0000 (16:52 +0100)]
Remove "do not publish outside Amazon" warnings now we're preparing to do so

7 years agoUse Chime logo from Amazon
David Woodhouse [Thu, 5 Apr 2018 15:35:12 +0000 (16:35 +0100)]
Use Chime logo from Amazon

Instead of using an externally-created CC0 image, use the one from
https://aws.amazon.com/architecture/icons/

Add -trim to IM convert invocations.

7 years agoStop using purple headers, make cxn->prpl_conn a 'void *'.
David Woodhouse [Thu, 5 Apr 2018 13:48:39 +0000 (14:48 +0100)]
Stop using purple headers, make cxn->prpl_conn a 'void *'.

It's only used by the login code now, which is going to be cleaned
up. For now though let's just make it a void pointer.

7 years agoFix gratuitous use of cxn->prpl_conn
David Woodhouse [Thu, 5 Apr 2018 13:48:21 +0000 (14:48 +0100)]
Fix gratuitous use of cxn->prpl_conn

We have a better place to get this from

7 years agoMove PRPL sources to prpl/
David Woodhouse [Thu, 5 Apr 2018 13:23:18 +0000 (14:23 +0100)]
Move PRPL sources to prpl/

7 years agoMove Chime core sources to chime/
David Woodhouse [Thu, 5 Apr 2018 13:13:59 +0000 (14:13 +0100)]
Move Chime core sources to chime/

7 years agoSplit libchime and libchimeprpl
David Woodhouse [Thu, 5 Apr 2018 13:03:25 +0000 (14:03 +0100)]
Split libchime and libchimeprpl

Login code goes with libchimeprpl for now, until it gets fixed up.

7 years agoClean up Makefile to split core Chime vs. Purple files
David Woodhouse [Thu, 5 Apr 2018 12:20:28 +0000 (13:20 +0100)]
Clean up Makefile to split core Chime vs. Purple files

7 years agoUpdate protobuf files
David Woodhouse [Thu, 5 Apr 2018 11:42:14 +0000 (12:42 +0100)]
Update protobuf files

7 years agoMake purple_chime_{destroy,init}_chats take a PurpleConnection
David Woodhouse [Thu, 5 Apr 2018 11:39:50 +0000 (12:39 +0100)]
Make purple_chime_{destroy,init}_chats take a PurpleConnection

These have slowly been changed; let's make them consistent again.

7 years agoCancel conversation list update properly on connection close
David Woodhouse [Thu, 5 Apr 2018 11:18:38 +0000 (12:18 +0100)]
Cancel conversation list update properly on connection close

There was race condition with close, and if an update was pending there
was a use-after-free of the connection object. Fix that the same way as
we do for the joinable meetings dialog.

7 years agoHandle transient buddies with NO_SAVE flag
David Woodhouse [Thu, 22 Mar 2018 23:57:21 +0000 (23:57 +0000)]
Handle transient buddies with NO_SAVE flag

We want libpurple to be able to create transient buddies which we can use
purely as a vehicle for conveying presence/name/photo information for an
IM window.

7 years agoFix use-after-free of room->members when it's reopened
David Woodhouse [Thu, 22 Mar 2018 23:56:52 +0000 (23:56 +0000)]
Fix use-after-free of room->members when it's reopened

7 years agoAdd 'disposed' signal to ChimeObjects
David Woodhouse [Fri, 16 Mar 2018 13:56:44 +0000 (13:56 +0000)]
Add 'disposed' signal to ChimeObjects

We'll want this for tracking transient buddies

7 years agoAdd get_cb_alias
David Woodhouse [Thu, 22 Mar 2018 23:43:28 +0000 (23:43 +0000)]
Add get_cb_alias

7 years agoSubscribe to presence channel only when availability first fetched
David Woodhouse [Fri, 16 Mar 2018 21:21:03 +0000 (21:21 +0000)]
Subscribe to presence channel only when availability first fetched

To avoid subscribing to presence of *all* members of chat rooms, only
subscribe once their availability is first requested. This should help
to avoid us getting kicked off when the rate limit kicks in.

7 years agoDo not subscribe to users' profile channels
David Woodhouse [Thu, 15 Mar 2018 17:20:11 +0000 (17:20 +0000)]
Do not subscribe to users' profile channels

We aren't supposed to, and we hit a rate limit and get disconnected if we
subscribe to too much, too quickly.

7 years agoAdd 'Recent Conversations' dialog
David Woodhouse [Wed, 14 Mar 2018 13:32:56 +0000 (13:32 +0000)]
Add 'Recent Conversations' dialog

7 years agoUpdate TODO
David Woodhouse [Tue, 13 Mar 2018 10:09:52 +0000 (10:09 +0000)]
Update TODO

7 years agocall: init protobuf messages when declaring the variables
Ignacio Casal Quinteiro [Tue, 13 Mar 2018 10:04:03 +0000 (11:04 +0100)]
call: init protobuf messages when declaring the variables

7 years agoRequire fonts-symbola for the 🔇 🔈 🔉 🔊 characters.
David Woodhouse [Tue, 13 Mar 2018 09:21:04 +0000 (09:21 +0000)]
Require fonts-symbola for the ðŸ”‡ ðŸ”ˆ ðŸ”‰ ðŸ”Š characters.

7 years agoNo need for backslashes
Ignacio Casal Quinteiro [Tue, 13 Mar 2018 09:07:21 +0000 (10:07 +0100)]
No need for backslashes

7 years agoattachments: remove exec permission
Ignacio Casal Quinteiro [Tue, 13 Mar 2018 08:09:11 +0000 (09:09 +0100)]
attachments: remove exec permission

7 years agoMore audio cleanup
David Woodhouse [Wed, 7 Mar 2018 20:32:03 +0000 (20:32 +0000)]
More audio cleanup

Fix up lifetime handling on the appsrc/appsink and uninstall the callbacks
when we're done.

Also fix up the timer handling for empty outbound packets. When the system
was slow we were sending 'muted' RT packets in between the audio frames,
so set the timers *only* when we're actually muted. If we fail to send
audio at other times, let it just do a red mic like it should.

7 years agoSlight cleanup for call media handling
David Woodhouse [Wed, 7 Mar 2018 16:33:38 +0000 (16:33 +0000)]
Slight cleanup for call media handling

The call is connecting before do_join_chat() is ever called, which means we
may miss some of the early state transitions. Try to cope with that.

We probably want to drive the call connection directly from chat code in
the end, but this will do for now.

Also decouple the media setup and connection; the call window in Pidgin
should now say 'Calling...' and then 'Call in progress' once it's connected.

Hopefully this helps to deal with some of the issues with slow call setup.
I *was* able to reproduce the ever-slower call connection but now I can't.
Not sure if that's just coincidence...

7 years agoFix up some muted/silent confusion
David Woodhouse [Wed, 7 Mar 2018 15:15:21 +0000 (15:15 +0000)]
Fix up some muted/silent confusion

7 years agoThese need not to be const now that we actually free them.
David Woodhouse [Wed, 7 Mar 2018 15:10:55 +0000 (15:10 +0000)]
These need not to be const now that we actually free them.

7 years agoSlight cleanup of media setup, leak fixes
David Woodhouse [Wed, 7 Mar 2018 14:16:05 +0000 (14:16 +0000)]
Slight cleanup of media setup, leak fixes

7 years agoFix unimplemented free_participant()
David Woodhouse [Wed, 7 Mar 2018 14:15:35 +0000 (14:15 +0000)]
Fix unimplemented free_participant()

Probably didn't need valgrind to see *that* one was a leak...

7 years agoClean up fetch_presences() idle handling
David Woodhouse [Wed, 7 Mar 2018 12:31:41 +0000 (12:31 +0000)]
Clean up fetch_presences() idle handling

Properly avoid re-running the function when it's already scheduled, and
ensure we cancel it when we need to too. Also ensure that disposed contacts
are removed from the 'contacts_needed' list.

7 years agoFree members list for group conversations
David Woodhouse [Wed, 7 Mar 2018 13:39:48 +0000 (13:39 +0000)]
Free members list for group conversations

7 years agoFix leak of data messages
David Woodhouse [Wed, 7 Mar 2018 13:26:02 +0000 (13:26 +0000)]
Fix leak of data messages

7 years agoMake the package require gst-plugins-bad
David Woodhouse [Tue, 27 Feb 2018 18:35:35 +0000 (19:35 +0100)]
Make the package require gst-plugins-bad

7 years agoOnly consider active members for mentions
Michael Gruenewald [Mon, 12 Feb 2018 15:05:31 +0000 (16:05 +0100)]
Only consider active members for mentions

Inactive members are effectively not part of the chat anymore and
shouldn't be considered for mentioning. This is especially helpful when
a member changed their profile (e.g., mail, domain, whatnot) but not
their display name.

7 years agoPrevent double-replacements in mentions
Michael Gruenewald [Fri, 2 Feb 2018 14:39:56 +0000 (15:39 +0100)]
Prevent double-replacements in mentions

Outgoing mentions replace a name with a reference to the Chime user.
Sometimes you have two users with the same name in a chat room, or two
people where one name is a prefix of another one. This could end up with
something like `<@id1|<@id2|Last, First>>`, which is broken.

This change makes sure to only replace at word borders and not if a `|`
is in front. This isn't perfect, but better than before.

7 years agoFix error handling when chime payloader not present
David Woodhouse [Sun, 25 Feb 2018 21:35:08 +0000 (22:35 +0100)]
Fix error handling when chime payloader not present

7 years agoEnforce mono
David Woodhouse [Sun, 25 Feb 2018 21:34:53 +0000 (22:34 +0100)]
Enforce mono

7 years agoDon't force either application/x-rtp or application/x-srtp
David Woodhouse [Fri, 23 Feb 2018 20:03:55 +0000 (20:03 +0000)]
Don't force either application/x-rtp or application/x-srtp

It shouldn't matter if gst-plugins-bad is installed.

cf. https://bugzilla.gnome.org/show_bug.cgi?id=793704

7 years agoDump gst graph on PURPLE_MEDIA_STATE_CONNECTED to get better view
David Woodhouse [Thu, 22 Feb 2018 14:07:03 +0000 (14:07 +0000)]
Dump gst graph on PURPLE_MEDIA_STATE_CONNECTED to get better view

The first dump isn't as useful because a lot of it isn't fully
configured until packets start flowing.

7 years agoRemove Pidgin 2.13.0 checks for audio UI
David Woodhouse [Thu, 22 Feb 2018 13:58:27 +0000 (13:58 +0000)]
Remove Pidgin 2.13.0 checks for audio UI

Now we're using fsrtpconference, it won't crash.

7 years agoAdd GStreamer module to debian package
David Woodhouse [Thu, 22 Feb 2018 09:33:10 +0000 (09:33 +0000)]
Add GStreamer module to debian package

7 years agoAdd prototype for fs_init_plugin
David Woodhouse [Thu, 22 Feb 2018 09:25:56 +0000 (09:25 +0000)]
Add prototype for fs_init_plugin

7 years agoMerge branch 'audio'.
David Woodhouse [Thu, 22 Feb 2018 09:20:01 +0000 (09:20 +0000)]
Merge branch 'audio'.

I've been using it for every call I've made this week. There are still a
few things to be cleaned up, but I suppose I should concede it's time it
was merged into the master branch for others to test and heckle.

This ought to now work with the Ubuntu 16.04 packages of GStreamer,
FarStream, etc.

7 years agoUse camel_address_length() to fix build with newer EDS
David Woodhouse [Thu, 22 Feb 2018 09:16:03 +0000 (09:16 +0000)]
Use camel_address_length() to fix build with newer EDS

7 years agoAdd Chime-specific RTP payload handling
David Woodhouse [Thu, 22 Feb 2018 08:33:14 +0000 (08:33 +0000)]
Add Chime-specific RTP payload handling

RFC7587 defines the clock-rate for the OPUS payload format to be 48000.
This is painful since we're really quite like to be able to transpose
timestamps between the RTP and on-the-wire Chime protocol (which uses
16000) without conversion. It was OK having to multiply by three for the
appsrc, but dividing by three in the appsink would have overflow issues
and we'd have to reconstitute the high bits somehow.

By defining our own payload format we can work around that, and also
force it to encode only a single channel. That one might well be a bug
in the existing gstopuspay; if the output caps include 'stereo=0' it
*isn't* enforcing 'channels=1' on its input caps.

Both of the above could probably be fixed up in the OPUS payloaders
upstream, and once this code is public we can have a look at doing that.

For now though, having our own CHIME payload helps it work on Farstream
0.2.7 on Ubuntu 16.04, which can't cope with payloaders that have
multiple names (OPUS, X-GST-OPUS-DRAFT-SPITTKA-00). So it'll do for now
until we can get more traction on upstreaming the required fixes.

7 years agoCope with RTP as application/x-srtp by depayloading for ourselves
David Woodhouse [Wed, 21 Feb 2018 21:42:05 +0000 (21:42 +0000)]
Cope with RTP as application/x-srtp by depayloading for ourselves

Farstream's FsRtpConference always installs the srtpenc/srtpdec elements
even when there is no encryption. In that case they just pass packets
through unmodified. Unfortunately the caps are negotiated wrong â€” it's
still marked as application/x-srtp. This means that rtpopusdepay won't
accept it, for example.

https://bugs.freedesktop.org/show_bug.cgi?id=105193
https://bugzilla.gnome.org/show_bug.cgi?id=793704

Work around this by actually *asking* for SRTP even though that's not
what we need. And doing the depayload for ourselves.

Now this should work with and upgraded FarStream 0.2.8 and everything
else on Ubuntu 16.04 out of the box.

7 years agoCreate RTP directly for incoming audio
David Woodhouse [Tue, 20 Feb 2018 21:33:38 +0000 (21:33 +0000)]
Create RTP directly for incoming audio

It doesn't look like GStreamer/Farstream can cope with Opus with an RTP
clock rate other than 48000, but for incoming we can cope by just
multiplying by three.

7 years agoSwitch to using RTP for audio
David Woodhouse [Fri, 2 Feb 2018 20:59:13 +0000 (20:59 +0000)]
Switch to using RTP for audio

We get a jitterbuffer for free this way, which makes it a lot more usable.

It also means I can drop a lot of the timestamp mangling crap and just
transpose the protocol's sample counts into RTP headers... I think. The
idea is to drop the 'opusrtppay' part and feed RTP directly into the
appsrc, and the converse for the sink.

It does require farstream 0.2.8 *and* to remove libgstsrtp.so for now.

7 years agoFix error handling in conv_membership_jugg_cb()
David Woodhouse [Wed, 7 Feb 2018 15:12:32 +0000 (15:12 +0000)]
Fix error handling in conv_membership_jugg_cb()

... and a typo spotted while checking it.

7 years agoFix local 'node' shadowing parameter in send_message_cb()
David Woodhouse [Wed, 7 Feb 2018 14:57:37 +0000 (14:57 +0000)]
Fix local 'node' shadowing parameter in send_message_cb()

7 years agoFix ChimeContact dispose/finalize method typo
David Woodhouse [Wed, 7 Feb 2018 14:56:03 +0000 (14:56 +0000)]
Fix ChimeContact dispose/finalize method typo

7 years agoRemove some chime-connection-private.h includes
David Woodhouse [Wed, 7 Feb 2018 14:54:57 +0000 (14:54 +0000)]
Remove some chime-connection-private.h includes

7 years agoHopefully make Coverity a little less unhappy with hashing &message
David Woodhouse [Wed, 7 Feb 2018 14:51:55 +0000 (14:51 +0000)]
Hopefully make Coverity a little less unhappy with hashing &message

7 years agoFix copy-paste error spotted by Coverity
David Woodhouse [Wed, 7 Feb 2018 14:48:55 +0000 (14:48 +0000)]
Fix copy-paste error spotted by Coverity

7 years agodrop audioconvert/audioformat from src pipeline
David Woodhouse [Thu, 14 Dec 2017 16:37:11 +0000 (16:37 +0000)]
drop audioconvert/audioformat from src pipeline

7 years agoFix media close
David Woodhouse [Thu, 14 Dec 2017 14:04:36 +0000 (14:04 +0000)]
Fix media close

7 years agoClean up FsAppTransmitter
David Woodhouse [Thu, 14 Dec 2017 13:54:58 +0000 (13:54 +0000)]
Clean up FsAppTransmitter

7 years agoSynchronise mute state with server
David Woodhouse [Thu, 14 Dec 2017 13:54:32 +0000 (13:54 +0000)]
Synchronise mute state with server

7 years agoFarstream kind of working now...
David Woodhouse [Wed, 13 Dec 2017 20:25:09 +0000 (20:25 +0000)]
Farstream kind of working now...

7 years agoAttempt to migrate audio hacks to FarStream (non-functional so far)
David Woodhouse [Tue, 12 Dec 2017 17:04:08 +0000 (17:04 +0000)]
Attempt to migrate audio hacks to FarStream (non-functional so far)

7 years agoPut back the auto-connect to see if it helps (it doesn't)
David Woodhouse [Tue, 12 Dec 2017 17:03:44 +0000 (17:03 +0000)]
Put back the auto-connect to see if it helps (it doesn't)

7 years agoFix FsAppTransmitter for pipelines with more than one element
David Woodhouse [Tue, 12 Dec 2017 15:54:33 +0000 (15:54 +0000)]
Fix FsAppTransmitter for pipelines with more than one element

7 years agoOops, I broke muted calls. Fix timed RT send again.
David Woodhouse [Tue, 12 Dec 2017 15:54:12 +0000 (15:54 +0000)]
Oops, I broke muted calls. Fix timed RT send again.

7 years agoMove audio hacks out to chat.c and leave the Chime parts relatively sane
David Woodhouse [Mon, 11 Dec 2017 22:35:29 +0000 (22:35 +0000)]
Move audio hacks out to chat.c and leave the Chime parts relatively sane

One step closer to doing things "properly"...

7 years agoFurther audio cleanup
David Woodhouse [Mon, 11 Dec 2017 16:17:41 +0000 (16:17 +0000)]
Further audio cleanup

Start splitting out the parts we want to keep, from the temporary
pipeline hacks.

7 years agoLet fs-app-transmitter launch a pipeline by its description
David Woodhouse [Mon, 11 Dec 2017 15:42:28 +0000 (15:42 +0000)]
Let fs-app-transmitter launch a pipeline by its description

Instead of hard-coded audiotestsrc/filesink, let the pipeline descriptions
get passed in in the FsCandidate's 'host' and 'username' fields, much as
the FsShmTransmitter does for the filenames.

This might not last, as we can only reference named elements in a pipeline
description if they were created in that same pipeline, AFAICT. So my plan
of pre-creating the appsrc and then referencing it from the description
probably isn't going to work.

Which means we might end up with a dedicated FsChimeTransmitter after all,
but hey, at least I have a better understanding of how some of this stuff
fits together...

7 years agoStart cleaning up audio support, handle mute
David Woodhouse [Sat, 9 Dec 2017 09:01:06 +0000 (09:01 +0000)]
Start cleaning up audio support, handle mute

There are locking issues here. The appsink_new_sample() function can get
invoked from another thread, which means it can race with the timer.

I think if the g_source_remove() in do_send_rt_packet() runs while a
timed_send_rt_packet() is waiting for the rt_lock, it can deadlock.

The simple fix is probably to shift all the actual packet processing into
a separate thread with a simple packet-sending loop which does both audio
and muted frames.

Or maybe we don't want a thread wakeup to add to the outbound packet
latency, and we'll allow appsink_new_sample() to send directly for itself
with some simple locking scheme between it and the thread.

The thread can then handle DTLS and auth and everything else sequentially,
which lets me do DTLS "natively" with GnuTLS and saves me from lamenting
the absence of GDtlsClientConnection too much.

7 years agoReinstate paulbohm@'s gstreamer hacks
David Woodhouse [Fri, 8 Dec 2017 00:29:20 +0000 (00:29 +0000)]
Reinstate paulbohm@'s gstreamer hacks

7 years agoEmit signal for audio transport state
David Woodhouse [Thu, 7 Dec 2017 23:55:24 +0000 (23:55 +0000)]
Emit signal for audio transport state

7 years agoAdd UI for rejoining call without mute
David Woodhouse [Thu, 7 Dec 2017 21:53:39 +0000 (21:53 +0000)]
Add UI for rejoining call without mute

7 years agoExpose UI for joining audio calls
David Woodhouse [Thu, 7 Dec 2017 21:23:08 +0000 (21:23 +0000)]
Expose UI for joining audio calls

7 years agoInitial attempt at debian packaging
David Woodhouse [Wed, 31 Jan 2018 12:18:48 +0000 (12:18 +0000)]
Initial attempt at debian packaging

7 years agoFix never-notify pref matching
David Woodhouse [Sat, 20 Jan 2018 23:03:29 +0000 (23:03 +0000)]
Fix never-notify pref matching

7 years agoAdd libmarkdown (not used yet, but it's being worked on)
David Woodhouse [Fri, 22 Dec 2017 17:17:16 +0000 (17:17 +0000)]
Add libmarkdown (not used yet, but it's being worked on)