Juliusz Chroboczek
0623e92760
Add support for recording h.264 video.
...
We store h.264 in Matroska, since we already have the library.
We currently store the video width and height as 0.
2021-07-29 23:44:24 +02:00
Juliusz Chroboczek
7d29ef5a64
Make disk writer use the codecs package.
...
Instead of testing whether a sample is a keyframe, we test at the
packet level, then compare timestamps to identify the keyframe.
2021-07-29 23:07:08 +02:00
Juliusz Chroboczek
89780b866b
Move packet parsing code into its own package.
2021-07-29 21:30:39 +02:00
Juliusz Chroboczek
8178275164
Rename "Present" to "Enable".
2021-07-29 14:46:02 +02:00
Juliusz Chroboczek
a78fb6d747
Increase file descriptor limit at startup.
2021-07-29 14:33:01 +02:00
Juliusz Chroboczek
82b10b2c10
Properly close the camera when changing parameters.
...
The trick of calling the onclose callback wasn't correct.
2021-07-17 00:38:26 +02:00
Juliusz Chroboczek
6388f16e87
Fix typos in infinite action stream implementation.
...
This fixes issues introduced in commit 6ae79f.
2021-07-17 00:05:55 +02:00
Juliusz Chroboczek
b9c1968b48
Treat closing unknown streams as a warning.
2021-07-16 23:10:13 +02:00
Juliusz Chroboczek
7b4fd8932c
Fix title display.
2021-07-16 23:03:36 +02:00
Juliusz Chroboczek
4a5796b925
Update CHANGES.
2021-07-16 20:06:41 +02:00
Juliusz Chroboczek
eedfaccaff
Add locked and displayName to public-groups.json.
2021-07-16 20:01:54 +02:00
Juliusz Chroboczek
52a26327d7
Implement group status.
...
We now inform clients of the status of a group (locked, etc.). Also
cleans up the handling of administrative messages, which solves the
issue of receiving "user" before "joined".
2021-07-16 19:51:54 +02:00
Juliusz Chroboczek
d78a750b8d
Tweak CHANGES.
2021-07-16 14:41:33 +02:00
Juliusz Chroboczek
6ae79f21d6
Use unbounded buffer for track actions.
...
Without that, we might deadlock if the reader is blocked in read.
2021-07-16 03:03:45 +02:00
Juliusz Chroboczek
0d2ca28ae1
Close camera on disconnect.
2021-07-16 01:40:42 +02:00
Juliusz Chroboczek
c540cad994
Move pushClientConnection into its own function.
2021-07-16 01:40:42 +02:00
Juliusz Chroboczek
24df0a8c77
Update CHANGES.
2021-07-15 23:52:03 +02:00
Juliusz Chroboczek
053067548a
Ensure that replaced down tracks are closed even on failure.
...
Thanks to Ludovic Rateau.
2021-07-15 23:52:03 +02:00
Juliusz Chroboczek
9b8d868647
Fix a race between delUpConn and addLocal.
...
We could call addLocal after the remote was closed, which
would cause the local connection to remain forever.
Thanks to Ludovic Rateau.
2021-07-15 16:03:06 +02:00
Juliusz Chroboczek
3d2089f40f
Merge GetRTP and Nack into GetPacket.
...
The two function were always called together. This factors out
the NACKing logic into the track.
2021-07-14 14:22:22 +02:00
Juliusz Chroboczek
36d31f0db8
Maintain a reference to the connection associated to each track.
...
This avoids carrying an extra parameter in many places.
2021-07-14 14:05:23 +02:00
Juliusz Chroboczek
bcd62f190b
Flush buffered packets in diskwriter at shutdown.
2021-07-11 23:22:46 +02:00
Juliusz Chroboczek
b0c39fca22
Implement loss handling in diskwriter.
2021-07-11 23:09:19 +02:00
Juliusz Chroboczek
39d8cf72fe
Define a type maybeUint32 and use it in diskwriter.
2021-07-11 22:44:50 +02:00
Juliusz Chroboczek
eec6c8a5b0
Use a partition tail checker in the diskwriter.
...
Now that we have our own samplebuilder, we can use the mark bit
to avoid dropping packets before a dropped packet.
2021-07-11 21:01:10 +02:00
Juliusz Chroboczek
e840e53ac2
Switch to our own samplebuilder.
...
Pion's samplebuilder has been broken for over a month now, switch
to our own.
2021-07-11 20:18:44 +02:00
Juliusz Chroboczek
cfe66a5c39
Update dependencies.
2021-07-11 20:15:00 +02:00
Juliusz Chroboczek
3398e929e3
Tweaks to README.
...
Fixes the instructions for compling under Windows.
2021-07-04 15:16:18 +02:00
Juliusz Chroboczek
6143f53ca2
Remove unreachable code.
2021-06-20 18:40:01 +02:00
Antonin Décimo
f89270e874
Fix typos.
2021-06-09 15:20:17 +02:00
Juliusz Chroboczek
de78f3ce62
Map entries before the first in packetmap.
...
The first time we drop, we may already have mapped a number of
packets with the identity mapping. Insert an identity mapping
in Drop.
Also extend any existing mapping when inserting out-of-order mappings.
2021-05-18 13:51:20 +02:00
Juliusz Chroboczek
c86f55c3a8
Fix comparisons of seqno in packetmap.
2021-05-17 22:26:59 +02:00
Juliusz Chroboczek
f3b73263c8
Fix handling of NACKed packets when dropping.
...
We were not rewriting in this case.
2021-05-17 20:06:08 +02:00
Juliusz Chroboczek
22585e9d10
Handle spatial scalability.
...
Maintain spatial layer information, and drop lower layers when
possible. Yields a 20% saving with VP9.
2021-05-17 18:17:43 +02:00
Juliusz Chroboczek
781bdf8c74
Fix error handling in mainpage and stats.
2021-05-17 14:43:57 +02:00
Juliusz Chroboczek
91fa693709
Display max layer in stats.
2021-05-17 13:51:29 +02:00
Juliusz Chroboczek
fd76abb61d
Send up actions synchronously.
2021-05-17 03:54:58 +02:00
Juliusz Chroboczek
c00a21995e
Move PLI rate-limiting into the reader loop.
2021-05-17 03:54:20 +02:00
Juliusz Chroboczek
7665067a91
Rate-limit keyframe requests in disk writer.
...
We were requesting two keyframes in a row.
2021-05-17 03:10:00 +02:00
Juliusz Chroboczek
d94e5583cd
Rewrite AV1 keyframe detection.
...
Metadata OBUs can appear between the sequence header and the first
frame header.
2021-05-16 14:51:09 +02:00
Juliusz Chroboczek
4435a30a53
Use sequence parameter sets for h.264 keyframe detection.
...
RFC 6184 Section 8.5.1 implies that the sender will send a
a sequence parameter set in response to PLI. Since a keyframe is
useless without parameters, use the SPS to detect keyframes.
2021-05-15 23:50:32 +02:00
Juliusz Chroboczek
f829da67e5
Update CHANGES.
2021-05-15 20:15:34 +02:00
Juliusz Chroboczek
3e00bb4293
AV1 support.
2021-05-15 19:54:07 +02:00
Juliusz Chroboczek
25b70bb72a
Remove debugging statement.
2021-05-15 16:08:46 +02:00
Juliusz Chroboczek
7009f7e4e7
Update CHANGES.
2021-05-15 11:49:23 +02:00
Juliusz Chroboczek
f12f776e03
Hide simulcast form when not allowed to send.
2021-05-15 11:36:04 +02:00
Juliusz Chroboczek
c0da658b9f
Send sender report more often.
...
Now that we start at 200kbps, we need to increase our rate faster.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
54cd546120
Request low-resolution video when the video is small.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
2da8faa8cf
Implement per-stream requests.
2021-05-14 23:21:14 +02:00
Juliusz Chroboczek
515c4a5cd0
Rename pushConns to requestConns, move into Client interface.
...
Also allow selecting just a single connection.
2021-05-14 23:21:14 +02:00