Commit Graph

50 Commits

Author SHA1 Message Date
Matthew Cotton d52961093d
Testing newer github action for checkout and setup node. 2024-01-29 12:00:57 +11:00
Matthew Cotton dceed6b29c
Updating actions to 5.5 branch 2024-01-29 11:04:50 +11:00
Matthew Cotton 656bad1071
A bunch of changes relating to the current PR review. Targeting release 5.5 now. Updating workflows and versions etc. 2024-01-24 16:35:22 +11:00
Matthew Cotton 266e171ddd
Updating more github actions. 2024-01-23 16:59:43 +11:00
Matthew Cotton de66372aaf
Fixing up some unit tests. 2024-01-23 16:37:30 +11:00
Matthew Cotton 80e9c0d0b4
Adding extra paths to the signalling tester 2024-01-23 13:25:15 +11:00
Matthew Cotton 58e90a1b8d
Fixing runner path 2024-01-23 13:22:06 +11:00
Matthew Cotton 4bcdf8deae
Adding extra up flags 2024-01-22 16:11:13 +11:00
Matthew Cotton e66ce635e0
Adding extra up flags 2024-01-22 16:08:46 +11:00
Matthew Cotton daf8bde037
Fixing action reference 2024-01-22 15:59:11 +11:00
Matthew Cotton de33245fd1
Updating github action 2024-01-22 15:58:04 +11:00
Matthew Cotton 21fa9c48af
Updating github action to use docker compose 2024-01-22 15:56:22 +11:00
mcottontensor 73fe7037be
Update run-signalling-tests.yml
Signed-off-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
2024-01-22 12:30:39 +11:00
Matthew Cotton 726dbf36dc
Allowing signalling test action to be manually triggered 2024-01-22 12:18:40 +11:00
Matthew Cotton 6e4ce05544
Adding signalling test github action. 2024-01-22 12:11:11 +11:00
timbotimbo cfbe5a0f86
Fix formatting in bug_report template. (#437)
Signed-off-by: timbotimbo <timbotimbo@users.noreply.github.com>
2023-11-22 08:33:58 +10:00
Matthew Cotton 4fd080675e
Adding container build to existing container action. Also added container reference on main README. 2023-11-21 09:55:19 +11:00
Matthew Cotton 66fc4bc68e
Updating workflows so some can be manually started. 2023-09-13 12:51:39 +10:00
Matthew Cotton 0cde16d497
Updated actions to reference 5.4 2023-09-13 12:15:34 +10:00
Luke Bermingham 2159bb4272
Update publish-ui-library-to-npm.yml
Lock github action to NodeJS 18.17.0

Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-09-11 22:35:06 +10:00
Luke Bermingham dbb54d14eb
Lock NodeJS version to 18.17.0 in Github action
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-09-11 22:33:42 +10:00
gunsha d92e46e301
Rename implementations/EpicGames to implementations/typescript (#177)
Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
2023-07-18 16:32:02 +10:00
William Belcher 2ad3674a56
Update stale message on Issues and PRs
Signed-off-by: William Belcher <william.belcher@xa.epicgames.com>
2023-07-18 14:06:54 +10:00
mcottontensor 4124bb759f
Update stale.yml
Signed-off-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
2023-07-18 11:27:50 +10:00
William Belcher 10d6cd699c
update stale workflow to also auto close stale issues and PRs 2023-07-18 11:17:59 +10:00
William Belcher fc4872f464
Update stale.yml to include manual trigger (#305)
Signed-off-by: William Belcher <william.belcher@xa.epicgames.com>
2023-07-18 10:53:32 +10:00
William Belcher 1e11c6a78d
Add github action for PR and Issue management (#304)
* Add stale action for issues/PRs that are inactive for 30 days
2023-07-18 10:37:59 +10:00
mcottontensor ab4bd67ffe
Update backport.yml
Signed-off-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
2023-06-20 13:41:39 +10:00
mcottontensor 430da8f576
Create backport.yml
Attempting to add auto backport action.

Signed-off-by: mcottontensor <80377552+mcottontensor@users.noreply.github.com>
2023-06-20 13:40:56 +10:00
Luke Bermingham 6214829ec1
Shorten frontend ui lib action name
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-06-16 15:04:46 +10:00
Luke Bermingham 18d0a7b3c9
Shorten action name for publishing npm lib
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-06-16 15:03:56 +10:00
Luke Bermingham 9554d031e3
Shorten action name for pushing cirrus container images
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-06-12 16:47:24 +10:00
Luke Bermingham 464e8a0c37
Upgrade 5.2 to 5.3 in libraries, docs, log messages, build pipelines (#262)
* Updated github actions to work on UE5.3 branch and reset release version to 0.0.1 for the UE5.3 branch.

* Update bug report template to include UE5.X prefix.

* Refactored frontend deps to move from 5.2 to 5.3

* Update container-images Github action to use 5.3 tag

* Bump 5.2 t 5.3 in various docs and log strings.
2023-06-12 15:06:53 +10:00
Luke Bermingham 02f6642300
Update feature.md
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-03-20 14:58:02 +10:00
Luke Bermingham b25e174113
Added pull request template
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-03-20 14:28:28 +10:00
Luke Bermingham 815b0cb13b
Added feature template 2023-03-20 14:15:48 +10:00
Luke Bermingham 9687fbe414
Add bug report issue template 2023-03-20 14:10:20 +10:00
hmuurine f58b32cae6
Unit tests for library (#156)
* add unit test coverage reports to gitignore

* add jest dependencies

* add jest config

* add Config unit tests

* add AFKController unit tests

* mock video codecs list

* test for PixelStreaming SettingsChangedEvent

* mock/unmock functions for RTCRtpReceiver

* mock WebSocket

* test for PixelStreaming.connect()

* unit test for disconnect

* unit tests for reconnect

* added eventemitter events in tests

* test that listStreamers is sent on WS connect

* mock RTCPeerConnection and RTCIceCandidate

* test webRtcConnected event

* test RTCPeerConnect close

* fixed variable name for consistency

* check for navigator.getGamepads before calling it

* mock addTransceiver, createAnswer, getTransceivers, setRemoteDescription

* test for receiving a connection offer

* add null checks for peerConnection since it might be null if connectiong closed

* mock addIceCandidate

* test for receiving ICE candidate message

* mock setLocalDescription, getStats

* test for statistics

* test webRtcDisconnected event

* mock RTCDataChannel and RTCDataChannelEvent

* test for dataChannelOpen event

* mock RTCTrackEvent

* mock MediaStream and MediaStreamTrack

* mock video element play()

* test playStream and playStreamRejected events

* mock video readyState

* mock WebRTC data channel send()

* test emitCommand

* test emitUIInteraction

* test emitConsoleCommand

* Jest mock for HTMLMediaElement.play()

* check boolean return value of all emit* commands

* test dataChannelClose event

* added TextEncoder and TextDecoder to Jest globals

* mock datachannel onmessage

* test UE -> browser data channel message

* clarified in test description that we are using a Response message

* extracted commonly used setup steps as util functions

* triggerSdpOffer -> triggerSdpOfferMessage for consistency

* run unit tests as a Github action

* Revert "break one of the tests to test the GH action"

This reverts commit 05f5742cf0.

* run tests only if files changed under Frontend/library

* added unit test run instructions to README.md
2023-03-17 12:41:05 +10:00
Luke Bermingham 8edd4b1991
Update workflow for ss container to point to dockerfile
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-25 21:04:21 +10:00
Luke Bermingham ceb3bba2b1
Update workflow file context to have root dir
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-25 20:49:39 +10:00
hmuurine 6282965dab
Smaller bundle size (#117)
* Changed Github actions to first do `npm ci`, then `npm link`

* Modified package to not bundle library dependencies into library JS

* Added: webpack config to build both umd and esm versions of the frontend library

* Changed package run to first do `npm ci`, then `npm link` also for implementation, since now it has the libraries as dependencies

* Updated package-lock

* Switch the order of `npm link` commands because the order matters
2023-02-23 09:53:01 +10:00
Luke Bermingham 49dcfff303
Update building container image for ss to tag 5.2
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-22 18:58:36 +10:00
Luke Bermingham c465d4643e Fix bug in gh-release action now that we are building UI library too. Bump version to 0.2.1. 2023-02-22 18:11:39 +10:00
hmuurine 781667247f
Decouple UI from the frontend library (#110)
This PR splits the Frontend/library code into two parts:

1) /library - that provides an API for establishing Pixel Streaming sessions
2) /ui-library - that contains all the UI components like settings overlay panel, connection strength indicator, buttons, etc.
The library code is intended to be used as a library through the Javascript/Typescript API, and it can be used programmatically without the default UI implemented in ui-library. This allows the developers to bring their own UI if they wish to customize the user experience, or even start a Pixel Streaming session without any overlay UI.

The wish is to keep the library API stable and try to not make breaking changes if possible. If new non-breaking features are introduced to the API, it would be great if it was reflected in the version numbering following semantic versioning. Breaking changes should increase the major version number, while non-breaking changes increase only the minor or patch version number.

* add jss dependencies to UI project

* move PixelStreamingApplicationStyles to the UI project

* remove jss dependencies from library project

* add pixel streaming lib as ui dependency

* renamed lib Application -> PixelStreaming

* expose AFK callbacks from API

* expose callbacks for overlays

* onDismissAfk function added

* fix possible NPE in statistics panel (Firefox only)

* build both library projects in setup.sh|.bat

* extracted overlays from PixelStreaming library to UI

* bind callbacks to have access to `this`

* emit onStatsReceived callback

* replaced on\* callbacks with a typed event emitter

* reuse types in on() and emit()

* fix web-xr on Firefox (no navigator.xr available)

* latency test API and callback events

* move stats panel to UI project

* move settings panel to UI project

* extract video quality indicator to UI project

* move buttons to UI project

* events for freezeFrame functionality

* import UI project in stresstest.ts

* move UI wrapper elements to UI project

* optional override for videoParentElement

* created uiless.html and uiless.ts, which together are a sample UI application with no overlay UI

* let -> const everywhere in sample applications

* used named imports everywhere, not import * as libfrontend

* document overrides

* added onOpen, onClose, onError handlers for data channels

* events for webRtc data channel open, close, error

* added missing javadocs for classes and functions

* renamed webRtcDisconnect -> webRtcDisconnected

* added disconnect function to the API

* use EventTarget to emit events

* emit streamerListMessage, move new streamer select overlay to UI side

* Emit config change events

* API for changing settings

* add getSettings() for symmetry

* set partial initial settings in Config constructor

* configure initial params in uiless.ts to auto start muted

* add missing type exports

* extracted config UI from the config components

* configurable parameter saving to URL

* save config params to URL only on demand

* removed console.log

* removed unused import

* Extract light/dark mode config out of Pixel Streaming library

* update labels for custom settings

* Build the new library in setup scripts

* added a fallback click-to-play handler into uiless.ts

* hide non-public attributes in Config

* make the public API more compact by hiding private attributes

* added documentation for the public functions

* underscored some methods in Config

* make useUrlParameters read-only

* underscore for Config event listeners: public API users use settingsChanged events

* underscore for Config event listeners

* fix imports: @epicgames-ps/lib-pixelstreamingfrontend-ue5.2, not -dev

* added a comment to request function API docs: expected to be changed later

* reorganized directory structure

* ui-library build now uses NPM dependency, build-all linked filesystem dependency

* added ui-library build to GH release

* added github workflow for ui-library publishing

* Link base library when building ui-library

* Bring dispatchEvent, addEventListener and removeEventListener to the top level PixelStreaming class, simplifying API usage

* Allow settings to take a default onChange listener. This listener has two params of the new value as well as the calling settings, allowing you to modify the underlying settings members in this callback

* Fix overlay to properly notify is none or multiple streamers are connected

* Make dark mode the default color scheme regardless of browser preference.

* Make numeric settings spinner width take us less space.

* Make SettingUIOption match styling width of numeric settings.

* renamed EpicGames build-all-dev -> build-dev-all to match other projects

* added Click to play overlay in uiless.html and show/hide it when needed

* revised documentation for Config/*.ts

* revised documentation in PixelStreaming.ts

* documented EventEmitter events and event parameters

* emit webRtcConnected event when connected

* Fix max bitrate not being set correctly.

* Update package-lock.json for ui-library

* Refactor sendEncoderSettings to instead be sendEncoderMinQP and sendEncoderMaxQP

* Bump version numbers of library NPM package to 0.1.0 and bump 5.2 release to 0.2.0 as all changes here a non-breaking as far as we have tested.

---------

Co-authored-by: William Belcher <william.belcher@xa.epicgames.com>
Co-authored-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-22 17:12:12 +10:00
Luke Bermingham 5832a441c2
Update create-gh-release.yml
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-20 14:24:02 +10:00
Luke Bermingham 86c0036e43
Update create-gh-release.yml
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-20 14:11:51 +10:00
Luke Bermingham 9576084e1f
Remove leading quote typo
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-20 14:05:13 +10:00
Luke Bermingham eec331b1ab
Update release action to make archive subdir
Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-20 14:00:22 +10:00
Luke Bermingham f1d192d318
Create subdirectory when making release archive
Archive contents should start with a directory that is `PixelStreamingInfrastructure-Branch-Version`

Signed-off-by: Luke Bermingham <1215582+lukehb@users.noreply.github.com>
2023-02-20 13:44:45 +10:00
Luke Bermingham 92dd46dfc1
Bring Github actions to 5.2 branch (#105)
* Added dev and prod configs to webpack (#102)
* Adding github actions to create an NPM package for frontend library and make a release for the repo (#103)
* Added workflow file for pushing library to npm
* Added workflow file for making a release with built implementation/EpicGames archives
2023-02-17 18:03:37 +10:00