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
Juliusz Chroboczek
6a9ab96902
Use default controls for streamed video.
2020-11-24 23:05:43 +01:00