1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-22 16:45:58 +01:00
Commit graph

88 commits

Author SHA1 Message Date
Juliusz Chroboczek
9560779eb4 Move client interface to its own file. 2020-06-19 11:36:37 +02:00
Juliusz Chroboczek
d8b984979b Rename client to webClient. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
50982fddc6 Forward received FIR to sender.
It would be better to terminate FIR, note that a keyframe was requested,
and send FIR on our own.
2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
d56628be15 Send FIR when WriteRTP returns ErrKeyframeNeeded. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
88fbce262f Implement sendFIR. 2020-05-29 20:57:46 +02:00
Juliusz Chroboczek
49195ef990 Improve error handling in sendPLI. 2020-05-29 20:55:49 +02:00
Juliusz Chroboczek
72cbb5ffd3 Simplify some usages of client.error. 2020-05-28 04:27:15 +02:00
Juliusz Chroboczek
4b3ce50dac Use explicit add/remove messages in writerLoop. 2020-05-27 11:25:37 +02:00
Juliusz Chroboczek
e7f9a8f3dc Make downTrack and downConnection into interfaces. 2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
d9f2a93615 Inline activateDownTrack. 2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
9488d4a7c8 Add WriteRTP and Accumulate methods to downTrack. 2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
0fd302d877 Don't drop connections on ICE failure.
This spuriously breaks client-to-server connections over IPv6.
Thanks to Fabien de Montgolfier for his help with debugging this.
2020-05-25 01:08:49 +02:00
Juliusz Chroboczek
75804adc5f Improve error handling. 2020-05-24 13:39:06 +02:00
Juliusz Chroboczek
bfdc22ff83 Maintain local connections explicitly. 2020-05-23 02:34:28 +02:00
Juliusz Chroboczek
4699c338e1 Cache early ICE candidates. 2020-05-23 02:34:28 +02:00
Juliusz Chroboczek
57163c70a3 Better protection against duplicate connection ids. 2020-05-22 22:38:40 +02:00
Juliusz Chroboczek
6005ad9eb4 Create a connection interface, use it in gotICE. 2020-05-22 22:36:47 +02:00
Juliusz Chroboczek
9575b80893 Use mids instead of track ids for indexing labels.
It turns out that track ids are not necessarily the same on the local and
remote sides.  Thanks to Ines Klimann for noticing the issue.
2020-05-21 22:40:11 +02:00
Juliusz Chroboczek
9fde029912 Send recovery if we're very mildly congested. 2020-05-21 13:25:45 +02:00
Juliusz Chroboczek
0e1f3cafea Drop until end of frame when writer is congested. 2020-05-21 13:17:52 +02:00
Juliusz Chroboczek
e32f911ab9 Don't account failed writes in rate estimator. 2020-05-21 12:39:02 +02:00
Juliusz Chroboczek
a290325320 Wait for answer before sending data. 2020-05-21 00:55:00 +02:00
Juliusz Chroboczek
5a2dbf36b9 Signal new tracks explicitly. 2020-05-20 23:43:46 +02:00
Juliusz Chroboczek
5916028edd Split the main up loop into two threads.
The reader and the writer now communicate through a channel and the packet
cache.  If the writer thread drops behind, we drop packets after inserting in
the packet cache, which avoids building a backlog.
2020-05-20 23:42:52 +02:00
Juliusz Chroboczek
a6b09c9150 Implement packagecache.GetAt. 2020-05-20 23:41:29 +02:00
Juliusz Chroboczek
f641e263f1 Make packetcache.Get use a caller-allocated buffer. 2020-05-20 20:32:30 +02:00
Juliusz Chroboczek
12858e1f36 Implement commands /lock and /unlock. 2020-05-18 15:24:04 +02:00
Juliusz Chroboczek
037f002a29 Make the requested field of client requests into a dictionary. 2020-05-18 00:56:29 +02:00
Juliusz Chroboczek
b265aacd32 Push complete connections rather than individual tracks. 2020-05-17 23:55:54 +02:00
Juliusz Chroboczek
b26a8cad78 Label tracks explicitly.
For now, this is only used to request screen sharing as opposed to normal
videos.  In the future, it will be used for simulcasting.
2020-05-17 23:28:19 +02:00
Juliusz Chroboczek
7281a09f6e Use pushTracks in up.OnTrack. 2020-05-17 21:24:16 +02:00
Juliusz Chroboczek
7393ca8473 Make all communication between client threads asynchronous.
We used to deadlock with large numbers of tracks.  This should fix that.
2020-05-12 18:27:40 +02:00
Juliusz Chroboczek
89695c3713 Implement reception of audio only. 2020-05-09 22:44:34 +02:00
Juliusz Chroboczek
0c7b77d919 Only send RTCP feedback if supported by the peer. 2020-05-09 18:49:22 +02:00
Juliusz Chroboczek
fd6b9f6bdd Limit the video rate when we have large numbers of presenters. 2020-05-09 12:17:22 +02:00
Juliusz Chroboczek
7c83f2fa5a Don't pass group to rtcpDownListener. 2020-05-07 10:29:48 +02:00
Juliusz Chroboczek
ac50973a99 Don't reset remote track on failure.
That would be racy.
2020-05-03 19:45:36 +02:00
Juliusz Chroboczek
0c4a625244 Simplify computation of available down bitrate.
Don't take packet loss into account, just clamp at 384kbps.
2020-05-03 18:30:01 +02:00
Juliusz Chroboczek
ae7e32a36a Implement loss-based congestion control on the down side. 2020-05-03 18:30:01 +02:00
Juliusz Chroboczek
5205c0773b Delete upstream connections on ICE failure. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
92de141b97 Rework sending of NACKs. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
4dd245712f Include jitter and delay in receiver reports. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
7961d7279b Move monotonic time to separate package, use microseconds. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
5715182978 Fix TotalLost value in receiver reports. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
100f72e76c Don't count NACK recovery as properly received packets. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
a74e4f68b5 Don't honour NACKs if we're congested. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
5a1ef1ddd7 Use a proper accessor for timestampedByterate. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
8fa68f9605 Remove track muting. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
5dd27e5067 Implement rate estimation. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek
10526d474e Add command /clear. 2020-04-30 19:13:32 +02:00