Juliusz Chroboczek
6aa7a9394a
More tweaks to layer switching.
...
I'm not seeing any non-keyframe spatial sync frames, so simplify
the code by only switching spatial layers on keyframes.
2021-08-05 00:03:42 +02:00
Mathieu
d29f6d6e5d
Make video close button more visible.
...
Adds a round black semi-transparent background to the white cross icon,
making it visible in any situation.
2021-08-04 20:13:06 +02:00
Juliusz Chroboczek
9093339b62
Rework handling of buffered keyframes.
...
Instead of buffering the last keyframe, we merely keep track of its
seqno, and use the main cache for recovering. We also send the whole
sequence of packets rather than just the keyframe itself.
2021-08-04 02:58:24 +02:00
Juliusz Chroboczek
f4aa86a491
Switch spatial layers at the right point.
2021-08-03 23:21:44 +02:00
Juliusz Chroboczek
d96a48f805
Don't rewrite PID for VP9.
...
Rewriting is not useful for VP9, and even harmful, as it breaks the
offsets in the scalability structure.
2021-08-03 22:51:14 +02:00
Juliusz Chroboczek
48a9b10ce8
Use spatial scalability when simulcast is not available.
...
If the client requested a low-resolution stream and there is none,
switch to SID=0.
2021-08-03 13:14:11 +02:00
Juliusz Chroboczek
4f7be19644
Implement pid and mark rewriting for VP9, fix VP9 sync bits.
...
The sync bits were incorrect. In addition, we need to set the
marker at the new end of the frame when doing spatial decimation.
2021-08-03 13:09:43 +02:00
Juliusz Chroboczek
56226a2934
Export the max requested rate in track statistics.
2021-08-03 03:28:36 +02:00
Juliusz Chroboczek
200c0dd68c
Refresh layer info after adjusting in down.Write.
...
Otherwise we might act on outdated info, which could cause a spurious
drop.
2021-08-03 03:15:08 +02:00
Juliusz Chroboczek
3d21a79880
Don't carry up tracks explicitly.
...
Left over from the old data structure.
2021-08-03 02:51:44 +02:00
Juliusz Chroboczek
51c31ab729
Improve error handling for negotiation failures.
...
Now that we constrain tracks in offers properly, there is no need
to manually check that the codecs have been matched correctly.
2021-08-02 20:00:23 +02:00
Juliusz Chroboczek
816b7a54df
Restrict negotiation of downstream codecs, allow multiple profiles.
...
We now restrict the allowable codecs in the downstream direction,
which leads to a clean failure instead of a silent track. We also
allow multiple profiles for a single codec.
2021-08-02 18:08:37 +02:00
Juliusz Chroboczek
845e798467
Fix location of FAQ in README.
2021-08-02 02:50:29 +02:00
Juliusz Chroboczek
a3f559875f
Increase time interval in TestTime.
...
The lower interval made us too sensible too scheduling.
2021-08-02 01:59:46 +02:00
Juliusz Chroboczek
dd4dbeaee5
Add spatial scalability support.
...
Only used as a last-resort fallback.
2021-08-01 13:57:14 +02:00
Juliusz Chroboczek
efb298f002
Use sendonly transceiver for down tracks, embed receiver in track.
2021-08-01 13:33:01 +02:00
Juliusz Chroboczek
63cfce9eec
Update dependencies.
...
Pion is making incompatible changes, so stick with webrtc 3.0 and
rtp 1.6 for now.
2021-07-31 23:38:19 +02:00
Juliusz Chroboczek
f26cf32abb
Fix group_test.go.
2021-07-31 23:38:19 +02:00
Juliusz Chroboczek
3bdcb8af28
Fix typo in down layer selection.
2021-07-31 23:22:01 +02:00
Juliusz Chroboczek
c227b113f6
Use id for determining source of chat message.
...
We used to check the nick, which is not necessarily unique.
2021-07-31 17:22:09 +02:00
Juliusz Chroboczek
b527c8757a
Add chathistory message.
2021-07-31 14:42:26 +02:00
Juliusz Chroboczek
97a5bf60ad
Send the locked user-friendly message in the group status.
2021-07-30 19:44:39 +02:00
Juliusz Chroboczek
3b98e123e0
Send a message of kind "kicked" instead of "error".
2021-07-30 19:38:02 +02:00
Juliusz Chroboczek
a5c97fd849
Add System permission.
...
This replaces the OverridePermissions method, and is communicated
to clients that can reliably and safely identify a system user.
2021-07-30 19:26:34 +02:00
Juliusz Chroboczek
a25d46314a
Fix documentation of onerror callback.
2021-07-30 17:40:15 +02:00
Licaon_Kter
0a0e89e3d3
Fix typo in README.
2021-07-30 16:44:38 +02:00
Juliusz Chroboczek
a8dfc32f9e
Fix keyframe tests.
...
The keyframe detection has been moved into codecs.
2021-07-30 15:26:21 +02:00
Juliusz Chroboczek
39fb8afc00
Update README.
2021-07-30 13:55:04 +02:00
Juliusz Chroboczek
8e3caa19f3
Update CHANGES.
2021-07-29 23:55:50 +02:00
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