1
Fork 0
Commit Graph

324 Commits

Author SHA1 Message Date
Juliusz Chroboczek f63ecb3078 Support file playback on Mozilla. 2021-02-01 01:08:39 +01:00
Juliusz Chroboczek 14a4303664 Rework connection replacement.
We used to signal connection replacement by reusing the same connection
id.  This turned out to be racy, as we couldn't reliably discard old
answers after a connection id was refused.

We now use a new id for every new connection, and explicitly signal
stream replacement in the offer message.  This requires maintaining a
local id on the client side.
2021-01-31 23:59:17 +01:00
Juliusz Chroboczek aa69538057 Minor typos and tweaks in galene.html. 2021-01-25 13:06:09 +01:00
Juliusz Chroboczek 8e395e38ac Add option to disable mirror view. 2021-01-23 01:15:53 +01:00
Juliusz Chroboczek 8a44726f89 Save blackboard mode and activity detection across reloads. 2021-01-23 01:13:27 +01:00
Juliusz Chroboczek 7d216f650c Add replace parameter to onclose stream callback.
This indicates that the stream is being replaced by another one with
the same id.  This avoids moving videos around when they are being
renegotiated.
2021-01-17 20:20:35 +01:00
Juliusz Chroboczek 2380e2e183 The up streams rework broke renegotiation. Don't attempt to
renegotiate, just close the stream and open it again.
2021-01-15 22:41:40 +01:00
Juliusz Chroboczek 8168c2a9e6 Rework the up connection state machine.
It is now more similar to the down connection, using the onclose
callback for resource management.
2021-01-14 23:50:40 +01:00
Juliusz Chroboczek 82827453f0 Use clearInterval instead of clearTimer. 2021-01-13 20:15:39 +01:00
Juliusz Chroboczek 2eb61d877f Allow filters to maintain state. 2021-01-13 18:31:18 +01:00
Juliusz Chroboczek 769c698894 Properly stop up media in delUpMediaKind. 2021-01-13 17:07:54 +01:00
Juliusz Chroboczek c6ed27c100 More filter fixes. 2021-01-13 17:07:40 +01:00
Juliusz Chroboczek 8120a30725 Don't reset srcStream if not changing.
This avoids flicker upon renegotiation.
2021-01-13 14:59:43 +01:00
Juliusz Chroboczek d5e3429262 Reset transform at the end of filters. 2021-01-13 14:36:29 +01:00
Juliusz Chroboczek 45c2711522 Add contextAttributes to filter definition. 2021-01-13 14:20:23 +01:00
Juliusz Chroboczek 684c8c5df8 Add user interface for filter selection. 2021-01-13 13:57:05 +01:00
Juliusz Chroboczek b24bd5c0ed Rework filters.
Make it possible to attach filters dynamically.  Work around bugs
in Firefox.
2021-01-13 13:39:55 +01:00
Juliusz Chroboczek cf6c1203c8 Better typing for filters, allow filters to skip frames. 2021-01-12 03:52:23 +01:00
Juliusz Chroboczek a5b57976d2 Lock filter framerate to webcam framerate. 2021-01-12 03:36:51 +01:00
Juliusz Chroboczek ca6020a27e Implement filters.
No user interface yet.
2021-01-12 02:29:46 +01:00
Juliusz Chroboczek e7d7c2dd0a Call revokeObjectURL in the onclose callback.
This avoids special-casing file streams.
2021-01-12 02:23:52 +01:00
Juliusz Chroboczek 371289793b Call onclose on up streams too. 2021-01-12 02:23:22 +01:00
Juliusz Chroboczek 820b303e84 Send localDescription instead of original SDP. 2021-01-11 20:41:34 +01:00
Juliusz Chroboczek 70e80afd6c Implement localMessage. 2021-01-11 19:28:57 +01:00
Juliusz Chroboczek 63e1a6f47d Tweak relay-test. 2021-01-11 18:50:29 +01:00
Juliusz Chroboczek 165c942dc7 Add undocumented command /relay-test. 2021-01-11 18:24:54 +01:00
Juliusz Chroboczek b600be8100 Implement /muteall. 2021-01-11 16:30:19 +01:00
Juliusz Chroboczek 63e2b5a4c4 Implement 'noecho' field in client messages. 2021-01-11 16:30:07 +01:00
Antonin Décimo fb30fe3bb7 Fix removal of stream.onremovetrack callback. 2021-01-05 21:59:50 +01:00
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 69bb12014e Fix omitted break in gotUserMessage. 2021-01-04 13:15:50 +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 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 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
Juliusz Chroboczek 2dfa175bd1 Create video element early. 2020-12-25 20:29:46 +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 ed9377e38f Disable playing files when browser doesn't support captureStream. 2020-12-24 00:01:33 +01:00
Juliusz Chroboczek 66fb73d01e Relicense under the MIT licence. 2020-12-19 17:26:33 +01:00
Juliusz Chroboczek 6a38272d1c Change homepage URL. 2020-12-16 22:41:06 +01:00
Alain Takoudjou ce8acf303a Make warning popup message more readable 2020-12-15 17:06:06 +01:00
Alain Takoudjou bdfa793a8d Add play button to video custom controls
If autoplay is not working on browser, user can play the video with this button
2020-12-15 16:48:32 +01:00
Alain Takoudjou 6b4d351295 Improve design of login box
Reorganize radio buttons also.
2020-12-15 16:48:25 +01:00
Antonin Décimo f5de94cf3e Correct spelling of privileged. 2020-12-15 14:52:46 +01:00
Juliusz Chroboczek a939ec07a7 Add explicit resolution setting.
No UI for now.
2020-12-14 19:31:42 +01:00
Juliusz Chroboczek e17d97100b Fill login box after a reload. 2020-12-12 23:36:08 +01:00
Juliusz Chroboczek b7aea3a4d1 Remove incorrect guards from addMedia functions.
These functions require having joined a group, not just having
proper credentials.
2020-12-12 23:31:54 +01:00
Juliusz Chroboczek e35e6e5e10 Fix handling of join messages of kind change. 2020-12-12 13:51:08 +01:00
Juliusz Chroboczek 954c23cc3b Move disabling of volume slider into setVolumeButton. 2020-12-12 13:51:08 +01:00
Alain Takoudjou 6a403e1fd9 Set temporary placeholder for input area.
Co-authored-by: Juliusz Chroboczek <jch@irif.fr>
2020-12-12 13:51:08 +01:00
Alain Takoudjou 3faf46a1d7 Rework video player style
Reduce button size and reduce video control bar size.
Add a volume slider to control volume level when volume control is enabled
2020-12-11 18:37:13 +01:00
Alain Takoudjou b2f050e552 Fix size for present and unpresent button on mobile
There is no text on mobile layout
2020-12-11 18:37:13 +01:00
Juliusz Chroboczek ef1c211b7f SFU is now called Galène. 2020-12-06 19:51:02 +01:00
Juliusz Chroboczek 3cbbfbacdd Implement command renegotiate. 2020-12-05 21:02:28 +01:00
Juliusz Chroboczek c6108f08d5 Allow renegotiate to be called on down streams. 2020-12-05 20:44:55 +01:00
Juliusz Chroboczek f002a83806 Keep track of stream direction.
This simplifies the interface since close does the right thing
without help from the application.  Also improves error checking.
2020-12-05 20:44:42 +01:00
Juliusz Chroboczek 1c5bce2a38 Improve documentation for protocol functions. 2020-12-05 20:29:03 +01:00
Juliusz Chroboczek b6a6165650 Make fullscreen work on Safari. 2020-12-05 20:29:03 +01:00
Juliusz Chroboczek 9bb2499b85 Rework flushing of ICE candidates.
We now treat local and remote candidates differently, and flush
local candidates immediately after sending an offer.
2020-12-05 20:29:03 +01:00
Juliusz Chroboczek 96e5030d54 Work around Safari's autoplay restrictions. 2020-12-05 03:07:22 +01:00
Juliusz Chroboczek b134bfcf13 Improve error handling on join failure.
Solves the issue of groups with a name ending in "/".
2020-12-04 22:56:29 +01:00
Antonin Décimo f0cbe9c0c1 Fix wrong label reference. 2020-12-03 22:53:51 +01:00
Juliusz Chroboczek c5638a544f Mirror own video. 2020-12-03 18:38:36 +01:00
Alain Takoudjou 29e98f4f37 Fixed size for both present and unpresent button
To prevent size of menu to change when user click on present the unpresent button
2020-12-03 16:46:20 +01:00
Juliusz Chroboczek 1a11548192 Delay playing of video until connection is in good state. 2020-12-03 01:14:34 +01:00
Juliusz Chroboczek 27a2e45500 Implement /subgroups. 2020-12-02 19:47:32 +01:00
Juliusz Chroboczek 4a4973fc44 Rename Present button to Panic. 2020-12-02 19:05:02 +01:00
Antonin Décimo 20fe37b459 Align checkboxes with labels in optionsdiv. 2020-12-02 13:49:53 +01:00
Juliusz Chroboczek 2546aae7c1 Eliminate login from protocol.
The login message is replaced with handshake, which only carries
the client id.  Username and password is now in the join message.
Permissions is replaced with joined.
2020-12-02 13:49:53 +01:00
Juliusz Chroboczek 2f6c710f29 Fix side menu input elements.
Input elements have no contents.  Thanks to Antonin Décimo.
2020-12-01 21:17:10 +01:00
Antonin Décimo 7d4dabe30f JSDoc doesn't recognize {Promise<void>[]}, use {Array.<>}. 2020-12-01 21:07:44 +01:00
Antonin Décimo 59507c811f Make type of array of objects compatible with JSDoc and TSDoc.
The best TSDoc type is (Text|HTMLElement)[], but to JSDoc the array is
not distributive. JSDoc prefers Text[]|HTMLElement[], but TSDoc
rejects that syntax. In the end, both are fine with
Array.<Text|HTMLElement>.
2020-12-01 21:07:44 +01:00
Antonin Décimo 22f9442cf4 Fix typos. 2020-12-01 21:07:44 +01:00
Juliusz Chroboczek e68882fff0 Fix replacing of a video with a new one.
This was broken when we implemented local videos.
2020-12-01 16:20:25 +01:00
Juliusz Chroboczek 2b19a1034f Improve command error handling when not connected. 2020-12-01 03:01:19 +01:00
Juliusz Chroboczek f4c5d6a6ef Display message header when time delta is larger than a minute. 2020-12-01 02:51:15 +01:00
Juliusz Chroboczek e8df60cbbe Move automatic presentation into gotPermissions.
Don't attempt to present if we don't have the present permission,
don't display the friendly popup if we've selected presentation.
2020-12-01 00:26:14 +01:00
Juliusz Chroboczek 71744c44ca Implement mike-only login. 2020-11-30 22:16:10 +01:00
Juliusz Chroboczek 9110d03a9a Fix handling of empty strings in reflectSettings. 2020-11-30 21:54:48 +01:00
Juliusz Chroboczek 8df19bc760 Remove more side menu entries when not allowed to present. 2020-11-30 20:53:12 +01:00
Juliusz Chroboczek 1a92535957 Respect whitespace in chat messages. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek 02504bcf9b Hide mute button when user is not allowed to present. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek d98c9b95b2 Implement commands /warn and /wall. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek aa71205fa2 Include username and id in group and user actions. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek f9e0573654 Implement remote mute. 2020-11-30 20:04:58 +01:00
Juliusz Chroboczek 6040d1943c Allow forwarding usermessages.
They now have the same format as chat messages; the only difference
is that they are not stored in the chat history.

Also adds userMessage method to ServerConnection.

Fix usermessages.
2020-11-30 14:39:36 +01:00
Alain Takoudjou 60470cf8cf Simplify Settings menu icon 2020-11-29 22:35:34 +01:00
Alain Takoudjou 63b460d20c Move User menu to Settings sidebar 2020-11-29 22:35:21 +01:00
Juliusz Chroboczek 3a86157f15 Remove streamed video when it finishes. 2020-11-29 22:26:22 +01:00
Juliusz Chroboczek e2a79e24a1 Mute local audio when streaming video. 2020-11-29 22:17:51 +01:00
Juliusz Chroboczek 08a2ff63fc Replace type cast with type assertion. 2020-11-28 03:46:31 +01:00
Juliusz Chroboczek a2e322edcb Rework custom video controls.
Move custom video controls into its own function.  Remove some
DOM traversals, avoid querySelector.  Remove dead code.
2020-11-28 03:46:31 +01:00
Alain Takoudjou 907a712d6a Remove support for disabling camera in media player. 2020-11-27 21:23:58 +01:00
Alain Takoudjou 484781e3c1 Close side menu after a local media file is loaded 2020-11-26 22:58:37 +01:00
Toke Høiland-Jørgensen 08b1a50d21 Fix CSS for new version of Font Awesome. 2020-11-25 17:02:27 +01:00
Juliusz Chroboczek 6e548deded Handle removetrack event on streamed videos.
Probably useless, but I'm supersticious.
2020-11-24 23:22:24 +01:00