-
Notifications
You must be signed in to change notification settings - Fork 278
Any plans to contribute stuff back to Unity's WebRTC implementation? #104
Comments
Hi @StephenHodgson, We are having a look at the Unity project and discussing internally about it, and I will come back to you when we have more information. |
Here's an answer. Apology for the delay, as we were discussing with other teams to align. Unity recently released FeaturesParity of core featuresFirst, the Unity project is new and missing support for features that Mixed Reality developers are currently getting with MixedReality-WebRTC.
Some of the items missing in Mixed Reality featuresSecond, MixedReality-WebRTC provides support for features specific to Mixed Reality, like Mixed Reality Capture (MRC) allowing developers to render holograms on top of the head-mounted HoloLens camera, or video profile selection allowing developers to select camera resolutions better suited for video conferencing (lower resolution, less CPU consuming, better thermals). Those features are not currently available on the source repository maintained by Google, which MixedReality-WebRTC indirectly builds upon. Runtime InteroperabilityWebRTC is standardized, and any compliant implementation shall be interoperable with any other one, provided a common signaling solution is employed. MixedReality-WebRTC currently builds upon the M71 milestone of Google's WebRTC implementation, which is not strictly compliant with WebRTC 1.0 yet. However we have plans to move to a later milestone compliant with the 1.0 version of the standard. The The signaling solution is as always outside of the scope of the WebRTC standard, and MixedReality-WebRTC offers an extensible mechanism supporting any protocol/implementation. ContributionsSometimes we require modifications to parts of the core WebRTC implementation from Google. Although we aim to keep those modifications as small as possible to stay close to the Google codebase, some are still needed, in particular to support Mixed Reality features. This is the reason why MixedReality-WebRTC builds upon the WebRTC UWP project, which in turn consumes the Google repository. With the Unity project we do not have access to the core implementation Unity is using (the native plugin appears to be a DLL checked in inside the repository, without its sources). As the Unity project seems focused on render streaming, we assume that Unity also needs access to the WebRTC core for its own customizations. As a first step towards collaboration, Unity would need to make their fork public. But beyond that, having separate repositories renders collaboration very difficult. Moving to a shared repository is also problematic, with all the administrative and legal issues that would surround such a cross-company collaboration. For example, NuGet packages for MixedReality-WebRTC are signed with a Microsoft certificate, which mandates restricted push access to the repository to Microsoft employees only for obvious security reasons. As both libraries use the Google implementation of WebRTC under the hood, a longer term path forward to unify them could be to push all the necessary changes on each side into the Google repository, provided this is something that the maintainers of that repository agree on. Although we have no concrete information about any engagement on Google's side at the current time, the WebRTC UWP team and the MixedReality-WebRTC are determined to follow that path, and we are pleased to announce that we are taking steps to evaluate rebasing both of those Microsoft projects on the HEAD of the Google repository, and try to contribute our changes back to it, while being able to benefit from the latest features introduced by the Google's WebRTC team since the M71 milestone. We hope to see a path where Unity could do the same, which would provide a natural way to join forces and ensure runtime interoperability. |
We will update this question if there is any news in the future, but closing it in the meantime as I believe the question was answered. |
https://github.com/Unity-Technologies/com.unity.webrtc
What your guys thoughts on this?
Any plans to contribute stuff back to Unity and roll this into a single package?
Sibling Issue:
Unity-Technologies/com.unity.webrtc#24
The text was updated successfully, but these errors were encountered: