Skip to content
This repository has been archived by the owner on Mar 1, 2024. It is now read-only.

Convert frontend javascript to typescript and refactor. #63

Merged
merged 304 commits into from
Feb 7, 2023
Merged
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
304 commits
Select commit Hold shift + click to select a range
96faddc
fixed restart stream
adrianZahra Jun 21, 2022
8efc276
fixed bug where the afk was still active after a reguler dissconnection
adrianZahra Jul 7, 2022
b1f24ae
added overlay for when the stream was loading
adrianZahra Jul 7, 2022
52a6048
added dissconect overlay that allows reconnection
adrianZahra Jul 11, 2022
a238a3a
added comments for disconnection overlay
adrianZahra Jul 11, 2022
06e1ec0
replaced all bind methods with arrow functions to make code cleaner
adrianZahra Jul 11, 2022
0fda8f1
seperated auto webrtc connection from auto play with a new config par…
adrianZahra Jul 11, 2022
21137d4
added the new QP icon
adrianZahra Jul 13, 2022
f5ac3c2
added fully functional qp indicator
adrianZahra Jul 13, 2022
02540ff
removed redundant code and changed image restart icon to svg
adrianZahra Jul 13, 2022
a29f26e
added the ability to toggle fullscreen and added logic
adrianZahra Jul 14, 2022
b4f2228
added the ability to toggle settings and stats but need to clean up c…
adrianZahra Jul 14, 2022
cdc8c1a
fixed qp stat bug
adrianZahra Jul 14, 2022
e724dd3
fixed bug with the dissconect action overlay and autoplay
adrianZahra Jul 14, 2022
d9a42f2
added icons for tooltips
adrianZahra Jul 26, 2022
a747659
changed images to be served as base 64
adrianZahra Jul 26, 2022
7ae8497
configured svg button in the index for fast loading
adrianZahra Jul 26, 2022
9fb57e6
moddifed styles in the settings and stats menu
adrianZahra Jul 27, 2022
e24f6f9
fixed matchviewport resolution
adrianZahra Jul 27, 2022
dc83a13
added favicons and fixed matchviewportresolution
adrianZahra Jul 27, 2022
f2357f7
refactored VideoPlayerController to StreamController
adrianZahra Jul 27, 2022
2db51d7
upgraded the logger to be more usefull
adrianZahra Jul 28, 2022
2e732ba
remove hard-coded signalling server address from the frontend
dan-tw Jul 28, 2022
13b39bf
removed accidental forced url
adrianZahra Jul 29, 2022
8bf305e
Merge branch 'main' of github.com:ScalablePixelStreaming/Frontend int…
adrianZahra Jul 29, 2022
aef2818
seperated playing audio from playing video in webrtcplayer controller…
adrianZahra Aug 1, 2022
07312cf
turned on autoplay for QA
adrianZahra Aug 1, 2022
d14147d
reverted autoplay
adrianZahra Aug 1, 2022
37e2005
turned on autoplay for QA
adrianZahra Aug 1, 2022
9cc858a
reverted changes to auto play
adrianZahra Aug 1, 2022
de35add
moved autoplay settings into the index so the library remains the sam…
adrianZahra Aug 2, 2022
512b2f3
reworked sound and video
adrianZahra Aug 2, 2022
df16377
added a fix for ios making svg icons invisible when having filteres a…
adrianZahra Aug 2, 2022
24113ae
added qol change where the settings pannel closes when clicking resta…
adrianZahra Aug 2, 2022
c3c037b
turned off autoplay
adrianZahra Aug 3, 2022
c8e19bc
loged unknown dc messages
adrianZahra Aug 3, 2022
8d3fbd8
loged unknown dc messages moved log before error
adrianZahra Aug 3, 2022
708304f
add support for sending back a pong message to the signalling server …
dan-tw Aug 4, 2022
ecbb552
Bug fixed multitouch zooming the page
david-macpherson Aug 5, 2022
d8e92e4
update to v0.0.6
dan-tw Aug 9, 2022
b1df668
update to version 0.1.0
dan-tw Aug 10, 2022
3172d0c
ensure that the max width of the panel wrap can never exceed the max …
dan-tw Aug 10, 2022
620c276
remove the width 400px from the steamtoolstats panel css
dan-tw Aug 10, 2022
0462f69
fix the force turn button so that it appears off to the right of the …
dan-tw Aug 10, 2022
0bc4309
bump version to 0.1.1
dan-tw Aug 10, 2022
d2099cf
fine tuned toggles for device browsers
adrianZahra Aug 11, 2022
b665d08
enabled afk outside of the play button to curb unused container resco…
adrianZahra Aug 11, 2022
305925a
minor tweak to toggle spacing
adrianZahra Aug 11, 2022
c5b69c7
minor tweak to send stats to server
adrianZahra Aug 11, 2022
16938c9
trying new way to serve images with html-loader
adrianZahra Aug 12, 2022
33fafd3
added the gamepad fix from commit ca6644f85c63e308be54a5207a12cf745d5…
adrianZahra Aug 15, 2022
49e0336
Added support for handling websocket messages sent as binary.
adrianZahra Aug 15, 2022
b429f8a
added log to check that fe is getting config from ss
adrianZahra Aug 15, 2022
9013c68
added a feature that looks for turn servers if turn is forced. Moved …
adrianZahra Aug 16, 2022
50ee84f
reworked turn to dissconect if forced and there are no servers
adrianZahra Aug 16, 2022
ff41836
added small tweaks to exiting with no turn
adrianZahra Aug 16, 2022
6098cb4
fixed afk not activating
adrianZahra Aug 16, 2022
74ec122
add support for overriding the disconnection message in the webrtcpla…
dan-tw Aug 16, 2022
5ea3ce4
If the instance state comes back as ready, it is missing the details …
dan-tw Aug 16, 2022
c2817f5
If the instance state comes back as ready, it is missing the details …
dan-tw Aug 16, 2022
e165482
If the instance state comes back as ready, it is missing the details …
dan-tw Aug 16, 2022
f53ed30
Improve grammar on the error message when there is no TURN server
dan-tw Aug 16, 2022
9d78fe0
bump version to v0.1.2
dan-tw Aug 16, 2022
5bdf11b
prevent the disconnect message from incorrectly appearing as undefined
dan-tw Aug 16, 2022
ae945d8
added messaged to closing the websocket
adrianZahra Aug 16, 2022
87b4637
update to v0.1.3
dan-tw Aug 17, 2022
36e7a24
fix stats that were not coming through correctly
dan-tw Aug 18, 2022
932341c
remove the browser composite stat for now
dan-tw Aug 18, 2022
3c70e5b
layed the foundation for the new message system
adrianZahra Aug 24, 2022
46e22cc
fixed typing of maps
adrianZahra Aug 25, 2022
ba8cfbb
added routes for UI and comands
adrianZahra Aug 26, 2022
61ee344
consolidated commands and ui descriptors
adrianZahra Aug 29, 2022
ec53f3a
moved some classes and methods out of StreamMessageController
adrianZahra Aug 30, 2022
573a541
remoddeld the commands
adrianZahra Aug 30, 2022
8000807
moved message methods to SendMessageController
adrianZahra Aug 30, 2022
315c1a7
connected dc to recieve messages
adrianZahra Aug 30, 2022
2dfa1d1
fixed bug with uninitalised maps
adrianZahra Aug 30, 2022
67734fc
fixed stream handeler function context
adrianZahra Aug 31, 2022
6495303
began reworking the inputs
adrianZahra Aug 31, 2022
a84e725
added datachannel sender
adrianZahra Sep 1, 2022
76fff8c
began reconsolidating mouse input
adrianZahra Sep 1, 2022
7098fae
began working on hooking up mouse and keyboard input
adrianZahra Sep 2, 2022
71219c3
reconsolidated normalise and quanatise
adrianZahra Sep 5, 2022
4ebc17b
reworking locked and hovering mouse for normalising and quanatising
adrianZahra Sep 5, 2022
c963f01
squared away locked mouse and mouse controller
adrianZahra Sep 6, 2022
2210e61
squared away hovering mouse events
adrianZahra Sep 6, 2022
ebc39a3
squared away keyboard events
adrianZahra Sep 6, 2022
8c7b3cd
squared away fake touch controller
adrianZahra Sep 6, 2022
b7cd4a7
squared away touch controller
adrianZahra Sep 6, 2022
06b26d5
fixed bug with fake touch and the player rectangle
adrianZahra Sep 6, 2022
8384b09
fixed bug with pointerlock and renamed player to videoElementParent
adrianZahra Sep 6, 2022
8af7679
moved setting the play action for the video into the constructor
adrianZahra Sep 7, 2022
e446c42
fixed non removing listener for exiting pointer lock
adrianZahra Sep 7, 2022
644ceef
fixed resizing bugs
adrianZahra Sep 7, 2022
bff17f9
fixed player resolution and mouse movment bugs
adrianZahra Sep 8, 2022
9f7f9c4
supressed some logs and changed the exports for libspsfrontend
adrianZahra Sep 8, 2022
a2c446f
cleaned up some ui stuff and polished the file processer
adrianZahra Sep 9, 2022
6a4d2cf
cleaned up the native dom delegate and added onscreen keyboard suport…
adrianZahra Sep 9, 2022
25cdf15
cleaned up code in library and frontend
adrianZahra Sep 12, 2022
87bfa06
fixed the library to straight export
adrianZahra Sep 12, 2022
893be7d
ensure that we are recieving the instance id back from the signalling…
dan-tw Sep 21, 2022
b9df846
ensure that we can correctly display multiple pending messages withou…
dan-tw Sep 21, 2022
12805c6
ensure that we are recieving the instance id back from the signalling…
dan-tw Sep 21, 2022
da67650
allow for pending instance messages to be adjusted to offer more fine…
dan-tw Sep 22, 2022
a5fdc3b
bump package version to v0.1.4
dan-tw Sep 22, 2022
9560442
update npm libspsfrontend version
dan-tw Oct 12, 2022
c88815f
Merge branch 'newinputchanges'
lukehb Nov 7, 2022
49ca4de
Fix duplicate exported classes.
lukehb Nov 7, 2022
da18573
Bring settings panel to parity with reference settings panel - exclud…
lukehb Nov 8, 2022
2f89fe5
Adding AFK setting to settings panel
lukehb Nov 9, 2022
a37bc20
Add support for signalling server url passed as /?ss= as url parameter.
lukehb Nov 9, 2022
4acf7cd
Fix video fill display option
lukehb Nov 10, 2022
9a95418
Added togglable setting
lukehb Nov 13, 2022
986ede2
Added programmatic surface to construct settings flags
lukehb Nov 15, 2022
d1398d3
Added programmatic surface to construct settings flags
lukehb Nov 15, 2022
d13d4e2
Added FillWindow as a new flagged setting in the new settings.
lukehb Nov 21, 2022
44319aa
Move control scheme setting into new settings config.
lukehb Nov 21, 2022
fba37df
Added buttons programmatically instead of in html
lukehb Nov 21, 2022
21c0970
Added numeric settings for min/max qp
lukehb Nov 21, 2022
ee29d5c
SettingNumber now reflected in url param
lukehb Nov 22, 2022
f8ab13b
Made a start of moving webrtc numeric settings to new programattic ap…
lukehb Nov 24, 2022
017721f
Added safe codepath if KeyboardEvent.keyCode is deprecated in the bro…
lukehb Nov 24, 2022
1fed01f
Moved WebRTC settings to new programmable approach
lukehb Nov 24, 2022
87a66f2
Created settings panel that can be constructed programmatically
lukehb Nov 24, 2022
7c2ca10
Moved all overlay construction into Overlays.ts
lukehb Dec 22, 2022
7e9a8d2
Removed showStats boolean that was now unused.
lukehb Dec 23, 2022
8e9f4ae
Added programmatic construction of video qp indicator.
lukehb Dec 23, 2022
71edc87
Fullscreen icon not constructed programmatically, including icons.
lukehb Dec 30, 2022
9eee2d5
Settings icon now programmatically constructed
lukehb Dec 30, 2022
dacedf7
Stats Icon is now programmatically constructed.
lukehb Dec 30, 2022
853dd22
Moved all icons to a controls element that is programmatically constr…
lukehb Dec 30, 2022
d70353b
Programmatically construct latency test element
lukehb Dec 30, 2022
b6d302d
Create stats panel programmatically
lukehb Dec 31, 2022
db8dcb0
Programmatically construct uiFeature element and playerUI root elemen…
lukehb Dec 31, 2022
1104b62
Moved most functionality to delegate base instead of NativeDomDelegate
lukehb Dec 31, 2022
3cd5a58
Remove dependency on events lib
lukehb Jan 3, 2023
564e3d1
Fix initial settings not being parsed correctly after refactor.
lukehb Jan 3, 2023
81571b6
Added italic headings to stat panel headings and changed tooltip on s…
lukehb Jan 3, 2023
54bdde7
Fix typo of handel=>handle
lukehb Jan 3, 2023
ee9c614
Removed reference to afktimer from websocket controller
lukehb Jan 3, 2023
f53fa2b
Allow browser to receive offers - UE5 compatability
Belchy06 Jan 3, 2023
852048a
Moving auth req message into library implementation instead of base l…
lukehb Jan 3, 2023
683f9d6
Merge pull request #5 from Belchy06/converged
Belchy06 Jan 4, 2023
8abb7d8
Moved instance state signalling message out of library
lukehb Jan 4, 2023
3fefa0d
Merge branch 'converged' of https://github.com/ScalablePixelStreaming…
lukehb Jan 4, 2023
16934e2
Hooked up new signalling protocol
lukehb Jan 4, 2023
ec1ed15
fix bug in signalling protocol handler calls. rename 'browser send an…
Belchy06 Jan 4, 2023
7fc1fcc
Add SFU support. Also removed usages of console.xxx for logging and r…
Belchy06 Jan 4, 2023
ca7b6eb
Fix all linter errors and most warnings. Only warnings existing now a…
Belchy06 Jan 4, 2023
bf8cd46
Fix: Config control scheme wasn't being updated with the value parsed…
Belchy06 Jan 4, 2023
cd06c67
Remove control scheme from config. It is no handled directly from the…
Belchy06 Jan 4, 2023
7c7651c
Enable PS to embed properly
Belchy06 Jan 4, 2023
527cdfc
Fix: freeze frames weren't locating correctly
Belchy06 Jan 4, 2023
51cff52
Moved all SPS signalling out of library
lukehb Jan 4, 2023
be18417
Merge SFU support
lukehb Jan 4, 2023
b026e7f
Fix: data channel creation not work
Belchy06 Jan 4, 2023
f9789fa
Moving signalling server in setting text that can be accessed and set…
lukehb Jan 4, 2023
926b7c2
Merge branch 'converged' of https://github.com/ScalablePixelStreaming…
lukehb Jan 4, 2023
2d1a55e
Move 'send stats to server' checkbox out of the library
Belchy06 Jan 5, 2023
1c0e4b7
fix styling to align with reference PS frontend
Belchy06 Jan 5, 2023
507b95a
fix styling to align with reference PS frontend pt2
Belchy06 Jan 5, 2023
66e0fff
Moved construction of signalling server url into library
lukehb Jan 5, 2023
d2cc5bd
Merge branch 'converged' of https://github.com/ScalablePixelStreaming…
lukehb Jan 5, 2023
4cfff22
Merge SFU work into signalling url changes by creating a construct si…
lukehb Jan 5, 2023
124aafd
remove superfluous interfaces
Belchy06 Jan 5, 2023
a4e65ff
Create Epic Games reference implementation. Remove references to SPS …
Belchy06 Jan 5, 2023
c3966f3
Moved all config options from members to be settings which can set in…
lukehb Jan 5, 2023
c85296d
Merge branch 'converged' of https://github.com/ScalablePixelStreaming…
lukehb Jan 5, 2023
ab47eb4
Fixed stats still being sent after disconnect.
lukehb Jan 6, 2023
7a545bf
Fix AFK click to restart not working
lukehb Jan 6, 2023
f214c08
Remove reference to any type and fix remaining linter errors
Belchy06 Jan 6, 2023
bc8d18e
merge latest
Belchy06 Jan 6, 2023
3e5af85
fix bugs
Belchy06 Jan 6, 2023
44ea7ea
FileLogic to become FileUtil with static methods
lukehb Jan 6, 2023
e06e579
Refactor normalize and quantize to be called coordinate converter.
lukehb Jan 6, 2023
726a8d1
Refactored AFK logic to be AFK Controller
lukehb Jan 6, 2023
dc88efc
rename Ui to UI
lukehb Jan 6, 2023
fe30010
Removed UiController and moved logic into video player
lukehb Jan 6, 2023
fec250d
improve sps loading screen
Belchy06 Jan 6, 2023
297b088
Merge branch 'converged' of https://github.com/ScalablePixelStreaming…
Belchy06 Jan 9, 2023
bd52212
remove unnecessary PlayerStyleAttributes
Belchy06 Jan 9, 2023
f964ae1
Move sending of stats to signalling server to SPS implementation
Belchy06 Jan 9, 2023
90838cc
Fix security vulnerabilities in implementations. Remove unused packages
Belchy06 Jan 9, 2023
016f65a
Fix spelling errors
Belchy06 Jan 11, 2023
c98a2c9
Add ability to handle default mouse scheme from an offer. Also fixed …
Belchy06 Jan 11, 2023
22ba2a2
Add stresstester to implementation. This unveiled some points where w…
Belchy06 Jan 11, 2023
8fdbcf1
Add login page
Belchy06 Jan 11, 2023
0868c27
Rename libfrontend to pixelstreamingfrontend
Belchy06 Jan 12, 2023
7949d4b
Add copyright notice
Belchy06 Jan 12, 2023
66f01fb
Fix double connections. Remove logging from websocket onerror as the …
Belchy06 Jan 12, 2023
614f7e9
Fix body filling more than the screen size on iOS
Belchy06 Jan 12, 2023
5e0c53b
Add toggle for light and dark mode. defaults to system preference
Belchy06 Jan 12, 2023
9171808
fix mic not working
Belchy06 Jan 13, 2023
7026faa
fix light mode
Belchy06 Jan 13, 2023
91fe925
Fix backspace not working
Belchy06 Jan 13, 2023
d8c1913
Adding jss support
lukehb Jan 16, 2023
a911251
Fix webpack compilation
lukehb Jan 16, 2023
3f1e637
Fixed css in js to handle camel case names for styles
lukehb Jan 16, 2023
d9b4b80
Remove tag level css rules that may leak into someone elses application
lukehb Jan 16, 2023
5c8c672
Added light mode, fixed css, fixed to US spelling of color, fixed loa…
lukehb Jan 16, 2023
4b8c5d3
Fixing Implementation/EpicGames
lukehb Jan 16, 2023
c84bb6f
Changing stress test default values
lukehb Jan 16, 2023
1b5cab0
Remove esbuild
lukehb Jan 16, 2023
8b073d6
Added fix for vh100 creating scroll of iOS devices
lukehb Jan 16, 2023
61b3a39
CLeanup websocket disconnect message to contain reason only if one is…
lukehb Jan 16, 2023
ec2d540
Add webpack devserve to contain dist dir
lukehb Jan 16, 2023
0bc6ec9
Fix backspace not working
lukehb Jan 16, 2023
67e48a4
Fixing use mic option that was not usable locally
lukehb Jan 16, 2023
b6b191e
Merge branch 'jss' into converged
lukehb Jan 16, 2023
a9a86c8
Disable rain animation until perf is improved on mobile devices
lukehb Jan 16, 2023
345fdfc
Cleaning up package.json files
lukehb Jan 17, 2023
79e8ec2
updating readme for release
lukehb Jan 17, 2023
05e27f3
Move whole repo into converged dir to make merge easier
lukehb Jan 17, 2023
1693d74
Merge remote-tracking branch 'sps-frontend/converged' into typescript
lukehb Jan 17, 2023
b5e9107
Move the new typescript frontend into a /Frontend directory.
lukehb Jan 17, 2023
630a015
Merge branch 'EpicGames:master' into typescript
lukehb Jan 17, 2023
e837762
Remove old frontend files and update implementation to build into web…
lukehb Jan 17, 2023
06ba005
Merge branch 'typescript' of https://github.com/lukehb/PixelStreaming…
lukehb Jan 17, 2023
4ce0612
Renamed index to player.html to match existing conventions in Cirrus
lukehb Jan 17, 2023
84135dd
Added script to install frontend if not built and also an option to f…
lukehb Jan 17, 2023
ed0ad53
Remove debug messages
lukehb Jan 17, 2023
b7b2727
Cleaned up indentation and trailing whitespace
StomyPX Jan 17, 2023
376cdeb
Updated setup_frontend.bat to install npm packages too
lukehb Jan 17, 2023
e05a721
Merge branch 'typescript' of github.com:lukehb/PixelStreamingInfrastr…
StomyPX Jan 17, 2023
41488e5
Updated bash setup scripts to build frontend if missing or directed
StomyPX Jan 18, 2023
ab59a5b
Minor cleanup on bash setup script
StomyPX Jan 18, 2023
e2a5b33
Revised arg handling to match rest of the bash scripts
StomyPX Jan 18, 2023
9939e03
Added --build description to --help display
StomyPX Jan 18, 2023
a67b483
Removed uncessary includes from tsconfig
lukehb Jan 20, 2023
9dfc8e7
Remove superfluous package-lock.json in root.
lukehb Jan 20, 2023
b600b79
Added prettier and performed whitespace pass on the library.
lukehb Jan 20, 2023
54bc2cd
Update Frontend/implementations/EpicGames/package.json
lukehb Jan 22, 2023
d29c67a
Update Frontend/library/package.json
lukehb Jan 22, 2023
ca669fc
Add ability to set preferred codec during negotiation
Belchy06 Feb 1, 2023
3ee2fd7
fix missing stats in stats panel
Belchy06 Feb 1, 2023
7ce5912
set update selector based on what was negotiated once video starts
Belchy06 Feb 1, 2023
5fb2850
remove erroneus comment
Belchy06 Feb 1, 2023
da67b3b
Merge branch 'EpicGames:master' into TypeScript
Belchy06 Feb 1, 2023
5888944
fix errors from converting undefined to string
Belchy06 Feb 2, 2023
e74944a
fix sfu not working due to fmtp line reordering
Belchy06 Feb 2, 2023
42806ad
reword comment for better description
Belchy06 Feb 2, 2023
77752ce
update default codec for use with ios
Belchy06 Feb 2, 2023
f02df7c
fix signalling server not connecting if frontend is hosted on anythin…
Belchy06 Feb 3, 2023
ceb1997
fix locked mouse 'MouseDown' events using the wrong coordinate location
Belchy06 Feb 6, 2023
5d53d40
Fix: On Windows always use our bundled NodeJS to build the frontend.
lukehb Feb 6, 2023
7853417
Adding SetEnv.exe tool that is used on Windows to temporarily modify …
lukehb Feb 6, 2023
ffcd401
fix merge commit in setup_frontend.bat
Belchy06 Feb 6, 2023
a461c7f
Remove left over merge conflict message
Belchy06 Feb 6, 2023
4cdaf37
add npm to the path temporarily when running setup_frontend
Belchy06 Feb 6, 2023
770bf94
remove preferred codec from text parameters as it's now an option par…
Belchy06 Feb 6, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ logs/
node_modules/
**/platform_scripts/cmd/*/
**/platform_scripts/bash/*/
node.zip
node.zip
SignallingWebServer/Public/
22 changes: 22 additions & 0 deletions Frontend/.github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Publish library package to npmjs
on:
push:
tags:
- '*'
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./library
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
- run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
5 changes: 5 additions & 0 deletions Frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
dist/
docs/
node_modules/
types/
.vscode
41 changes: 41 additions & 0 deletions Frontend/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Pixel Streaming Frontend Library

This is frontend javascript library for Epic Games' Pixel Streaming.


The core features of this library are:

- Create a websocket connection to communicate with the signalling server.
- Create a WebRTC player that displays the Unreal Engine video and audio.
- Handling of input from the user and transmitting it back to Unreal Engine.
- Opens a datachannel connection sending and receiving custom data (in addition to input).

## Usage from source

When developing your own Pixel Streaming experience the intent is you will start with this library and extend it through the use of
its public API. We have provided an example of this workflow in our implementations/EpicGames, which is an implementation of this library.

## Contributing

If part of the library is not exposed and you wish to extend it, please do so in your own branch and open a pull request with your change for our consideration.

## Developing

Changes to the library occur in the /library directory and require you to have NodeJS installed as part of your development environment.
Once you have NodeJS installed,

- `cd library`
- `npm install`
- `npm run build`


If you are developing your implementation based on the library, the process is similar:


- `cd implementation/your_implementation`
- `npm build-all`


## Legal

Copyright © 2022, Epic Games. Licensed under the MIT License, see the file [LICENSE](./LICENSE) for details.
Loading