- Also incorporates some minor upstream header updates
#rb self
[FYI] nazar.rudenko, aidan.possemiers, matthew.cotton, eden.harris
[CL 26759212 by nick pace in ue5-main branch]
Fixes two issues:
- Static Analysis (IncludeTool): The packaging behavior of WebRTC headers that we have modified internal caused an extra newline every line, this broke some headers which have been fixed
- NonUnity: Some of the included WebRTC headers have changed in 5414 so that they now end up including windows.h, causing issues like "min" redefinition, this has been resolved by adding "pre" and "post" headers for WebRTC includes which will ensure the appropriate preprocessor environment is set up prior to including WebRTC headers and then clean up after itself in the "post" header
#rb nazar.rudenko, aidan.possemiers
[FYI] matthew.cotton, denis.phoenix
[CL 26453140 by nick pace in ue5-main branch]
Add WebRTC 109 support to PS plugin behind a flag
This CL adds necessary changes for PS plugin to support WebRTC 109.
#rb nick.pace
[FYI] ivan.sidarau, aidan.possemiers
#jira UE-188331
Test steps:
1. Build WebRTC 109 (5414) from 3rdParty depot
2. Place headers and library into Engine\Source\ThirdParty\WebRTC\5414
3. Change "bShouldUse5414WebRTC" flag to true in WebRTC.Build.cs
4. Build UE5
5. Observe it builds and links with no issues
[CL 26336571 by nick pace in ue5-main branch]
Used WebRTC CL 25357194
Plus as we were in hurry for release, next patch awas applied but not proparly added to PixelStreaming code:
--------------------- media/sctp/sctp_transport_factory.cc ---------------------
index 5097d423..d80865ad 100644
[at][at] -25,7 +25,7 [at][at]
namespace cricket {
SctpTransportFactory::SctpTransportFactory(rtc::Thread* network_thread)
- : network_thread_(network_thread), use_dcsctp_("Enabled", false) {
+ : network_thread_(network_thread), use_dcsctp_("Enabled", true) {
RTC_UNUSED(network_thread_);
#ifdef WEBRTC_HAVE_DCSCTP
webrtc::ParseFieldTrial({&use_dcsctp_}, webrtc::field_trial::FindFullName(
#rnx
#jira RTCP-4485
#preflight https://horde.devtools.epicgames.com/job/64553b97386cf3c2734515bd
#rb Eric.Ley
#rb Jessi.Agee
#lockdown
[CL 25363100 by ivan sidarau in ue5-main branch]
#rb aidan.possemiers, luke.bermingham
[FYI] mattias.jansson
#jira none
#preflight 63d8da437a39a18021ba21a2
[CL 23940609 by nick pace in ue5-main branch]
#rb aidan.possemiers, luke.bermingham
#fyi mattias.jansson
#jira none
#preflight 63d8d95e3656ea96dc556ddf
[CL 23924874 by Nick Pace in ue5-main branch]
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
- UnrealArch is a single architecture, expandable enum-like struct
- There is no more concept of "no/default architecture", there is always a valid active architecture when building
- Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
- UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
- UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
- TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
- Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)
#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471
[CL 23829977 by josh adams in ue5-main branch]
WebRTC binary and header updates for M96.
Reducing bloat of 5.1
#rb aidan.possemiers
[FYI] william.belcher, mattias.jansson
#jira UE-166850
#lockdown Mitchell.Wilson
#preflight 6345f9758d665d55d0fbea15
[CL 22486755 by matthew cotton in ue5-main branch]
Unfortunately we have no real leads why this issue occurs in M96 + FF, only that M96/M84 + non-FF works as expected and M84 + FF works as expected.
The intent is to remove M84 support as soon the FF + M96 bitrate issue can be resolved.
#jira UE-161176
#rb self
#preflight 6333b55ddc213d2eade73a90
[CL 22231468 by luke bermingham in ue5-main branch]
#rb matthew.cotton
#fyi mattias.jansson, ivan.sidarau, william.belcher
#jira none
#preflight 630816f53042e94f9f6e84a6 63081723d65521a5a5927a19
[CL 21580148 by Nick Pace in ue5-main branch]
#fyi Nick.Pace
Original CL Desc
-----------------------------------------------------------------
Set 4664 (M96) as the default WebRTC version and update usage of WebRTC by Pixel Streaming to avoid deprecated API
#rb self
#fyi mattias.jansson, ivan.sidarau, william.belcher, matthew.cotton
#jira none
#preflight 6307233fc85b7fef22ecb57b
[CL 21569680 by jessica agee in ue5-main branch]
#rb self
#fyi mattias.jansson, ivan.sidarau, william.belcher, matthew.cotton
#jira none
#preflight 6307233fc85b7fef22ecb57b
[CL 21559988 by Nick Pace in ue5-main branch]
This change list is a collation of work from multiple authors.
********Features*******
* Adds Editor Streaming module for compositing and streaming of the Unreal Editor
* Pixel Streaming now uses WebRTC codec negotiation instead picking one at command line
* Pixel Streaming now supports custom protocols
* Pixel Capture plugin created which can capture pixel buffers and sample them at independent rates
* Added support for arbitrary audio input into Pixel Streaming
* PixelStreamingVCam supports camera control with ARKit
********Bugfixes*******
* Fix Pixel Streaming FPS CVar so that it correctly enforces FPS
* Fix to make current Pixel Streaming compatible with older versions of UE signalling protocol where "playerConnected" message is not sent
* Pixel Streaming: Fix for format requests locking forever
********Refactors*******
* Streamer will now attempt reconnection after a set delay instead of instantly
#rb matthew.cotton
#fyi mattias.jansson, william.belcher
#jira none
#preflight 6304d06403520e063cbd36a5
[CL 21506776 by Nick Pace in ue5-main branch]
This change list is a collation of work from multiple authors.
********Features*******
* Add a ForceKeyFrame blueprints and cpp method which forces the modules default streamer to send a keyframe.
* Add support for use of WebRTC version 96 with Pixel Streaming. NOTE: There are noticeable performance regressions introduced with this version that are being investigated. Version 84 remains the default.
* Add the ability to stream the main Level Editor window to the browser.
* Add a Pixel Streaming specific toolbar for starting and stopping streaming in the editor, as well as configuring some basic plugin settings.
* Add ARKit transform support for controlling PixelStreamingVCam cameras with ARKit transform data received from the LiveLink app. See PixelStreamingVCamSession for handling of this data.
********Bugfixes*******
* Fix backwards compatibility break where offers from players wouldn't result in a connection.
* Fix a deadlock scenario that could be triggered with rapid peer connects/disconnects.
* Fix a crash in WebRTC caused by not removing the audio sink when a peer disconnects.
* Fix streams being capped at 30fps by default.
* Fix incorrect WebRTC headers being included in public header.
********Refactors*******
* Refactor Pixel Streaming start-up logic to be a more uniform code path.
* Refactor Pixel Streaming URL to use settings function like PixelStreamingIP and Port.
* Moved ECodec to public so the module can expose a method to select what codec the user would like to use.
* Modified packaging of a PixelStreaming project so that ps-infra files are placed in a nicer location.
* Refactor handling of input so mouse and touch events don't affect windows in front of or around the target viewport.
* Renamed the encoders and their corresponding factories to better describe their purpose.
#rb luke.bermingham
#jira none
#preflight 62c3919fc438da7f09fe0914
#fyi mattias.jansson, aidan.possemiers, david.hibbitts
[CL 20938453 by William Belcher in ue5-main branch]
- Windows-based platform extensions should not use MfMedia player now - should change to WmfMedia for the time being.
#jira UE-131865
#rb Eric.McDaniel
#preflight 62347b390820efd09469a25a
[CL 19434256 by David Harvey in ue5-main branch]