├── .gitignore ├── .gitmodules ├── README.md └── releases.txt /.gitignore: -------------------------------------------------------------------------------- 1 | Output/ 2 | userdef.py* 3 | nugetpackages 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "docs"] 2 | path = docs 3 | url = https://github.com/webrtc-uwp/webrtc-uwp.github.io.git 4 | [submodule "webrtc/xplatform/gyp"] 5 | path = webrtc/xplatform/gyp 6 | url = https://github.com/webrtc-uwp/gyp.git 7 | [submodule "webrtc/xplatform/usrsctp"] 8 | path = webrtc/xplatform/usrsctp 9 | url = https://github.com/webrtc-uwp/usrsctp.git 10 | [submodule "webrtc/xplatform/opus"] 11 | path = webrtc/xplatform/opus 12 | url = https://github.com/webrtc-uwp/opus.git 13 | [submodule "webrtc/xplatform/openmax"] 14 | path = webrtc/xplatform/openmax 15 | url = https://github.com/webrtc-uwp/openmax.git 16 | [submodule "webrtc/xplatform/libyuv"] 17 | path = webrtc/xplatform/libyuv 18 | url = https://github.com/webrtc-uwp/libyuv.git 19 | [submodule "webrtc/xplatform/libvpx"] 20 | path = webrtc/xplatform/libvpx 21 | url = https://github.com/webrtc-uwp/libvpx.git 22 | [submodule "webrtc/xplatform/libsrtp"] 23 | path = webrtc/xplatform/libsrtp 24 | url = https://github.com/webrtc-uwp/libsrtp.git 25 | [submodule "webrtc/xplatform/libjpeg_turbo"] 26 | path = webrtc/xplatform/libjpeg_turbo 27 | url = https://github.com/webrtc-uwp/libjpeg_turbo.git 28 | [submodule "webrtc/xplatform/jsoncpp"] 29 | path = webrtc/xplatform/jsoncpp 30 | url = https://github.com/webrtc-uwp/jsoncpp.git 31 | [submodule "webrtc/xplatform/googletest"] 32 | path = webrtc/xplatform/googletest 33 | url = https://github.com/webrtc-uwp/googletest.git 34 | [submodule "webrtc/xplatform/gflags"] 35 | path = webrtc/xplatform/gflags 36 | url = https://github.com/webrtc-uwp/gflags.git 37 | [submodule "webrtc/xplatform/boringssl"] 38 | path = webrtc/xplatform/boringssl 39 | url = https://github.com/webrtc-uwp/boringssl.git 40 | [submodule "webrtc/xplatform/googlemock"] 41 | path = webrtc/xplatform/googlemock 42 | url=https://github.com/webrtc-uwp/googlemock.git 43 | [submodule "webrtc/xplatform/yasm/binaries"] 44 | path = webrtc/xplatform/yasm/binaries 45 | url = https://github.com/webrtc-uwp/yasm-binaries.git 46 | [submodule "webrtc/xplatform/yasm/patched-yasm"] 47 | path = webrtc/xplatform/yasm/patched-yasm 48 | url = https://github.com/webrtc-uwp/yasm-patched-yasm.git 49 | [submodule "webrtc/xplatform/winsdk_samples_v71"] 50 | path = webrtc/xplatform/winsdk_samples_v71 51 | url = https://github.com/webrtc-uwp/winsdk_samples_v71.git 52 | [submodule "common/windows/samples/PeerCC"] 53 | path = common/windows/samples/PeerCC 54 | url = https://github.com/webrtc-uwp/PeerCC.git 55 | [submodule "webrtc/windows"] 56 | path = webrtc/windows 57 | url = https://github.com/webrtc-uwp/webrtc-windows.git 58 | [submodule "common/windows/samples/AppRTC"] 59 | path = common/windows/samples/AppRTC 60 | url = https://github.com/webrtc-uwp/AppRTC.git 61 | [submodule "webrtc/xplatform/buildtools"] 62 | path = webrtc/xplatform/buildtools 63 | url = https://github.com/webrtc-uwp/buildtools.git 64 | [submodule "webrtc/xplatform/depot_tools"] 65 | path = webrtc/xplatform/depot_tools 66 | url = https://github.com/webrtc-uwp/depot_tools.git 67 | [submodule "webrtc/xplatform/gflags-build"] 68 | path = webrtc/xplatform/gflags-build 69 | url = https://github.com/webrtc-uwp/gflags-build.git 70 | [submodule "webrtc/apple"] 71 | path = webrtc/apple 72 | url = https://github.com/webrtc-uwp/webrtc-apple.git 73 | [submodule "webrtc/xplatform/webrtc"] 74 | path = webrtc/xplatform/webrtc 75 | url = https://github.com/webrtc-uwp/webrtc.git 76 | [submodule "webrtc/xplatform/chromium/base"] 77 | path = webrtc/xplatform/chromium/base 78 | url = https://github.com/webrtc-uwp/chromium-base.git 79 | [submodule "webrtc/xplatform/chromium/build"] 80 | path = webrtc/xplatform/chromium/build 81 | url = https://github.com/webrtc-uwp/chromium-build.git 82 | [submodule "webrtc/xplatform/chromium/testing"] 83 | path = webrtc/xplatform/chromium/testing 84 | url = https://github.com/webrtc-uwp/chromium-testing 85 | [submodule "webrtc/xplatform/chromium/tools"] 86 | path = webrtc/xplatform/chromium/tools 87 | url = https://github.com/webrtc-uwp/chromium-tools.git 88 | [submodule "webrtc/xplatform/chromium/third_party"] 89 | path = webrtc/xplatform/chromium/third_party 90 | url = https://github.com/webrtc-uwp/chromium-third_party 91 | [submodule "webrtc/linux"] 92 | path = webrtc/linux 93 | url = https://github.com/webrtc-uwp/webrtc-linux.git 94 | [submodule "webrtc/xplatform/llvm/libcxx"] 95 | path = webrtc/xplatform/llvm/libcxx 96 | url = https://github.com/webrtc-uwp/libcxx.git 97 | [submodule "webrtc/xplatform/llvm/libcxxabi"] 98 | path = webrtc/xplatform/llvm/libcxxabi 99 | url = https://github.com/webrtc-uwp/libcxxabi.git 100 | [submodule "webrtc/xplatform/cryptopp"] 101 | path = webrtc/xplatform/cryptopp 102 | url = https://github.com/webrtc-uwp/cryptopp.git 103 | [submodule "webrtc/xplatform/icu"] 104 | path = webrtc/xplatform/icu 105 | url = https://github.com/webrtc-uwp/icu.git 106 | [submodule "webrtc/xplatform/templates"] 107 | path = webrtc/xplatform/templates 108 | url = https://github.com/webrtc-uwp/templates.git 109 | [submodule "webrtc/xplatform/webrtc-apis"] 110 | path = webrtc/xplatform/webrtc-apis 111 | url = https://github.com/webrtc-uwp/webrtc-apis.git 112 | [submodule "webrtc/xplatform/zsLib"] 113 | path = webrtc/xplatform/zsLib 114 | url = https://github.com/webrtc-uwp/zsLib.git 115 | [submodule "webrtc/xplatform/zsLib-eventing"] 116 | path = webrtc/xplatform/zsLib-eventing 117 | url = https://github.com/webrtc-uwp/zsLib-eventing.git 118 | [submodule "scripts"] 119 | path = scripts 120 | url = https://github.com/webrtc-uwp/webrtc-scripts.git 121 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WebRTC UWP SDK 2 | 3 | ## This project has been deprecated 4 | 5 | We are currently focusing our efforts on getting out of the fork business. This effort is happening in the [WinRTC GitHub repo](https://github.com/microsoft/winrtc). Keeping WebRTC-UWP fork doesn't allow us to move fast enough. We are contributing back the changes needed to build WebRTC.org code base for UWP. Here are some of the changes we're contributing back: 6 | 7 | - https://webrtc-review.googlesource.com/c/src/+/167021 8 | - https://boringssl-review.googlesource.com/c/boringssl/+/39584 9 | - https://chromium-review.googlesource.com/c/chromium/src/+/1962509 10 | - [abseil/abseil-cpp#594](https://github.com/abseil/abseil-cpp/pull/594) 11 | - [abseil/abseil-cpp#596](https://github.com/abseil/abseil-cpp/pull/596) 12 | 13 | Besides the new video capturing module that is being reviewed, we're also creating a new audio capturing module. There are more changes in the pipeline to be contributed back and more changes required for finishing the port. After having WebRTC.org code base compatible with UWP, we're going to work on a WinRT abstraction layer allowing easy consumption of WebRTC capabilities by WinRT projections. 14 | 15 | That said, keep in mind we are contributing back the changes and we have no control over when/if the changes will be accepted by their teams. 16 | 17 | ## Overview 18 | 19 | This repository and the linked subrepos contains all the source and sample applications for the WebRTC UWP SDK. For additional documentation see [webrtc-uwp.github.io](https://webrtc-uwp.github.io/). 20 | 21 | ## Cloning 22 | 23 | From your terminal, recursively clone this repo to obtain all the source code & dependencies needed to build WebRTC for UWP: 24 | 25 | ```bash 26 | git clone --recursive https://github.com/webrtc-uwp/webrtc-uwp-sdk 27 | ``` 28 | 29 | ## Directory Structure 30 | 31 | | Directory | Description | 32 | | ------------------------ | ------------------------------------------------ | 33 | | `webrtc-uwp-sdk\scripts` | scripts for preparing an environment for Windows | 34 | | `webrtc-uwp-sdk\common` | samples applications (AppRTC and PeerCC) | 35 | | `webrtc-uwp-sdk\webrtc` | WebRTC code - builds as Org.WebRtc.dll | 36 | | `webrtc-uwp-sdk\docs` | documentation | 37 | 38 | ## Prerequisites 39 | 40 | - Visual Studio 2017 (latest tested version tested 15.9.7); Community Edition is supported 41 | - Windows SDK 17134 (available from [archive page](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive)) 42 | - This SDK version is hard coded in the Google source and required to build the WebRTC library. 43 | - When installing the SDK, include the feature **Debugging Tools for Windows** which is required by the preparation scripts. Note that the SDK installed as part of Visual Studio does not include this feature. 44 | - Windows SDK 17763 (available from [archive page](https://developer.microsoft.com/en-us/windows/downloads/sdk-archive)) 45 | - This SDK version is used by the WebRTC UWP wrappers and required to build the managed code. 46 | - When installing the SDK, include the feature **Debugging Tools for Windows** which is required by the preparation scripts. Note that the SDK installed as part of Visual Studio does not include this feature. 47 | - C++/WinRT Visual Studio extension (available from the [VS Marketplace](https://marketplace.visualstudio.com/items?itemName=CppWinRTTeam.cppwinrt101804264)) 48 | - The minimum required Windows version to deploy apps is 1703 / Build 10.0.15063 / Anniversary Update 49 | - Strawberry Perl (Supported perl version can be obrained from http://strawberryperl.com/) 50 | 51 | ## Known Issues 52 | 53 | - Due to the Windows limit on path length it is recommended to clone close to the root. `C:\repos\my-branch` is known to work, longer paths may fail. 54 | - Older issues of Python 2.7.x can fail for unknown reasons. To resolve: 55 | 1. Uninstall Python 2.7 56 | 2. Install Python 2.7.15 57 | 3. Ensure `C:\Python27` is at the top of the system path 58 | 4. From an Administrator command prompt at `C:\Python27\scripts` run the following: 59 | 1. `python -m pip install --upgrade pip` 60 | 2. `pip install pywin32` 61 | 5. Create a clean clone & attempt to build the repo. 62 | 63 | ## Building the SDK 64 | 65 | Several build options, including NuGet package creation, are available through command line scripts or Visual Studio. For more information see the [webrtc-scripts](https://github.com/webrtc-uwp/webrtc-scripts) repo. The simplest method to build the SDK and PeerCC sample in Visual Studio is described below. 66 | 67 | 1. Open the solution `webrtc-uwp-sdk\webrtc\windows\solutions\WebRtc.Universal.sln` in Visual Studio 68 | 2. To build whole solution or to build PeerConnectionClient.WebRtc, before native and wrapper libs are built it is necessary to change VS2017 settings (Tools->Options->Project and Solutions->Allow parallel projects initialization uncheck it). 69 | - Note this is no longer necessary as of VS 15.9.7 70 | 3. Right click the `PeerConnectionClient.WebRtc` project and choose **Set as Startup Project** 71 | 4. Choose processor architecture 72 | 5. Hit F5 73 | 74 | # Unity Video Rendering on HoloLens 75 | 76 | ## Unity build requirements 77 | 78 | * Unity version 2019.1.0f2 or later. Add the following components: Universal Windows Platform Build Support and Windows Build Support (IL2CPP). 79 | 80 | ## Running Unity Peer Connection Client application on HoloLens device (or HoloLens simulator) 81 | 82 | 1. Open `webrtc\windows\solutions\WebRtcUnity.sln` solution, select x86 platform and build PeerConnectionClientUnityCore project. The build procedure produces WebRTC libraries, WebRTC for UWP wrapper component and deploys WebRTC and Peer Connection Client Core libraries to the Unity project space. 83 | 2. Open Unity project `common\windows\samples\PeerCC\ClientUnity' in Unity Editor 84 | 3. Go to 'File' -> 'Build settings...', select 'Universal Windows Platform', click on the 'Build' button and choose an export folder 85 | 4. Add the following XML block to generated manifest file `PeerCCUnity\Package.appxmanifest`: 86 | ``` 87 | 88 | 89 | 90 | WebRtcScheme.dll 91 | 92 | 93 | 94 | 95 | ``` 96 | 5. Open PeerCCUnity.sln from export folder, build PeerCCUnity project and run the application on the device 97 | -------------------------------------------------------------------------------- /releases.txt: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------- 2 | Version: 1.71.0.3-Alpha 3 | --------------------------------------------------------------------- 4 | -h.264 video decoder fix with raw frame access 5 | --------------------------------------------------------------------------------