1
Fork 0
Commit Graph

896 Commits

Author SHA1 Message Date
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
Juliusz Chroboczek 435f46c520 Add tests for codec manipulation and rtpconn data stuctures. 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 6f9d7fc306 Scalable video coding (SVC). 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 7590588a54 Don't renegotiate if nothing changed during a request. 2021-05-14 18:19:44 +02:00
Juliusz Chroboczek 16bf4d6c95 Move call the setViewportHeight to start function.
This avoids issues with initialisation order.
2021-05-14 18:04:18 +02:00
Juliusz Chroboczek 3f3b245926 Fix profile-id for VP9. 2021-05-13 12:59:47 +02:00
Juliusz Chroboczek c18ec32c85 Protect against closed streams in recomputeUserStreams. 2021-05-13 04:09:56 +02:00
Juliusz Chroboczek d236f4c6df Work around empty track id and msid. 2021-05-13 03:45:32 +02:00
Juliusz Chroboczek 5ad0244267 Allow the loss-based congestion controller to yield higher values. 2021-05-12 17:06:26 +02:00
Juliusz Chroboczek 0205695bd7 Fix disk writer when doing simulcast. 2021-05-12 16:39:46 +02:00
Juliusz Chroboczek 1130295e0b Use strings.EqualFold for comparing codec names. 2021-05-12 16:18:23 +02:00
Juliusz Chroboczek 1212c7cb04 Run Firefox workaround unconditionally. 2021-05-12 02:59:12 +02:00
Juliusz Chroboczek c53cc20d26 Use Write instead of WriteRTP in the downTrack interface. 2021-05-11 23:48:17 +02:00
Juliusz Chroboczek b09dba0e26 Remove FIR sending code.
We no longer send FIRs.
2021-05-11 23:46:57 +02:00
Juliusz Chroboczek d3f53e6ada Move rate estimation into rtpDownTrack.WriteRTP. 2021-05-11 22:45:33 +02:00
Juliusz Chroboczek c52e1f4ce0 Move keyframe handling to the sender side.
This is simpler and gets rid of ErrKeyframeNeeded.
2021-05-11 22:36:56 +02:00
Juliusz Chroboczek b2ea8e8533 Move isKeyframe into its own file. 2021-05-11 19:59:24 +02:00
Juliusz Chroboczek 6278333a9a Tweak README. 2021-05-10 23:24:18 +02:00
Juliusz Chroboczek 26bf8a341a Don't send client parameters in delete message.
This avoids a race condition since the delete messages are sent
asynchronously.
2021-05-10 16:58:28 +02:00
Juliusz Chroboczek 485b0c1b85 Disable simulcast on Firefox. 2021-05-10 02:53:22 +02:00
Juliusz Chroboczek be4ae56c14 Fix changing filter for a running stream. 2021-05-09 18:59:46 +02:00
Juliusz Chroboczek 627061f0de Rework statistics page. 2021-05-09 18:46:10 +02:00
Juliusz Chroboczek 32663dbf3f Don't enable simulcast when there are just two users.
If simulcast is set to auto, disable simulcast when there are just
two users in the group.
2021-05-09 17:49:35 +02:00
Juliusz Chroboczek 2f44961589 Add UI for simulcast control. 2021-05-08 21:25:22 +02:00
Juliusz Chroboczek 795a40ceaf Simulcast. 2021-05-08 21:12:29 +02:00
Juliusz Chroboczek f1a15f07db Factor out stream creation, implement replaceUpStream.
This avoids code duplication in the various addUpMedia functions,
and makes it possible to replace a stream without reopening the
stream's source.  This will be required in order to change the
simulcast envelope.
2021-05-08 18:52:36 +02:00
Juliusz Chroboczek ed88a7a4b5 Fix typo in REMB sending. 2021-05-08 18:51:15 +02:00
Juliusz Chroboczek e24488ac62 Fix broken test. 2021-05-08 16:09:22 +02:00
Juliusz Chroboczek 65972fabe8 Remove dead code. 2021-05-08 16:03:32 +02:00
Juliusz Chroboczek 8ec0a44c09 Fix controls for down streams.
Now that down streams have labels, we need to distinguish on the
stream direction.
2021-05-08 14:19:46 +02:00
Juliusz Chroboczek ce0571cb7a Use stop video button on all streamed videos.
Delete the stop video button, it is now redundant.  Panic remains.
2021-05-08 02:51:52 +02:00
Juliusz Chroboczek a20741408c Fix hander for shared screen close button. 2021-05-07 02:44:04 +02:00
Juliusz Chroboczek 86b6c71ca0 Reformat stats display, protect against division by zero. 2021-05-07 02:23:10 +02:00
Juliusz Chroboczek b1bb427f06 Add human-readable version of stats under /stats.html. 2021-04-30 20:46:44 +02:00
Juliusz Chroboczek 3a6ade988d Export stats as JSON. 2021-04-30 20:17:10 +02:00
Juliusz Chroboczek 9b1d814b58 Rework packetcache loss statistics.
Don't maintain loss, which is too error-prone.  Instead, maintain
expected and received packet counts, and compute loss from that.
2021-04-30 16:26:17 +02:00
Juliusz Chroboczek cd1ac8a8c9 Document rtptime. 2021-04-30 12:57:03 +02:00
Juliusz Chroboczek 6c752b58bc Update dependencies. 2021-04-29 23:05:11 +02:00
Juliusz Chroboczek 99026c0e48 Implement option -udp-range. 2021-04-29 23:05:11 +02:00
Juliusz Chroboczek cd6920d7e2 Allow group.API() to fail. 2021-04-29 21:10:04 +02:00
Juliusz Chroboczek acca3f9bb3 Maintain kinds of tracks in user data structure.
Needed to show in the user list whether a user is publishing a stream.
2021-04-29 21:10:04 +02:00
Juliusz Chroboczek 4a6dccff0c Set track parameters at creation time.
We now create a sendonly transceiver, and set the max bitrate at
creation time.
2021-04-29 18:28:17 +02:00
Juliusz Chroboczek be73380f9f Label streams, not tracks.
We used to label tracks individually, in a view to using the labelling
for simulcast.  Since then, the WebRTC community has converged on a
different strategy, where multiple tracks share a single mid and
are labelled with the rid extension.

We now label whole streams, which is simpler, and use the track's
kind (and, in the future, the rid) to disambiguate.  This changes the
protocol in two ways:

  * in offers, the "labels" dictionary is replaced by a single "label"
    field; and
  * the syntax of the "request" message has changed.
2021-04-29 18:28:16 +02:00
Alain Takoudjou b08a2e3943 Add Unshare button on each shared video and remove global unshare screen button 2021-04-29 18:24:07 +02:00
Juliusz Chroboczek 3ba2394be7 Implement user statuses.
The server now maintains a set of statuses for each user that are not
interpreted by the server but communicated to the other members of the
group using 'user' messages.
2021-04-28 17:01:05 +02:00
Juliusz Chroboczek f0a39fca48 Send user permissions to client.
We now maintain the user list in the serverConnection.
2021-04-28 00:07:19 +02:00
Juliusz Chroboczek d0ef6a2c0f Fix loss accounting for multiple packets. 2021-04-28 00:07:19 +02:00
Juliusz Chroboczek b7f39d3290 Remove last traces of onabort callback.
Everything now goes through onclose, both for up and down streams.
2021-04-27 17:10:34 +02:00