Commit Graph

79 Commits

Author SHA1 Message Date
nick pace
97ae2952c4 Disable 5414 WebRTC until Compile UnrealGame Linux - CrossCompile target is fixed
#rb self
[FYI] denis.phoenix, nazar.rudenko, aidan.possemiers

[CL 26457045 by nick pace in ue5-main branch]
2023-07-19 08:15:10 -04:00
nick pace
66e927ab09 Fix WebRTC 5414 NonUnity and static analysis issues and re-enable it as the default version.
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]
2023-07-18 20:08:41 -04:00
nick pace
baa6240911 Revert back to WebRTC 4664 due to build health issues with 5414.
[CL 26339909 by nick pace in ue5-main branch]
2023-06-30 01:42:05 -04:00
nick pace
dfb8e17be5 Unshelved from pending changelist '25944872':
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]
2023-06-30 00:23:52 -04:00
nick pace
3ec5d6833a Add Linux and Windows binaries for WebRTC version 109
#rb self
[FYI] nazar.rudenko

[CL 26335517 by nick pace in ue5-main branch]
2023-06-29 23:44:51 -04:00
ivan sidarau
76e9e854e4 Updated WebRTC 96 as Engine/Source/ThirdParty component for Pixel streaming.
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]
2023-05-05 20:55:11 -04:00
joe kirchoff
8e833277da Fix WebRTC include paths or bundled third party libs
#rnx
#jira UE-177808

[CL 24432067 by joe kirchoff in ue5-main branch]
2023-02-27 16:19:25 -05:00
nick pace
7262e016da Disable static assert preventing compilation with latest Clang toolchain in abseil-cpp inside WebRTC.
#rb aidan.possemiers, luke.bermingham
[FYI] mattias.jansson
#jira none
#preflight 63d8da437a39a18021ba21a2

[CL 23940609 by nick pace in ue5-main branch]
2023-01-31 18:02:04 -05:00
Nick Pace
b5751e7637 Disable static assert preventing compilation with latest Clang toolchain in abseil-cpp inside WebRTC.
#rb aidan.possemiers, luke.bermingham
#fyi mattias.jansson
#jira none
#preflight 63d8d95e3656ea96dc556ddf

[CL 23924874 by Nick Pace in ue5-main branch]
2023-01-31 04:26:58 -05:00
Nick Pace
062cbc7ebb Remove WebRTC version M84
#rb luke.bermingham
#fyi mattias.jansson
#jira none
#preflight 63d145dc94644f3e8ed4e940

[CL 23848552 by Nick Pace in ue5-main branch]
2023-01-25 10:55:03 -05:00
josh adams
1610c3bee3 UnrealArch/UnrealArchitectures changes
- 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]
2023-01-24 09:30:28 -05:00
matthew cotton
f6421691cd Removing debug binaries from webrtc.
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]
2022-10-12 18:00:49 -04:00
aidan possemiers
263dee338e Links WebMMedia against WebRTC on platforms its supported by; this avoids symbol collisions.
#JIRA UE-165968
#rb Pavel.Punsky Ivan.Sidarau
#preflight 633d2048d74cbd55043aa4b0
#preflight 633e1480b6053e8287a4c93f

[CL 22412639 by aidan possemiers in ue5-main branch]
2022-10-07 19:41:26 -04:00
luke bermingham
d1d2e69229 Revert default WebRTC version back to M84 until M96 + FF are able to hit/ramp to expected bitrates when Pixel Streaming.
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]
2022-09-28 17:35:23 -04:00
Nick Pace
7829383587 Set 4664 (M96) as the default WebRTC version on Windows and update usage of WebRTC by Pixel Streaming to avoid deprecated API
#rb matthew.cotton
#fyi mattias.jansson, ivan.sidarau, william.belcher
#jira none
#preflight 630816f53042e94f9f6e84a6 63081723d65521a5a5927a19

[CL 21580148 by Nick Pace in ue5-main branch]
2022-08-25 21:08:53 -04:00
jessica agee
04122edcd9 [Backout] - CL21559988
#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]
2022-08-25 14:42:31 -04:00
Nick Pace
43275e46b5 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 21559988 by Nick Pace in ue5-main branch]
2022-08-25 03:28:43 -04:00
Nick Pace
e4617a4c5c Pixel Streaming features, bugfixes, and refactors that benefit main.
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]
2022-08-23 09:21:08 -04:00
William Belcher
fe31211473 Early Pixel Streaming features, bugfixes, and refactors that benefit main.
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]
2022-07-04 22:23:38 -04:00
Aidan Possemiers
19c966c925 Adding WerbRTC binaries for upgrade to WebRTC M96. Currently not enabled by default.
#JIRA UE-153246
#rb Luke.Berminham, Ivan.Sidarau
#fyi Mattias.Jansson, Pavel.Punsky
#preflight 6286e0dc9016c6dd89a5dda5

[CL 20315916 by Aidan Possemiers in ue5-main branch]
2022-05-22 19:35:22 -04:00
David Harvey
41557382a7 Main media plugins build for Windows-based platform extensions.
- 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]
2022-03-18 08:43:12 -04:00
pavel punsky
c3950e90b7 Fix license header
#jira UE-143836
#test none
#rb none
#preflight none

#ROBOMERGE-AUTHOR: pavel.punsky
#ROBOMERGE-SOURCE: CL 19254783 in //UE5/Release-5.0/... via CL 19258148
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)

[CL 19263551 by pavel punsky in ue5-main branch]
2022-03-04 03:50:43 -05:00
aidan possemiers
697730c398 Fix issue with RTTI being missing in Linux binaries.
#JIRA UE-143839
#rb Luke.Bermingham
[FYI] Mattias.Jansson
#preflight 621c2c6cbb51b08242427abe
#preflight 621c2cb42b69aa5e59587317
#lockdown Mitchell.Wilson

#ROBOMERGE-AUTHOR: aidan.possemiers
#ROBOMERGE-SOURCE: CL 19173044 in //UE5/Release-5.0/... via CL 19173197
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19173338 by aidan possemiers in ue5-main branch]
2022-02-28 09:48:15 -05:00
aidan possemiers
78a4f1d2fe Update webrtc headers to match libraries and update Linux WebRTC binaries to match headers.
#JIRA UE-143654
#rb Luke.Bermingham, Pavel.Punsky
[FYI] Mattias.Jansson
#preflight 62173558db60b6b5920bfe98
#lockdown Mitchell.Willson

#ROBOMERGE-AUTHOR: aidan.possemiers
#ROBOMERGE-SOURCE: CL 19114534 in //UE5/Release-5.0/... via CL 19114747
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19152890 by aidan possemiers in ue5-main branch]
2022-02-25 14:20:54 -05:00
aurel cordonnier
34f55d3a4a Merge from Release-Engine-Test @ 17946149 to UE5/Main
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17949667 by aurel cordonnier in ue5-main branch]
2021-10-27 15:14:40 -04:00