WebRTC M80 Release Notes
WebRTC M80 branch (branch id: 3987, cut at r30022)
WebRTC M80, currently available in Chrome's beta channel, contains 5 new features and over 35 bug fixes, enhancements and stability/performance improvements. As with previous releases, we encourage all developers to run versions of Chrome on the Canary, Dev, and Beta channels frequently and quickly report any issues found. Please take a look at this page, for some pointers on how to file a good bug report. The help we have received has been invaluable!
The Chrome release schedule can be found here.
Starting from Dec 02, 2019, WebRTC switched over to daily branching in order to improve the overall Chrome branching process (see crbug.com/1020605). The branch names are now matching the Chromium’s branch names, so rather than being refs/branch-heads/m$MILESTONE (where $MILESTONE is the Chromium milestone, for example M79), branches will now be refs/branch-heads/$BRANCH_NUMBER (where $BRANCH_NUMBER is a monotonically increasing number, for example 3987 which is associated with the M80 Chromium branch), just like chromium/src. You can find more details in this PSA.
The webrtc.org open source repository contains platform implementations for Windows, Mac, iOS and Android. These are primarily utilized for automated testing. Browsers and other applications that embed WebRTC often have developed their own highly optimized platform code with custom capture/render components matching the applications architecture.
We have decided to discontinue the distribution of precompiled libraries for Android and iOS. The script for creating the AAR library can be found here, the build script for iOS is located here.
The ability to “rollback” an offer is one of the cornerstones to supporting Perfect Negotiation, a pattern allowing two-way offer-answer exchanges that abstracts away the signaling between peers, without risk of glare (an offer coming in outside of “stable” state). Rolling back an offer means to undo effects of setLocalDescription(offer) or setRemoteDescription(offer). In M80, “rollback” is supported through three different means:
Explicit SLD “rollback”: pc.setLocalDescription({type:’rollback’}), rolls back to “stable” signaling state.
Explicit SRD “rollback”: pc.setRemoteDescription({type:’rollback’}), which has the same effect as the above.
Implicit SRD “rollback”: pc.setRemoteDescription(incomingOffer) when in the has-local-offer state. Prior to M80 this would have thrown an exception. In M80, this rolls back the local offer and applies the remote offer, all in one operation (avoiding possible races with other signaling messages).
Rollback issue: https://crbug.com/980875. Perfect Negotiation issue (ongoing): https://crbug.com/980872.
Now RTCPeerConnection.setLocalDescription() can be invoked without arguments. This implicitly creates and offer or answer (depending on signalingState) that is set. This avoids a possible race with handling incoming offers while creating an offer, which can happen if you do “pc.setLocalDescription(await pc.createOffer())” instead. This is part of ongoing efforts to support Perfect Negotiation. See https://crbug.com/980872.
These are primarily utilized for automated testing.
Browsers and other applications that embed WebRTC often have developed their own highly
optimized platform code with custom capture/render components matching the applications architecture.
Is there any chance that support of Android and iOS implementation in this repository would be discontinue in a near future?
Would you suggest to start implementing our own platform code for mobile apps if we were relying on webrtc.org implementation for iOS and Android "as-is"?
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/3e85a1eb-597c-49d8-9c73-62251bb8e656%40googlegroups.com.
While keeping up with WebRTC milestones gives you the latest features and security fixes, it does require further work from app developers to quality control each release for their app. This post gives an idea of what would be a typical approach for that.
The process for creating custom mobile binaries from the webrtc source code is outlined in this documentation. App developers can continue to build the mobile libraries themselves. The possibility to build mobile apps based on webrtc.org source code is not going away.The easiest way to get started is using the official prebuilt libraries available at JCenter. These libraries are compiled from the tip-of-tree and are meant for development purposes only.
"
"
The WebRTC framework is published on cocoapods.org. The framework is built from tip-of-tree.
"
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/348b3e6b-e4ec-4dcd-a063-9023e1805b91%40googlegroups.com.
While keeping up with WebRTC milestones gives you the latest features and security fixes, it does require further work from app developers to quality control each release for their app. This post gives an idea of what would be a typical approach for that.
The process for creating custom mobile binaries from the webrtc source code is outlined in this documentation. App developers can continue to build the mobile libraries themselves. The possibility to build mobile apps based on webrtc.org source code is not going away.
When developing the Temasys IE and safari plugin back in 2014, I quickly realised that my dev was stuck spending 90% of his time dealing with libwebrtc and NOT with what he should be spending his time on, the plugin. I jumped in and created cmake code to fetch and patch the code, drive depot_tool (gn, ninja), import the unit tests and run them, along with added tests, and package the result.
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/03fcff9d-eb43-4bf8-8e88-7019e9b8a3be%40googlegroups.com.
there are a lot of approaches, some that I actually list in my slides, as I think it's polite to give credit to people, but many are reductive in nature, i.e. works only for one environment, or one target,... etc. If you re only interested in building, on android and linux, and are not testing, nor packaging, nor integrating, the repo you mentioned is sufficient.
curl -kLRO https://xxxxxxxxx.com/download/win/vs_community.exe -f --retry 5 -C -
curl -kLRO https:/xxxxxxxxxx.com/download/win/winsdksetup.exe -f --retry 5 -C -
vs_community.exe ^
--add Microsoft.VisualStudio.Workload.NativeDesktop ^
--add Microsoft.VisualStudio.Component.VC.ATLMFC ^
--includeRecommended --passive --norestart --force
winsdksetup.exe /features + /q --
del vs_community.exe
del winsdksetup.exe
if( WIN32 )
# and if msvc 2019 16.3+
add_definitions( -D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH )
endif()
#----------------------------------------------------------------------------
# Linux only: Check if libc++ is available by compiling a small program
if( UNIX AND NOT APPLE )
include( CheckCXXSourceCompiles )
check_cxx_source_compiles("
#include <iostream> // std::cout
#include <algorithm> // std::count_if
#include <vector> // std::vector
bool IsOdd (int i) { return ((i%2)==1); }
int main () {
std::vector<int> myvector;
for (int i=1; i<10; i++) myvector.push_back(i); // myvector: 1 2 3 4 5 6 7 8 9
int mycount = count_if (myvector.begin(), myvector.end(), IsOdd);
return 0;
}" LIBCXX_FOUND )
if( NOT LIBCXX_FOUND )
MESSAGE( STATUS "ERROR: libc++ not found" )
MESSAGE( FATAL_ERROR "ERROR: please install packages libc++-dev and libc++abi-dev" )
endif()
endif()
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/3bc78f79-c4f3-455f-874c-ed64f9cc02b6%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CAHgZEq4L%2BL7qk6PxEG9YfRrdGbF5%3Doko4eVub6MObR6C-TK08A%40mail.gmail.com.
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CACxSdkFb-Mn%3Ddq%2BTgdRU6ZWgUEexwx3Ctj2qJXFn3ekaOxcYWw%40mail.gmail.com.