Juliusz Chroboczek
938d231b30
Make API a method of group.
2020-09-13 13:09:34 +02:00
Juliusz Chroboczek
96dbcd9dcb
Release lock early in newUpConn.
...
Otherwise recording to disk causes a deadlock.
2020-09-13 02:27:50 +02:00
Juliusz Chroboczek
fa29e50f8b
Split writer loop into multiple threads.
...
This improves both scaling and fairness in the case where a single
track is being sent to large numbers of receivers. We avoid
communication overhead by growing the number of threads as the
square root of the number of receivers.
2020-09-13 02:02:11 +02:00
Juliusz Chroboczek
c9b61ab532
Remove unused function getTimestamp.
2020-09-12 14:47:09 +02:00
Juliusz Chroboczek
aa876bcd0d
Propagate CNAME.
2020-09-03 20:19:21 +02:00
Juliusz Chroboczek
e724194ef6
Upgrade to pion/webrtc v3.
2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
a4d0741704
Perform congestion control at the connection level.
...
REMB applies to the whole transport, not to individual tracks.
2020-06-12 20:17:46 +02:00
Juliusz Chroboczek
903e499dd6
Don't reduce video rate in large groups.
2020-06-12 17:27:38 +02:00
Juliusz Chroboczek
448bb0374d
Use pushConn to delete connections.
...
The previous mechanism (going through up.local) was racy and complicated.
2020-06-10 19:50:18 +02:00
Juliusz Chroboczek
f3b58bbf5c
Don't complain about rate limiting.
2020-06-09 15:15:59 +02:00
Juliusz Chroboczek
4a526b4133
Implement packet pacing.
...
We used to send all of the packets corresponding to a received packet
as a single burst, which led to persistent packet drops for clients
at the end of the queue. Pace the writer, which introduces up to 1ms
extra jitter.
2020-06-09 15:15:59 +02:00
Juliusz Chroboczek
f277b42e26
Check for connection state if not sending report packet.
...
This avoids a situation when an RTCP sender never terminates.
2020-06-09 13:46:04 +02:00
Juliusz Chroboczek
f9edde6526
Maintain time offsets on the sender side.
2020-06-09 01:06:09 +02:00
Juliusz Chroboczek
208f023d9e
Make upConnections generic.
2020-06-08 22:14:28 +02:00