Skip to content

Commit

Permalink
Merged in master
Browse files Browse the repository at this point in the history
  • Loading branch information
mcottontensor committed May 3, 2024
2 parents bbe45f1 + 1a7c6ce commit e0ae920
Show file tree
Hide file tree
Showing 36 changed files with 2,871 additions and 5,038 deletions.
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Question
about: Ask a question about the PSInfra, we encourage discussions in public so all can benefit from the answers.
title: ''
labels: question
assignees: ''

---

## Component your question relates to
- [ ] Signalling server
- [ ] Frontend library
- [ ] Frontend UI library
- [ ] Matchmaker
- [ ] SFU
- [ ] This repo
- [ ] Other

## Background
A clear and concise description of the background of your question, if relevant (if not relevant, delete this section).

## Question
A clear and concise question you would like to ask. If there are multiple please list them like so:
1. My first question?
2. My second question?

## Additional context
Add any other context or screenshots that are relevant for your question.
24 changes: 24 additions & 0 deletions .github/workflows/check-markdown-links.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Check Markdown links

on: push

jobs:
linkChecker:
if: github.repository == 'EpicGamesExt/PixelStreamingInfrastructure'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@v1.9.0
with:
args: --exclude 'localhost' --exclude 'github.com/EpicGames/UnrealEngine' --exclude '.png' --exclude '.jpg' --exclude-path 'SFU/mediasoup-sdp-bridge/README.md' './**/*.md'

- name: Create Issue From File
if: env.lychee_exit_code != 0
uses: peter-evans/create-issue-from-file@v4
with:
title: Link Checker Report
content-filepath: ./lychee/out.md
labels: report, automated issue
6 changes: 5 additions & 1 deletion .github/workflows/publish-library-to-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
workflow_dispatch:
branches: ['UE5.5']
paths: ['Frontend/library/package.json']

env:
NODE_VERSION: 18.17.x

jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -14,7 +18,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18.17.0'
node-version: "${{ env.NODE_VERSION }}"
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/publish-ui-library-to-npm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
workflow_dispatch:
branches: ['UE5.5']
paths: ['Frontend/ui-library/package.json']

env:
NODE_VERSION: 18.17.x

jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -14,7 +18,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '18.17.0'
node-version: "${{ env.NODE_VERSION }}"
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- run: npm run build
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/run-frontend-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Run frontend build

on:
push:
paths: ['Frontend/**']
pull_request:
paths: ['Frontend/**']

env:
NODE_VERSION: 18.17.x

jobs:

build:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v3

- name: "Setup node"
uses: actions/setup-node@v3
with:
node-version: "${{ env.NODE_VERSION }}"
registry-url: 'https://registry.npmjs.org'

- working-directory: ./Frontend/library
run: npm ci

- working-directory: ./Frontend/ui-library
run: npm ci

- working-directory: ./Frontend/implementations/typescript
run: npm ci

- name: Build frontend
working-directory: ./Frontend/implementations/typescript
run: npm run build-all

10 changes: 6 additions & 4 deletions .github/workflows/run-library-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@ name: Run library unit tests

on:
push:
branches: ['master']
paths: ['Frontend/library/**']
pull_request:
branches: ['master']
paths: ['Frontend/library/**']

env:
NODE_VERSION: 18.17.x

jobs:

build:
Expand All @@ -22,9 +23,10 @@ jobs:
- name: "Checkout source code"
uses: actions/checkout@v3

- uses: actions/setup-node@v3
- name: Setup node
uses: actions/setup-node@v3
with:
node-version: '18.17.0'
node-version: "${{ env.NODE_VERSION }}"
registry-url: 'https://registry.npmjs.org'

- name: Build common library
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/run-signalling-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ name: Run signalling tests
on:
workflow_dispatch:
push:
branches: ['UE5.5']
paths: ['Common/**', 'SignallingWebServer/**', 'SS_Test/**']
pull_request:
branches: ['UE5.5']
paths: ['Common/**', 'SignallingWebServer/**', 'SS_Test/**']

env:
NODE_VERSION: 18.17.x

jobs:

build:
Expand Down
38 changes: 19 additions & 19 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The changelog is a summary of commits between releases of Unreal Engine.

As a reminder each UE-X branch/tag in this repository corresponds to a version of Unreal Engine.

## [UE 5.3 (Current)](https://github.com/EpicGames/PixelStreamingInfrastructure/commits/UE5.3)
## [UE 5.3 (Current)](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/commits/UE5.3)

### Features
- Protocol structures can now contain strings by @Belchy06 in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/336
Expand Down Expand Up @@ -148,7 +148,7 @@ As a reminder each UE-X branch/tag in this repository corresponds to a version o
- Bumped engine.io and socket.io in /Matchmaker by @dependabot in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/72
- Bumped socket.io-parser from 4.2.2 to 4.2.4 in /Matchmaker by @dependabot in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/244
- Patched Uncaught exception in PixelStreamingInfrastructure via engine by @imhunterand in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/61
- Fixed insufficient validation when decoding a Socket packet by @iot-defcon in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/57
- Fixed insufficient validation when decoding a Socket packet by @iot-defcon
- @ CVE-2022-25896 by @mik-patient in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/35
- Bump webpack from 5.75.0 to 5.76.0 in /Frontend/library by @dependabot in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/153
- Bump webpack from 5.75.0 to 5.76.0 in /Frontend/ui-library by @dependabot in https://github.com/EpicGames/PixelStreamingInfrastructure/pull/155
Expand All @@ -159,31 +159,31 @@ As a reminder each UE-X branch/tag in this repository corresponds to a version o
## [UE 5.1](https://github.com/EpicGames/PixelStreamingInfrastructure/commits/UE5.1)

### Bug fixes
- [3b1b84](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/3b1b8417227fc0cbd8e14326da046876fdf926a3) Fix black screen flickering when receiving freeze frames.
- [853625](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/8536255b1ffd72af02f93d8ec2c094a4cedee695) Fix CSS to show AFK overlay.
- [c897e1](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/c897e1be7f3bdcf37222230ddd742620133b8816) Fix `pointerlock` errors on platforms like iOS where it doesn't exist.
- 3b1b84 Fix black screen flickering when receiving freeze frames.
- 853625 Fix CSS to show AFK overlay.
- c897e1 Fix `pointerlock` errors on platforms like iOS where it doesn't exist.

### Features
- [980208](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/98020828fafc2ef9dc9261bab8be28de9142c0b8) Add handling for mouse double click.
- [6b8f31](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/6b8f31b85fb838503444868b579d73fd1c6fcb8e) Expose freeze frame delay as a configurable option.
- [fe5c4c](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/fe5c4cd1bd65baaa9412e843547ef5ddd10c98c9) Added Dockerfile for the 5.1 Signalling Server container.
- 980208 Add handling for mouse double click.
- 6b8f31 Expose freeze frame delay as a configurable option.
- fe5c4c Added Dockerfile for the 5.1 Signalling Server container.

## [UE 5.0](https://github.com/EpicGames/PixelStreamingInfrastructure/commits/UE5.0)

### Bug fixes
- [3d641a](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/3d641a4f5236792ed7f3014e092f2aa4b6269d5a) Fixed `MatchViewportWidth` not working if toggled repeatedly.
- [ca6644](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/ca6644f85c63e308be54a5207a12cf745d558307) Fix controller button messages not being sent.
- [bb4063](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/bb40639227a0b1462109c66465b67ffa10bc9177) Fix missing `let` in loops.
- [b59bfb](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/b59bfba69e68e761d8d355bf412d071b6e98f0ab) Fix `removeResponseEventListener` using remove instead of delete.
- [4fee8a](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/4fee8a4f1e03349f67d91797b7b5de33d31f91dd) Fix missing initialization for unquantizeAndDenormalizeUnsigned.
- [42fa91](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/42fa919d97c9a5cac5888878e22818c1938f0c90) Move to standardized `onwheel` browser event.
- 3d641a Fixed `MatchViewportWidth` not working if toggled repeatedly.
- ca6644 Fix controller button messages not being sent.
- bb4063 Fix missing `let` in loops.
- b59bfb Fix `removeResponseEventListener` using remove instead of delete.
- 4fee8a Fix missing initialization for unquantizeAndDenormalizeUnsigned.
- 42fa91 Move to standardized `onwheel` browser event.

### Features
- [b23cba](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/b23cba09d1ed8219f8cdf66bd09eaf5a6a50f94e) Added a `MaxPlayerCount` configuration option to the signalling server to restrict participant numbers (default -1: no upper limit).
- [e46c4d](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/e46c4dcce2d5d5501f3aa6ce597f3df9f17fd450) Added support for handling websocket messages sent as binary.
- [616f07](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/616f07affc13724a76ebf5f4a93f22ea9cb97208) Added `offerToReceive` toggle/flag to indicate browser should/or should not make the SDP offer.
- [845ab1](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/845ab147b94ddd9374f6f0e043df8c39a9229d99) Added ability to send handle a "input protocol", which is a protocol specification for data channel messages sent by the UE side. This allows the frontend need no extra handling to support custom data channel messages (of course the user must still bind a handler if they wish to do anything with the message).
- [1c1fe0](https://github.com/EpicGames/PixelStreamingInfrastructure/commit/1c1fe088d1f13bfd9eedd111cb7e9c1cd150c4d4) Added ability to request keyframes on the frontend.
- b23cba Added a `MaxPlayerCount` configuration option to the signalling server to restrict participant numbers (default -1: no upper limit).
- e46c4d Added support for handling websocket messages sent as binary.
- 616f07 Added `offerToReceive` toggle/flag to indicate browser should/or should not make the SDP offer.
- 845ab1 Added ability to send handle a "input protocol", which is a protocol specification for data channel messages sent by the UE side. This allows the frontend need no extra handling to support custom data channel messages (of course the user must still bind a handler if they wish to do anything with the message).
- 1c1fe0 Added ability to request keyframes on the frontend.

## [UE 4.27 (End of life)](https://github.com/EpicGames/PixelStreamingInfrastructure/commits/UE4.27)

Expand Down
14 changes: 7 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ Please remain patient, courteous, and professional at all times. Any form of spa
### Creating issues

If you have encountered a bug, have suggestions for our documentation or infrastructure, or would like to propose a feature that could enhance Pixel Streaming in various use case scenarios, you can raise this with us by creating a new issue.
1. First, search all open and closed issues [here](https://github.com/EpicGames/PixelStreamingInfrastructure/issues?q=is%3Aissue+) - your issue may have already been discussed or addressed.
2. If your issue doesn't exist, open a new issue [here](https://github.com/EpicGames/PixelStreamingInfrastructure/issues/new/choose) by selecting a bug or feature request.
1. First, search all open and closed issues [here](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/issues?q=is%3Aissue+) or in the [legacy repository](https://github.com/EpicGames/PixelStreamingInfrastructure/issues?q=is%3Aissue+is%3Aclosed) - your issue may have already been discussed or addressed.
2. If your issue doesn't exist, open a new issue [here](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/issues/new/choose) by selecting a bug or feature request.
3. Make sure to fill in the template as much as possible; any information you can provide, such as repro steps, crash stacks, screenshots, etc., can help us triage and fix the problem as quickly as possible.
4. Keep an eye on the status of your issue; our developers or other users might reach out with requests for more information. If this happens, issues that have not received a response in over 30 days will be automatically closed.
5. Be patient while waiting on a resolution; we prioritize the issues internally and some less critical features (however much we'd love to implement them!) will take a backseat to more pressing priorities, so some issues can take a while to get resolved.
Expand All @@ -27,17 +27,17 @@ If you have a solution to a problem you've encountered or to any other open issu
1. Fork the repo and branch off of the `main` branch in your fork.
2. Implement your changes in your branch and make sure your commits are Verified! Signed commits are required for merging! [Github Signing Documentation](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification)
3. Do as much testing as you can, and when you are happy, tidy up your work and commit the update.
4. Create a [pull request](https://github.com/EpicGames/PixelStreamingInfrastructure/pulls) and don't forget to link it to an issue if there's an existing one. Add as much information as possible to your PR: describe the problem your change solves, mention any testing you have done and attach any relevant documents and screenshots.
4. Create a [pull request](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/pulls) and don't forget to link it to an issue if there's an existing one. Add as much information as possible to your PR: describe the problem your change solves, mention any testing you have done and attach any relevant documents and screenshots.
5. If your are contributing a PR for a new feature, we strongly encourage you to accompany it with relevant documentation and a detailed description of the tests you have done. PRs that don't have this information may take a long time to be addressed, since our team will have to do the testing.
6. If your PR is good to go, we will merge it in. Woohoo! Thank you for your time and efforts! 🎉
7. Keep a close eye on your PR - quite often, our developers will review your PR and leave comments; we might request some minor code changes and modifications, style unification, or leave any general comments and questions that are preventing us from merging the PR.
8. If we do not hear from you after requesting more information within 30 days, the PR will auto-close. In this case, we might elect to open our own PR and re-use some of the changes that you proposed, supplemented with anything else that was required to be added in your original PR.
9. If your PR fixes a problem in the previous [still-supported UE branches](https://github.com/EpicGames/PixelStreamingInfrastructure#versions), feel free to add the `auto-backport` and `auto-backport-to-UEX.X` labels. You'll need to add a `auto-backport-to-UEX.X` label for each branch you wish your change to be merged back to. Note that if a change to any of the previous branches is not trivial and requires a lot of testing and compatibility checks, we might elect to close it if we do not think that it brings enough value to the branch.
9. If your PR fixes a problem in the previous [still-supported UE branches](https://github.com/EpicGamesExt/PixelStreamingInfrastructure#versions), feel free to add the `auto-backport` and `auto-backport-to-UEX.X` labels. You'll need to add a `auto-backport-to-UEX.X` label for each branch you wish your change to be merged back to. Note that if a change to any of the previous branches is not trivial and requires a lot of testing and compatibility checks, we might elect to close it if we do not think that it brings enough value to the branch.

### Other ways to contribute

- Keep an eye on our repo and stay active on existing issues and PRs; you can help by adding informative comments to the discussions, additional repro steps, repros in different environments, or any suggestions as to what could be causing the issue and how it could be solved.
- Work on [issues labeled for community](https://github.com/EpicGames/PixelStreamingInfrastructure/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). We specifically created this label to mark issues that we would love the community to help us with.
- Work on [issues labeled for community](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). We specifically created this label to mark issues that we would love the community to help us with.
- Create documentation for undocumented features. Please open an issue first, so our developers can provide you with some guidance.
- Write more unit test coverage.
- Document functions in the public API that are not documented.
Expand All @@ -46,10 +46,10 @@ If you have a solution to a problem you've encountered or to any other open issu

## Coding style
- TypeScript should be used over JavaScript.
- All TypeScript should adhere to the following [linting rules](https://github.com/EpicGames/PixelStreamingInfrastructure/blob/master/Frontend/library/.eslintrc.js).
- All TypeScript should adhere to the following [linting rules](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/master/Frontend/library/.eslintrc.js).
- Names should follow US English spelling.
- All public functions/API should have comments.
- Code formatting should adhere to the following [whitespace and indentation rules](https://github.com/EpicGames/PixelStreamingInfrastructure/blob/master/Frontend/library/.prettierrc.json).
- Code formatting should adhere to the following [whitespace and indentation rules](https://github.com/EpicGamesExt/PixelStreamingInfrastructure/blob/master/Frontend/library/.prettierrc.json).
- All new features should have accompanying unit tests and documentation when they are submitted.
- Prefer early returns in `if` statements to decrease indentation.
- Prefer functions to not exceed ~20 lines.
Expand Down
2 changes: 1 addition & 1 deletion Frontend/Docs/Customizing the Player Webpage.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,4 @@ For an overview on how to change the CSS style of the player and its component w

## Changes to the base Pixel Streaming UI library

Additionally, deeper changes and expansions can be made to the `ui-library` project, which is used as the base for the Frontend UI implementations. Any useful changes can be merged in the main library through pull requests.
Additionally, deeper changes and expansions can be made to the `ui-library` project, which is used as the base for the Frontend UI implementations. Any useful changes can be merged in the main library through pull requests.

0 comments on commit e0ae920

Please sign in to comment.