1
Fork 0
Commit Graph

708 Commits

Author SHA1 Message Date
Antonin Décimo 056ffcd2cf Add missing semicolons. 2021-01-05 21:59:47 +01:00
Juliusz Chroboczek d2f7010141 Call ondowntrack on each track.
We used to call it on just the first track.  Also remove obsolete
remains of the onlabel callback.
2021-01-04 20:43:39 +01:00
Juliusz Chroboczek 5735322627 Add websocket handshake timeout. 2021-01-04 18:28:54 +01:00
Juliusz Chroboczek 7f4306ab3b Optimise broadcast messages.
Avoid formatting JSON multiple times.
2021-01-04 18:28:54 +01:00
Juliusz Chroboczek 69bb12014e Fix omitted break in gotUserMessage. 2021-01-04 13:15:50 +01:00
Juliusz Chroboczek 43ed55a055 Update group API after description change. 2021-01-04 01:41:34 +01:00
Juliusz Chroboczek 2e752f9460 Update CHANGES. 2021-01-03 23:47:01 +01:00
Juliusz Chroboczek c30905fd5e Add protocol documentation. 2021-01-03 23:41:13 +01:00
Juliusz Chroboczek 81e155a45f Implement saving to disk of VP9. 2021-01-03 22:19:25 +01:00
Juliusz Chroboczek 80cb0a2f30 Simplify VP9 keyframe detection. 2021-01-03 20:55:35 +01:00
Juliusz Chroboczek 0ec9f92dad Make 'clearchat' into a user message. 2021-01-03 17:47:56 +01:00
Juliusz Chroboczek e393819eda Carry raw SDP in the protocol. 2021-01-03 17:00:58 +01:00
Juliusz Chroboczek ddafca5780 Decrease keyframe interval when writing to disk. 2021-01-03 13:48:02 +01:00
Juliusz Chroboczek f53276b89e Simplify the protocol and the protocol interface.
Split the id field into id and source, where source indicates the sender
of the message and id the entity being sent.  Remove the label request,
just use the offerer's username.  Maintain the username within the
ServerConnection, this removes a parameter from some methods.
2021-01-03 12:17:30 +01:00
Juliusz Chroboczek 0563356180 Don't complain about non-existent ice-servers.json. 2021-01-02 00:36:58 +01:00
Juliusz Chroboczek 450601f0e8 Move ICE code into own module, add tests. 2021-01-02 00:21:17 +01:00
Juliusz Chroboczek 845dccc2bb Implement coturn's use-auth-secret. 2021-01-01 23:50:34 +01:00
Juliusz Chroboczek dbec9df288 Use Pion's JSON support for ICE configuration. 2021-01-01 22:28:38 +01:00
Juliusz Chroboczek 2ec0c01458 Update README. 2021-01-01 17:54:48 +01:00
Juliusz Chroboczek 307c834b09 Check ICE configuration periodically. 2020-12-28 19:12:09 +01:00
Juliusz Chroboczek 89a9e6c738 Implement command-line option "relay-only". 2020-12-28 02:56:49 +01:00
Juliusz Chroboczek a0418d26ec Send RTC configuration with joined message.
This avoids one HTTP request, and is potentially more flexible.
2020-12-28 02:55:19 +01:00
Juliusz Chroboczek d09c0f0a80 Make the value field of client messages carry arbitrary types. 2020-12-28 01:49:27 +01:00
Juliusz Chroboczek 5e831ab536 Append message footer to /me messages too. 2020-12-28 01:49:27 +01:00
Jeroen van Veen fece9287e2 Make https optional. 2020-12-27 16:01:29 +01:00
Juliusz Chroboczek 2dcfe9ad8d Update CHANGES. 2020-12-27 03:02:23 +01:00
Juliusz Chroboczek 9e4aede72a Fix issues with unaligned atomic operations.
This could be solved by simply reordering the fields, but it
is more robust to move the atomics into their own structure,
and the extra indirection should not cost much.
2020-12-27 01:31:31 +01:00
Juliusz Chroboczek e88942c9a9 Reduce the NACK delay.
We bound the NACK delay to 2 packets, which is what TCP does.
Thus, reducing the delay should be safe.
2020-12-26 22:09:26 +01:00
Juliusz Chroboczek 5d38b0a231 Allow various codecs.
It is now possible to specify codecs other than VP8 and Opus.  This
turns out not to be very useful, since VP8 is the only codec supported
by all browsers (in violation of the WebRTC spec, which mandates support
for H.264), and there is no good reason to use anything other than Opus
for audio.
2020-12-26 19:46:37 +01:00
Juliusz Chroboczek 6c8e20c445 Don't attempt to write unsupported track to disk. 2020-12-26 04:17:55 +01:00
Juliusz Chroboczek 2785fa9f77 Store labels early.
This avoids spurious up.complete indications.
2020-12-25 22:32:30 +01:00
Juliusz Chroboczek 26ca4f7969 Warn when attempting to record unsupported codec. 2020-12-25 21:04:17 +01:00
Juliusz Chroboczek f4379f7a8c Protect against negotiation inconsistencies.
This is not an issue in the current code, assuming that clients
negotiate correctly, but will become one once we implement codec
flexibility.
2020-12-25 20:50:33 +01:00
Juliusz Chroboczek 2dfa175bd1 Create video element early. 2020-12-25 20:29:46 +01:00
Juliusz Chroboczek 3c04d48b85 Push a connection even if all tracks didn't arrive.
We used to push a connection when we got all tracks.  However, it may
happen that some tracks fail; in that case, the connection would never
get pushed.
2020-12-25 20:23:46 +01:00
Juliusz Chroboczek e5fec68acf Start RTCP up sender early. 2020-12-25 20:10:12 +01:00
Juliusz Chroboczek e3fd9a963a Improve error handling during negotiation. 2020-12-25 18:54:18 +01:00
Juliusz Chroboczek d5c7a13aae Implement abort in the client->server direction. 2020-12-25 18:51:17 +01:00
Juliusz Chroboczek cc35931ad1 Make isKeyframe codec-agnostic. 2020-12-25 16:40:38 +01:00
Juliusz Chroboczek ed9377e38f Disable playing files when browser doesn't support captureStream. 2020-12-24 00:01:33 +01:00
Juliusz Chroboczek 159a9b8147 Fix recording filename for Windows. 2020-12-23 23:15:36 +01:00
Juliusz Chroboczek 6969ae7d68 Warn when writing to disk fails. 2020-12-23 23:15:36 +01:00
Juliusz Chroboczek d9dbb50bf5 Maintain a reference to client in disk connections. 2020-12-23 23:15:36 +01:00
Juliusz Chroboczek d43a2b0104 Implement WallOps to send a warning to all operators. 2020-12-23 23:15:36 +01:00
Juliusz Chroboczek 65357759d0 Add CHANGES. 2020-12-19 19:55:15 +01:00
Juliusz Chroboczek 4c07953ee0 Update dependencies. 2020-12-19 19:03:14 +01:00
Juliusz Chroboczek 4fde2c40e6 Run gofmt. 2020-12-19 17:38:47 +01:00
Juliusz Chroboczek 325f288189 Move to github. 2020-12-19 17:37:48 +01:00
Juliusz Chroboczek 66fb73d01e Relicense under the MIT licence. 2020-12-19 17:26:33 +01:00
Juliusz Chroboczek 3afc3d06a0 Improve documentation. 2020-12-19 02:37:07 +01:00