Juliusz Chroboczek
b8128f81a0
Move client notifications into addClient and delClient.
2020-06-01 00:02:17 +02:00
Juliusz Chroboczek
8472f9bf0b
Relax web server timeouts.
2020-05-31 16:49:54 +02:00
Juliusz Chroboczek
57e08201ab
Split out web serving into a separate file.
2020-05-31 16:46:41 +02:00
Juliusz Chroboczek
8ef01d4e0f
Update dependencies.
...
This fixes leaking of rtpUpSender goroutines.
2020-05-31 16:33:20 +02:00
Juliusz Chroboczek
e28a390ab9
Move check for incorrect username earlier.
2020-05-30 13:23:31 +02:00
Juliusz Chroboczek
50ad751e7d
Protect against stream being null in connection.close.
...
This may happen if we close a connection before getting any tracks.
2020-05-30 13:15:12 +02:00
Juliusz Chroboczek
65637c1832
Tweak error message.
2020-05-30 12:53:58 +02:00
Juliusz Chroboczek
32e8f08b8d
Move dead errors into webclient.
2020-05-30 12:38:13 +02:00
Juliusz Chroboczek
2dd230ca45
Don't complain about unknown local tracks on close.
2020-05-30 12:33:30 +02:00
Juliusz Chroboczek
37b1994069
Fail addLocal if connection is closed.
2020-05-30 03:44:03 +02:00
Juliusz Chroboczek
7972edfc8b
Document recording.
2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
0a2c4eb381
Implement recording.
2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
c1ab839f02
Implement disk tracks.
2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
3240225dc3
Make client generic.
2020-05-30 03:26:05 +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
519cb2dbc6
Complete documentation.
2020-05-29 17:49:23 +02:00
Juliusz Chroboczek
1365683ad6
Fix selection of alternate media devices.
...
Thanks to Giuseppe Castagna for noticing.
2020-05-29 15:56:06 +02:00
Juliusz Chroboczek
72cbb5ffd3
Simplify some usages of client.error.
2020-05-28 04:27:15 +02:00
Juliusz Chroboczek
e05f2fee81
Don't delete empty groups.
...
It was racy, and it drops the chat history. Let them accumulate for now.
2020-05-28 01:10:18 +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
d45d111084
Remove erroneous iceCandidates field from upTrack.
2020-05-27 11:24:44 +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
eb6ab8aa1a
Implement workaround for older browsers that don't have transceivers.
2020-05-24 13:39:06 +02:00
Juliusz Chroboczek
3959afb952
Update dependencies.
2020-05-23 21:04:14 +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
6d6cb6caf2
Split out connection-related code into conn.go.
2020-05-22 22:29:31 +02:00
Juliusz Chroboczek
2a35f4e5d9
Don't add duplicates in addLocal.
2020-05-22 16:55:56 +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
cbff5067b2
Implement sharing of multiple application windows at a time.
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
47d23658b5
Add profiling support.
2020-05-20 23:43:46 +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
a6ff98a313
Make packet cache cache-friendly.
2020-05-20 19:36:33 +02:00