12 May 2021: Galène 0.3.5 * Fixed another bug in the loss estimator. * Fixed the list of SSRCs sent in REMB packets. This doesn't seem to have any measurable effect. * Removed some obsolete code that caused clients to be kicked out when they lost the Present permission. 27 April 2021: Galène 0.3.4 * Fixed a bug in the loss estimator. We will now reduce the rate more aggressively when there is loss in the client->serer direction. * Fixed display of the chat on some devices. * Exported the group.Description data structure for the sake of external configuration tools. 16 April 2021: Galène 0.3.3 * Fixed an off-by-one error that could occasionally lead to a server crash. Thanks to Louis Gesbert. * Attempt to negotiate stereo Opus audio. 3 March 2021: Galène 0.3.2 * Fixed compatibility with versions of Go earlier than 1.15 (thanks to Michael Ströder). * Fixed a race condition in the disk writer. 26 February 2021: Galène 0.3.1 * We now notice when the TLS certificate has changed on disk; the certificate can therefore be rotated without a restart. * We now generate a self-signed certificate if none is found on disk. 18 February 2021: Galène 0.3 * Implemented the command /muteall. This allows muting all users except yourself. * Implemented the autolock and autokick user group options, that cause, a group to be locked or all users to be kicked out when the last administrator leaves. * Implemented client-side filters that are run over the video before it is sent to the server. A pair of mirroring filters are provided, which are useful when using a mirror in front of a webcam. * Included a built-in TURN server, which drastically simplifies deployment in common cases. * Implemented testing of TURN servers, on both the client and the server side. Connectivity will be checked by the server every 12 hours, and by the client whenever a user uses the /relay-test command. * Group configurations are now checked at startup, and any failures are logged. This implies that it is no longer possible to use undefined keys in group definition files (this is a breaking change). * Reworked the client API, which is now simpler and more uniform. * Subgroups can now be public. * Added an option to disable the mirror view, which is useful when writing. * Ported file playback to Firefox. * We now display a friendly error message when the user has disabled WebRTC under Firefox. * Implemented renegotiation of down streams, which reduces the amount of flicker in the user interface. * Fixed a number of race conditions that could cause audio tracks to become muted or video tracks to freeze. 9 January 2021: Galène 0.2 * We now work around a limitation of the Go runtime that used to cause a crash on 32-bit architectures. * Recording to disk now works on Windows too. * Error handling has been improved. In particular, group operators now receive a friendly warning when recording to disk fails for some reason. * It is now possible to configure a group to use codecs such as VP9 and H.264. The default is still to use VP8 and Opus, as this yields the best compatibility across browsers. Only VP8, VP9 and Opus can be saved to disk. * The command-line option "-relay-only" can be used to specify that all media traffic should go through a TURN server. * It is now possible to generate TURN passwords automatically, which avoids leaking long-term TURN credentials. See the "credentialType" value "hmac-sha1" described in README. * The ICE configuration will now be checked periodically, and new clients will use an updated configuration. * The client-server protocol has been reworked to be more symmetric and more secure. It is now documented in the file README.PROTOCOL. * The stream abort protocol message is now supported in the client->server direction, making it possible for the client to reject a stream. * The delay before sending NACKs has been reduced, which gives a major boost in video quality. * The play from disk button is not available when the browser doesn't support the required API. We used to display a cryptic error message in that case. * The command-line option -insecure allows using plain HTTP, which is useful when running behind a reverse proxy. * When saving to disk to disk, the keyframe interval has been reduced to 4s. * We now send keepalives after 55s at most, which should fix issues with reverse proxies timing out the WebSocket. 19 December 2020: Galène 0.1 * Initial release.