Commit Graph

351 Commits

Author SHA1 Message Date
Luke Bermingham 910ff806cc
Update branch 5.2 to match master (#76)
* Update README.md

Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Added RELEASE_VERSION file which is our global source of truth for what release version the source code should push to.

---------

Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-08 16:51:33 +10:00
Luke Bermingham 5de1f6d796 Added RELEASE_VERSION file which is our global source of truth for what release version the source code should push to. 2023-02-08 16:48:36 +10:00
Luke Bermingham b47361c976
Update README.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-08 16:37:31 +10:00
Luke Bermingham bf1cc7c517 Update package.json to use npm account for now until GH packages can be made public on this repo. 2023-02-08 16:13:55 +10:00
mcottontensor c73a100b67
Added support for multiple streamers at once, including stream selection (#74)
* Adding in support for multiple streamers with string ids.

* Small fix for running with matchmaker.

---------

Signed-off-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
2023-02-08 13:02:24 +10:00
William Belcher 8be3b840b7
Inform signalling server know when the frontend intends to send the offer (#75) 2023-02-08 10:47:07 +10:00
Luke Bermingham 2b9badf91c Added publish options for Github packages 2023-02-07 17:59:38 +10:00
dependabot[bot] 49b252e0fb
Bump engine.io and socket.io in /Matchmaker (#72)
Bumps [engine.io](https://github.com/socketio/engine.io) to 6.4.0 and updates ancestor dependency [socket.io](https://github.com/socketio/socket.io). These dependencies need to be updated together.


Updates `engine.io` from 6.1.3 to 6.4.0
- [Release notes](https://github.com/socketio/engine.io/releases)
- [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/engine.io/compare/6.1.3...6.4.0)

Updates `socket.io` from 4.4.1 to 4.6.0
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/4.4.1...4.6.0)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-type: indirect
- dependency-name: socket.io
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 16:02:44 +10:00
dependabot[bot] c011b0d786
Bump passport from 0.4.1 to 0.6.0 in /SignallingWebServer (#71)
Bumps [passport](https://github.com/jaredhanson/passport) from 0.4.1 to 0.6.0.
- [Release notes](https://github.com/jaredhanson/passport/releases)
- [Changelog](https://github.com/jaredhanson/passport/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jaredhanson/passport/compare/v0.4.1...v0.6.0)

---
updated-dependencies:
- dependency-name: passport
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 16:01:01 +10:00
dependabot[bot] 4f2c4faac7
Bump qs and express in /Matchmaker (#70)
Bumps [qs](https://github.com/ljharb/qs) to 6.11.0 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.


Updates `qs` from 6.5.1 to 6.11.0
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.5.1...v6.11.0)

Updates `express` from 4.16.3 to 4.18.2
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.16.3...4.18.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 15:59:14 +10:00
dependabot[bot] 6ef5315396
Bump qs and express in /SignallingWebServer (#69)
Bumps [qs](https://github.com/ljharb/qs) to 6.11.0 and updates ancestor dependency [express](https://github.com/expressjs/express). These dependencies need to be updated together.


Updates `qs` from 6.7.0 to 6.11.0
- [Release notes](https://github.com/ljharb/qs/releases)
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.7.0...v6.11.0)

Updates `express` from 4.17.1 to 4.18.2
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.17.1...4.18.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
- dependency-name: express
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 15:57:09 +10:00
Luke Bermingham d06730f350 Refactor package jsons in preparation for Github actions workflow. 2023-02-07 15:53:08 +10:00
Michael Stopa ada7022341
Handle DefaultToHover as a config option in InitialSettings (#68) 2023-02-07 15:51:10 +10:00
Luke Bermingham a92a4c4be9
Bump copyright year.
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-07 11:45:53 +10:00
Luke Bermingham f804929a6e
Update README.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-07 11:44:59 +10:00
Luke Bermingham 61e82732a3
Convert frontend javascript to typescript and refactor. (#63)
* Refactor javascript frontend into a typescript library and a reference implementation.

* fixed restart stream

* fixed bug where the afk was still active after a reguler dissconnection

* added overlay for when the stream was loading

* added dissconect overlay that allows reconnection

* added comments for disconnection overlay

* replaced all bind methods with arrow functions to make code cleaner

* seperated auto webrtc connection from auto play with a new config paramater

* added the new QP icon

* added fully functional qp indicator

* removed redundant code and changed image restart icon to svg

* added the ability to toggle fullscreen and added logic

* added the ability to toggle settings and stats but need to clean up css and make icon images show

* fixed qp stat bug

* fixed bug with the dissconect action overlay and autoplay

* added icons for tooltips

* changed images to be served as base 64

* configured svg button in the index for fast loading

* moddifed styles in the settings and stats menu

* fixed matchviewport resolution

* added favicons and fixed matchviewportresolution

* refactored VideoPlayerController to StreamController

* upgraded the logger to be more usefull

* remove hard-coded signalling server address from the frontend

* seperated playing audio from playing video in webrtcplayer controller and fixed logger bug for ff and ios

* reworked sound and video

* added a fix for ios making svg icons invisible when having filteres aplyed to them

* added qol change where the settings pannel closes when clicking restart stream

* turned off autoplay

* logged unknown dc messages

* logged unknown dc messages moved log before error

* add support for sending back a pong message to the signalling server on response to a ping message

* Bug fixed multitouch zooming the page

* ensure that the max width of the panel wrap can never exceed the max width of the viewport

* fix the force turn button so that it appears off to the right of the label

* Added support for handling websocket messages sent as binary.

* added a feature that looks for turn servers if turn is forced. 

* reworked turn to dissconect if forced and there are no servers

* add support for overriding the disconnection message in the webrtcplayercontroller

* Improve grammar on the error message when there is no TURN server

* prevent the disconnect message from incorrectly appearing as undefined

* added message to closing the websocket

* consolidated commands and ui descriptors

* moved message methods to SendMessageController

* integrated input rework

* added datachannel sender

* refactored mouse/keyboard input

* refactored normalise and quanatize

* refactored pointerlock functionality

* refactored touch controller

* fixed resizing bugs

* fixed player resolution and mouse movment bugs

* Adding AFK setting to settings panel

* Add support for signalling server url passed as /?ss= as url parameter.

* Fix video fill display option

* Added programmatic way to create togglable settings

* Added programmatic surface to construct settings flags

* Added FillWindow as a new flagged setting in the new settings.

* Move control scheme setting into new settings config.

* Added buttons programmatically instead of in html

* Added numeric settings for min/max qp

* Added a new type for creating numeric settings: `SettingNumber`

* Added safe codepath if KeyboardEvent.keyCode is deprecated in the browser.

* Moved WebRTC settings to new programmable approach

* Created settings panel that can be constructed programmatically

* Moved all overlay construction into Overlays.ts

* Removed `showStats` boolean that was now unused.

* Added programmatic construction of video qp indicator.

* Fullscreen icon not constructed programmatically, including icons.

* Settings icon now programmatically constructed

* Stats Icon is now programmatically constructed.

* Moved all icons to a controls element that is programmatically constructed.

* Programmatically construct latency test element.

* Create stats panel programmatically

* Programmatically construct uiFeature element and playerUI root element of Pixel Streaming application

* Remove dependency on events lib

* Added italic headings to stat panel headings and changed tooltip on stats panel to say 'information'

* Allow browser to receive offers - UE5 compatibility

* Hooked up new signalling protocol that can be extended to support custom signalling messages

* Fix bug in signalling protocol handler calls. rename 'browser send answer' to browser send offer' to reflect what it actually does.

* Add SFU support. Also removed usages of console.xxx for logging and replaced with use of the Logger.

* Fix all linter errors and most warnings.

* Fix: Config control scheme wasn't being updated with the value parsed from the URL

* Remove control scheme from config. It is no handled directly from the settings panel and the URL

* Enable PS to embed properly

* Moving signalling server in setting text that can be accessed and set programmatically

* Moved construction of signalling server url into library

* Merge SFU work into signalling url changes by creating a construct signalling url function

* Create Epic Games reference implementation.

* Moved all config options from members to be settings which can set in the UI or URL

* Remove reference to any type and fix remaining linter errors.

* Refactor normalize and quantize to be called coordinate converter.

* Refactored AFK logic to be AFK Controller

* Removed UiController and moved logic into video player

* Fix security vulnerabilities in implementations. Remove unused packages.

* Fix spelling errors.

* Add ability to handle default mouse scheme from an offer. Also fixed some bugs in the settings that prevented onChange callbacks getting called.

* Add stresstester to implementation. This unveiled some points where we were using document.getElementByID(xxx) which isn't useful for when there are > 1 players

* Add login page

* Rename libfrontend to pixelstreamingfrontend

* Add copyright notice

* Fix double connections. Remove logging from websocket onerror as the error event doesn't contain any information

* Fix body filling more than the screen size on iOS

* Add toggle for light and dark mode. defaults to system preference

* Fix mic not working

* Fix light mode

* Fix backspace not working

* Adding jss support

* Fix webpack compilation

* Fixed css in js to handle camel case names for styles

* Remove tag level css rules that may leak into someone elses application

* Added light mode, fixed css, fixed to US spelling of color, fixed loading overlay.

* Changing stress test default values

* Remove esbuild

* Added fix for vh100 creating scroll of iOS devices

* Cleanup websocket disconnect message to contain reason only if one is valid

* Add webpack devserve to contain dist dir

* Fix backspace not working

* Fixing use mic option that was not usable locally

* Cleaning up package.json files

* Updating readme for release

* Move the new typescript frontend into a /Frontend directory.

* Remove old frontend files and update implementation to build into webserver directory

* Renamed index to player.html to match existing conventions in Cirrus

* Added script to install frontend if not built and also an option to force it to build with --build

* Cleaned up indentation and trailing whitespace

* Updated setup_frontend.bat to install npm packages too

* Updated bash setup scripts to build frontend if missing or directed

* Revised arg handling to match rest of the bash scripts

* Added a disclaimer if the frontend build is skipped

* Added --build description to --help display

* Removed uncessary includes from tsconfig

* Remove superfluous package-lock.json in root.

* Added prettier and performed whitespace pass on the library.

* Add missing typescript dependency.

Co-authored-by: hmuurine <hmuurine@users.noreply.github.com>
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Update Frontend/library/package.json

* Add missing typescripe and webpack dependencies.

Co-authored-by: hmuurine <hmuurine@users.noreply.github.com>
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>

* Add ability to set preferred codec during negotiation

* Fix missing stats in stats panel

* Set update selector based on what was negotiated once video starts

* Fix sfu not working due to fmtp line reordering

* Update default codec for use with ios

* Fix signalling server not connecting if frontend is hosted on anything other than port 80

* Fix locked mouse 'MouseDown' events using the wrong coordinate location

* Fix: On Windows always use our bundled NodeJS to build the frontend.

* Adding SetEnv.exe tool that is used on Windows to temporarily modify path during frontend install.

* Linux: Add npm to the path temporarily when running `setup_frontend.sh`

* Remove preferred codec from text parameters as it's now an option parameter

---------

Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
Co-authored-by: Adrian Zahra <adrian@tensorworks.com.au>
Co-authored-by: Daniel Holden <daniel@tensorworks.com.au>
Co-authored-by: David MacPherson <david@tensorworks.com.au>
Co-authored-by: William Belcher <william.belcher@hotmail.com>
Co-authored-by: Michael Stopa <michael.stopa@xa.epicgames.com>
Co-authored-by: hmuurine <hmuurine@users.noreply.github.com>
Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-02-07 11:34:44 +10:00
Luke Bermingham b5db1539f9
Added version table with legend to readme
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-06 17:57:33 +10:00
Luke Bermingham f3e60dfa01
Update README.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-06 17:45:36 +10:00
Luke Bermingham 0137e9f155
Update CHANGELOG.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-06 17:41:47 +10:00
Luke Bermingham 39c706fb91
Update CHANGELOG.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-06 17:41:23 +10:00
Luke Bermingham ab0e9c32f6
Create CHANGELOG.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-06 17:34:57 +10:00
ANDRI c4d7b2159d
Update matchmaker's socket.io dependency to 4.5.4 to address a CVE
Socket.io (which we use in the matchmaker) had a CVE that was addressed in version 4.5.4 - this commit bumps the version number of socket.io to that 4.5.4 - additionally, it also bumps sockets dependencies, engine.io and ws to the appropriate numbers.
2023-02-01 15:06:44 +10:00
Senseme daf99deb06
Remove useless code, make code style more consistent (#59) 2023-01-30 18:25:22 +10:00
Michael Stopa 934f364533
Handle "defaultToHover" field in offer (#60)
Passed in from Streamer to indicate we're in Editor mode where locked
cursor just results in not having any cursor.
2023-01-12 12:43:14 +10:00
mentalnote 995bbe09ff
Merge pull request #57 from iot-defcon/patch-1
[Bug Fixed] Insufficient validation when decoding a Socket packet
2023-01-03 13:45:42 +11:00
mentalnote d1db1f03f0
Merge pull request #55 from Belchy06/incorrect_auth_path
Fix incorrect login page path when using authentication
2023-01-03 10:42:53 +11:00
Sergev ₱ 733e5ab264
Update package-lock.json
Signed-off-by: Sergev ₱ <118327710+iot-defcon@users.noreply.github.com>
2023-01-01 11:41:15 +07:00
William Belcher 7118e07d26
Fix incorrect page path when using authentication 2022-12-18 09:23:42 +10:00
William Belcher 9004426091
Merge pull request #49 from lukehb/fix-keycodes
Fix bug when negating property in and removing duplicate property
2022-11-24 16:22:37 +10:00
Luke Bermingham eabd3c00d1
Fix bug when negating property in and removing duplicate property from object. 2022-11-24 16:18:43 +10:00
William Belcher a759cc3c6e
Merge pull request #48 from lukehb/fix-keycodes
Added check if KeyboardEvent.keyCode deprecated then use KeyboardEvent.code + mapping instead.
2022-11-24 15:45:49 +10:00
Luke Bermingham 1a6d4b73c6
Added check if KeyboardEvent.keyCode deprecated then use KeyboardEvent.Code - this required a lookup table as we still send keyCode in both cases. 2022-11-24 15:34:10 +10:00
Adam Rehn 22bf554681 Copy signalling server Dockerfile changes from the 5.1 branch 2022-11-17 17:13:11 +10:00
mcianni 982bda8386
Fixed syntax error (#44) 2022-11-15 07:44:20 +10:00
Mirmidion 3f2a1eeb43
Replaced hardcoded log path with given parameter path (#39) 2022-11-14 07:11:08 +10:00
mik-patient e8cf7f609f
Update package-lock.json (#35)
Signed-off-by: mik-patient <112659896+mik-patient@users.noreply.github.com>

Signed-off-by: mik-patient <112659896+mik-patient@users.noreply.github.com>
2022-11-13 12:46:09 +10:00
Luke Bermingham f1bad5b8fd
Bump version text in cirrus.js to UE 5.1 (#38) 2022-10-10 15:59:58 +10:00
Luke Bermingham 4f3fabd034
Added link to UE5.1 branch.
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2022-10-10 15:46:15 +10:00
Luke Bermingham 89b9b39188
Merge pull request #33 from Belchy06/master
Fix afk overlay on mobile devices
2022-10-10 12:06:36 +10:00
William Belcher c897e1be7f
Add check to only exit pointer lock if the method exists 2022-10-10 11:59:25 +10:00
Luke Bermingham b0b7eb6d89
Update README.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2022-10-05 09:49:01 +10:00
Luke Bermingham 3c2281b56d
Merge pull request #32 from Belchy06/master
Fix styling to re-enable the showing of the afk overlay
2022-09-30 15:07:27 +10:00
William Belcher 8536255b1f
Fix styling to re-enable the showing off the afk overlay 2022-09-30 15:00:33 +10:00
William Belcher 4bbeaa3829
Merge pull request #31 from Belchy06/master
Move the freeze frame delay variable to the app instead of the webrtc…
2022-09-30 11:08:32 +10:00
William Belcher 6b8f31b85f
Move the freeze frame delay variable to the app instead of the webrtc player object 2022-09-29 15:24:16 +10:00
mentalnote d31bfc0e61
Merge pull request #28 from Belchy06/fix_freeze_frame
fix black screen flickering when receiving freeze/unfreeze frame
2022-08-19 11:29:23 +10:00
William Belcher 84a095eb01
Make the delay a configurable member on the webRtcPlayerObj 2022-08-19 11:27:50 +10:00
William Belcher 3b1b841722
fix black screen flickering when receiving freeze/unfreeze frame 2022-08-17 13:28:22 +10:00
mentalnote 24d432cfe6
Merge pull request #27 from Belchy06/handle_double_click
Add handling for mouse double click
2022-08-12 10:43:52 +10:00
William Belcher 98020828fa
Add handling for mouse double click 2022-08-11 17:00:30 +10:00