1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-12-23 07:45:46 +01:00
Commit graph

346 commits

Author SHA1 Message Date
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
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
Alexandre Iooss
8da55c6e6c Remove async from ServerConnection.gotRenegotiate 2021-04-27 11:11:17 +02:00
Alexandre Iooss
4db8279016 Fix serverConnection not defined in ServerConnection.findByLocalId 2021-04-27 11:11:17 +02:00
Alexandre Iooss
5ce3dce0d0 Remove font awesome from mainpage 2021-04-22 18:09:36 +02:00
Alexandre Iooss
e330765563 Use column flexbox on mainpage
This removes the need to hardcode the footer height in a CSS calc().
2021-04-22 18:09:36 +02:00
Alexandre Iooss
8544e4deb4 Fix overflow on mainpage
The signature class was forcing the maximum height making the <p>
element overflowing the page. By removing this constraint, the overflow
is now gone.
2021-04-22 18:09:36 +02:00
Alain Takoudjou
81050184eb Fix detecting if mobile css layout is enabled
Use matchMedia to check if mobile css is enabled instead of checking window innerwidth size.
2021-04-22 15:55:46 +02:00
Alain Takoudjou
637e280dec Fix show/hide video and chat box for mobile and normal UI
Uses less javascript to update css style, rework buttons css for show/hide video and chat.
Fix show or hide video button on normal or mobile ui when windows is resized or when orientation change.
2021-04-22 15:55:39 +02:00
Alexandre Iooss
c06bfa4519
Fix some warning messages and comment in galene.js 2021-03-30 07:28:20 +02:00
Alexandre Iooss
ce0cb1ef98
Add missing </p> in index.html 2021-03-30 07:27:35 +02:00
Alexandre Iooss
0df2ec1684
Set charset in galene.html 2021-03-30 07:27:07 +02:00
Alain Takoudjou
dc34c9e459 Fix users sidebar is partially hidden on some devices
Users list bars is partially hidden which troncate some username on certains devices.
2021-03-26 17:06:18 +01:00
Alain Takoudjou
8d5e23aae9 Fix elements overflow-y on right sidebar menu
When Settings menu element height is more that the menu content height some item are hidden. overflow to scroll to make them visible on scroll
2021-03-26 11:13:41 +01:00
Alain Takoudjou
ffcd866301 Fix show chat button always hidden on mobile layout
The maximum device with for mobile layout in css is 1024px, for device with > 768 (Ipad)
chat button will stay hidded while chat box is also hidden when there is a video call.
This commit fix the issue.
2021-03-26 11:12:45 +01:00
Juliusz Chroboczek
016c321484 Fix typing of userMessage value. 2021-02-26 16:22:55 +01:00
Juliusz Chroboczek
e04193f78c Display user message when browser doesn't do WebRTC.
Thanks to mscherer for the report.
2021-02-14 18:06:50 +01:00
Juliusz Chroboczek
fe9b89257a Set buttons visibility when disconnecting. 2021-02-04 23:11:40 +01:00
Juliusz Chroboczek
6054ae6cc6 Update client code for renegotiation.
We now need to deal with the case where a track disappears from the
labels array.
2021-02-03 20:26:05 +01:00
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