aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 04:58:53 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-07-07 04:58:53 +0000
commitdb0636d1c5aa904d9bcd5fb523320a0641df079c (patch)
tree0edc1c7a537eb48ba86e3899d6f8041725385b65 /docs
parent15a86298981ce1e05202ce428a01831c5c676b5b (diff)
parenta842690e18d829a232afbaa225febbcfd0bb4acf (diff)
downloadwebrtc-android14-mainline-media-swcodec-release.tar.gz
Change-Id: I70c53fcf7f009a45363bf8d837e122ea8aabb4a5
Diffstat (limited to 'docs')
-rw-r--r--docs/bug-reporting.md170
-rw-r--r--docs/faq.md12
-rw-r--r--docs/native-code/android/index.md8
-rw-r--r--docs/native-code/development/contributing.md99
-rw-r--r--docs/native-code/development/index.md56
-rw-r--r--docs/native-code/development/prerequisite-sw/index.md17
-rw-r--r--docs/native-code/index.md12
-rw-r--r--docs/native-code/ios/index.md22
-rw-r--r--docs/native-code/logging.md42
-rw-r--r--docs/native-code/rtp-hdrext/index.md1
-rw-r--r--docs/native-code/rtp-hdrext/transport-wide-cc-02/README.md8
-rw-r--r--docs/native-code/rtp-hdrext/video-frame-tracking-id/README.md27
-rw-r--r--docs/native-code/rtp-hdrext/video-layers-allocation00/README.md86
-rw-r--r--docs/release-notes.md89
14 files changed, 595 insertions, 54 deletions
diff --git a/docs/bug-reporting.md b/docs/bug-reporting.md
new file mode 100644
index 0000000000..c21186a9b7
--- /dev/null
+++ b/docs/bug-reporting.md
@@ -0,0 +1,170 @@
+There are a couple bug trackers relevant to WebRTC:
+
+ * [crbug.com](https://crbug.com) -- for Chrome.
+
+ * [bugzilla.mozilla.org](https://bugzilla.mozilla.org/) -- for Firefox.
+
+ * [bugs.webkit.org](https://bugs.webkit.org/) -- for Safari.
+
+ * [developer.microsoft.com](https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/) -- for Microsoft Edge.
+
+ * [bugs.opera.com/wizard](https://bugs.opera.com/wizard/) -- for Opera.
+
+ * [bugs.webrtc.org](http://bugs.webrtc.org) -- for WebRTC native code.
+
+Anyone with a [Google account][1] can file bugs in the Chrome and WebRTC trackers and they're continuously triaged by Chrome and WebRTC engineers.
+
+
+### How to File a Good Bug Report
+
+#### Instructions
+
+* Identify which bug tracker to use:
+
+ * If you're hitting a problem in Chrome, file the bug using the
+ [the Chromium issue wizard](https://chromiumbugs.appspot.com/?token=0)
+ Choose "Web Developer" and "API", then fill out the form. For the component choose
+ * Blink>GetUserMedia for camera/microphone issues
+ * Blink>MediaRecording for issues with the MediaRecorder API
+ * Blink>WebRTC for issues with the RTCPeerConnection API
+ This ensures the right people will look at your bug.
+
+ * If you're a developer working with the native code, file the bug at
+ [this link][4].
+
+* Include as much as possible from the data points listed below.
+
+#### Example Data Points
+
+ * Version of the browser/app
+
+ * For Chrome: copy/paste from **chrome://version**
+
+ * For WebRTC native code: if applicable, include the branch (e.g. trunk)
+ and WebRTC revision (e.g. r8207) your application uses
+
+ * Operating system (Windows, Mac, Linux, Android, iOS, etc.) and version
+ (e.g. Windows 7, OS X 10.9, Ubuntu 14, etc.)
+
+ * Hardware platform/device model (e.g. PC, Mac, Samsung 4S, Nexus 7, iPhone
+ 5S, iPad Air 2 etc)
+
+ * Camera and microphone model and version (if applicable)
+
+ * For Chrome audio and video device issues, please run the tests at
+ <https://test.webrtc.org>. After the tests finish running, click the bug
+ icon at the top, download the report, and attach the report to the issue
+ tracker.
+
+ * Web site URL
+
+ * Reproduction steps: detailed information on how to reproduce the bug. If
+ applicable, please either attach or link to a minimal test page in
+ HTML+JavaScript.
+
+ * For **crashes**
+
+ * If you experience a crash while using Chrome, please include a crash ID
+ by following [these instructions][2].
+
+ * If you experience a crash while using WebRTC native code, please include
+ the full stacktrace.
+
+ * For **functional** issues or **ICE** issues, in either Chrome or a native
+ application, please gather a [native log][5].
+
+ * For **connectivity** issues on Chrome, ensure **chrome://webrtc-internals**
+ is open in another tab before starting the call and while the call is in progress,
+
+ * expand the **Create Dump** section,
+
+ * click the **Download the PeerConnection updates and stats data** button.
+ You will be prompted to save the dump to your local machine. Please
+ attach that dump to the bug report.
+
+ * For **audio quality** issues on Chrome, while the call is in progress,
+
+ * please open **chrome://webrtc-internals** in another tab,
+
+ * expand the **Create Dump** section,
+
+ * fill in the **Enable diagnostic audio recordings** checkbox. You will be
+ prompted to save the recording to your local machine. After ending the
+ call, attach the recording to the bug.
+
+ * For **echo** issues, please try to capture an audio recording from the
+ side that is _generating_ the echo, not the side that _hears_ the echo.
+ For example, if UserA and UserB are in a call, and UserA hears herself
+ speak, please obtain an audio recording from UserB.
+
+ * For **regressions**, i.e. things that worked in one version and stopped working in
+ a later versioņ, provide both versions. If you know steps to reproduce you might
+ want to try [a bisect](https://www.chromium.org/developers/bisect-builds-py) to
+ identify the commit that changed the behaviour.
+
+ * For **video problems**, e.g. artifacts or decoder failures, a rtpdump file
+ with the unencrypted RTP traffic. This can by replayed using the video_replay
+ tool from the rtc_tools directory.
+
+ * For problem with the webcam, a dump or screenshot of the "Video Capture" tab
+ in chrome://media-internals.
+
+### Filing a Security Bug
+
+The WebRTC team takes security very seriously. If you find a vulnerability in
+WebRTC, please file a [Chromium security bug][ChromeSecurity], even if the bug
+only affects native WebRTC code and not Chromium.
+
+A history of fixed Chromium security bugs is best found via [security notes in
+Stable Channel updates on the Google Chrome releases blog][ChromeSecurityBlog].
+
+You can also find fixed, publicly visible [Type=Bug-Security][ChromeBugList]
+bugs in the issue tracker (note: security bugs normally become publicly
+visible 14 weeks after they are fixed). If there is a bug in WebRTC code
+that Chromium isn’t using (such as the Java/ObjC wrappers for Android/iOS)
+we will announce fixes separately on [discuss-webrtc][DiscussWebRTC].
+
+[Tracking released security bug disclosures][WebRtcBugList].
+
+Note that we will generally NOT merge security fixes backwards to any branches,
+so if you’re using older branches it’s your responsibility to make sure the
+relevant security fixes get merged.
+
+
+### Receiving notifications about security bugs in Chrome
+
+To get automatic notifications about activity/comments in security bugs in
+Chrome you need to be either explicitly cc:d on specific bugs (by someone who
+has access to the bug) or be part of a special mailing list for all security bug
+notifications. To get on that list you have to apply to the Chrome Security
+team, see more about this on the [Chrome Security page][ChromeSecurity] under
+"How can I get access to Chromium vulnerabilities?" at the bottom of the page.
+
+Please note that Chrome's security-notify list will receive notifications about
+all security bugs in Chrome and not just the WebRTC ones. Normally it shouldn't
+be a problem to figure out whether an issue affects WebRTC since it will most
+likely be tagged with one of the WebRTC-related components (one of Blink>WebRTC,
+Blink>GetUserMedia, Blink>MediaStream, Blink>MediaRecording) or their sub-
+components.
+
+Also note that access granted by the list will only apply to bugs of Type=Bug-
+Security. Not all bugs with crashes, memory leaks and other potential
+vulnerabilities are marked as Bug-Security though. You can read more about what
+categories of bugs are deemed security bugs in the [Severity Guidelines for
+Security Issues][SeverityGuidelines] and also on the [Security FAQ][SecurityFaq]
+page.
+
+
+[1]: https://accounts.google.com/
+[2]: http://www.chromium.org/for-testers/bug-reporting-guidelines/reporting-crash-bug
+[3]: https://code.google.com/p/chromium/issues/entry?template=Audio/Video%20Issue
+[4]: https://bugs.chromium.org/p/webrtc/issues/entry
+[5]: native-code/logging.md
+[ChromeSecurity]: https://www.chromium.org/Home/chromium-security/reporting-security-bugs
+[DiscussWebRTC]: https://groups.google.com/group/discuss-webrtc
+[ChromeSecurityBlog]: https://chromereleases.googleblog.com/search/label/Stable%20updates
+[ChromeBugList]: https://bugs.chromium.org/p/chromium/issues/list?can=1&q=Type%3DBug-Security+component%3ABlink%3EWebRTC+-status%3ADuplicate%2CWontfix&sort=-closed&colspec=ID+Pri+M+Component+Status+Owner+Summary+OS+Closed&x=m&y=releaseblock&cells=ids
+[WebRtcBugList]: https://bugs.chromium.org/p/webrtc/issues/list?q=Type%3DBug-Security&can=1
+[ChromeSecurity]: https://www.chromium.org/Home/chromium-security
+[SeverityGuidelines]: https://chromium.googlesource.com/chromium/src/+/main/docs/security/severity-guidelines.md
+[SecurityFaq]: https://chromium.googlesource.com/chromium/src/+/main/docs/security/faq.md
diff --git a/docs/faq.md b/docs/faq.md
index 9f31f31ee4..439e9b3e1b 100644
--- a/docs/faq.md
+++ b/docs/faq.md
@@ -114,7 +114,7 @@ Go to [https://webrtc.googlesource.com/src][webrtc-repo-link].
We have put sample applications [here][examples-link].
-[examples-link]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md#example-applications
+[examples-link]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md#example-applications
### Are WebRTC components subject to change?
@@ -133,7 +133,7 @@ feature set.
Please see [Getting Started][getting-started-link] and
[Contributing bug fixes][contributing-link] for more information.
-[getting-started-link]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md
+[getting-started-link]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md
[contributing-link]: https://webrtc.org/support/contributing
@@ -144,6 +144,12 @@ Yes, each Contributor must sign and return the
[cla-link]: https://developers.google.com/open-source/cla/individual?hl=en
+### How can I become a WebRTC committer?
+
+The process of becoming a committer is documented in a
+[separate page][become-a-committer].
+
+[become-a-committer]: https://webrtc.googlesource.com/src/+/refs/heads/main/g3doc/become_a_committer.md
### Do I have to be a programmer to use WebRTC?
@@ -181,7 +187,7 @@ royalties for WebRTC and its components including the codecs it supports (VP8
for video and iSAC and iLBC for audio). For more information, see the [License
page][license-link].
-[license-link]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/license/index.md
+[license-link]: https://webrtc.googlesource.com/src/+/main/LICENSE
### What does this license let me do?
diff --git a/docs/native-code/android/index.md b/docs/native-code/android/index.md
index 82078210d1..e378cf9a99 100644
--- a/docs/native-code/android/index.md
+++ b/docs/native-code/android/index.md
@@ -150,9 +150,9 @@ If want to run Release builds instead; pass `is_debug=false` to GN (and
preferably generate the projects files into a directory like `out/Release`).
Then use the scripts generated in `out/Release/bin` instead.
-[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md
-[webrtc-jni-doc]: https://webrtc.googlesource.com/src/+/master/sdk/android/README
-[apprtc-doc]: https://webrtc.googlesource.com/src/+/master/examples/androidapp/README
+[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/prerequisite-sw/index.md
+[webrtc-jni-doc]: https://webrtc.googlesource.com/src/+/main/sdk/android/README
+[apprtc-doc]: https://webrtc.googlesource.com/src/+/main/examples/androidapp/README
[ninja]: https://ninja-build.org/
[prebuilt-libraries]: https://bintray.com/google/webrtc/google-webrtc
-[webrtc-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md
+[webrtc-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md
diff --git a/docs/native-code/development/contributing.md b/docs/native-code/development/contributing.md
new file mode 100644
index 0000000000..9aa7b0a4e8
--- /dev/null
+++ b/docs/native-code/development/contributing.md
@@ -0,0 +1,99 @@
+# Contributing to the WebRTC project
+
+## License Agreement
+
+WebRTC welcomes patches for features and bug fixes!
+
+For contributors external to Google, follow the instructions given in the
+[Google Individual Contributor License Agreement][Google individual CLA].
+In all cases, contributors must sign a contributor license agreement before
+a contribution can be accepted. Please complete the agreement for an
+[individual][individual] or a [corporation][corporation] as appropriate.
+
+[Google Individual CLA]: https://cla.developers.google.com/about/google-individual.
+[individual]: https://developers.google.com/open-source/cla/individual
+[corporation]: https://developers.google.com/open-source/cla/corporate
+
+
+## Instructions
+
+### Contributing your First Patch
+You must do some preparation in order to upload your first CL:
+
+* [Check out and build the code][check out and build the code]
+* Fill in the Contributor agreement (see above)
+* If you’ve never submitted code before, you must add your
+ (or your organization’s in the case the contributor agreement is signed by
+ your organization) name and contact info to the
+ [AUTHORS][AUTHORS] file
+* Go to [https://webrtc.googlesource.com/new-password](new-password)
+ and login with your email account. This should be the same account as
+ returned by `git config user.email`
+* Then, run: `git cl creds-check`. If you get any errors, ask for help on
+ [discuss-webrtc][discuss-webrtc]
+
+You will not have to repeat the above. After all that, you’re ready to upload:
+
+[Check out and the build code]: https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/development/index.md
+[AUTHORS]: https://webrtc.googlesource.com/src/+/refs/heads/main/AUTHORS
+[new-password]: https://webrtc.googlesource.com/new-password
+[discuss-webrtc]: https://groups.google.com/forum/#!forum/discuss-webrtc
+
+### Uploading your First Patch
+Now that you have your account set up, you can do the actual upload:
+
+* Do this:
+ * Assuming you're on the main branch:
+ * `git checkout -b my-work-branch`
+ * Make changes, build locally, run tests locally
+ * `git commit -am "Changed x, and it is working"`
+ * `git cl upload`
+
+ This will open a text editor showing all local commit messages, allowing you
+ to modify it before it becomes the CL description.
+
+ Fill out the bug entry properly. Please specify the issue tracker prefix and
+ the issue number, separated by a colon, e.g. `webrtc:123` or `chromium:12345`.
+ If you do not have an issue tracker prefix and an issue number just add `None`.
+
+ Save and close the file to proceed with the upload to the WebRTC
+ [code review server](https://webrtc-review.googlesource.com/q/status:open).
+
+ The command will print a link like
+ [https://webrtc-review.googlesource.com/c/src/+/53121][example CL link].
+ if everything goes well.
+
+* Click this CL Link
+* If you’re not signed in, click the Sign In button in the top right and sign
+ in with your email
+* Click Start Review and add a reviewer. You can find reviewers in OWNERS files
+ around the repository (take the one closest to your changes)
+* Address any reviewer feedback:
+ * Make changes, build locally, run tests locally
+ * `git commit -am "Fixed X and Y"`
+ * `git cl upload`
+* Once the reviewer LGTMs (approves) the patch, ask them to put it into the
+ commit queue
+
+NOTICE: On Windows, you’ll need to run the above in a Git bash shell in order
+for gclient to find the `.gitcookies` file.
+
+[example CL link]: https://webrtc-review.googlesource.com/c/src/+/53121
+
+### Trybots
+
+If you're working a lot in WebRTC, you can apply for *try rights*. This means you
+can run the *trybots*, which run all the tests on all platforms. To do this,
+file a bug using this [template][template-access] and the WebRTC EngProd team
+will review your request.
+
+To run a tryjob, upload a CL as described above and click either CQ dry run or
+Choose Trybots in the Gerrit UI. You need to have try rights for this. Otherwise,
+ask your reviewer to kick off the bots for you.
+
+If you encounter any issues with the bots (flakiness, failing unrelated to your change etc),
+please file a bug using this [template][template-issue].
+
+[template-access]: https://bugs.chromium.org/p/webrtc/issues/entry?template=Get+tryjob+access
+[template-issue]: https://bugs.chromium.org/p/webrtc/issues/entry?template=trybot+issue
+
diff --git a/docs/native-code/development/index.md b/docs/native-code/development/index.md
index 04393a9bb8..f8c65b276b 100644
--- a/docs/native-code/development/index.md
+++ b/docs/native-code/development/index.md
@@ -9,7 +9,7 @@ pages for build instructions and example applications specific to these mobile p
First, be sure to install the [prerequisite software][webrtc-prerequisite-sw].
-[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md
+[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/prerequisite-sw/index.md
## Getting the Code
@@ -44,7 +44,7 @@ $ git config branch.autosetuprebase always
```
$ cd src
-$ git checkout master
+$ git checkout main
$ git new-branch your-branch-name
```
@@ -58,11 +58,11 @@ make sure you're logged in. The quota is much larger for logged in users.
Update your current branch with:
```
-$ git checkout master
-$ git pull origin master
+$ git checkout main
+$ git pull origin main
$ gclient sync
$ git checkout my-branch
-$ git merge master
+$ git merge main
```
## Building
@@ -98,6 +98,12 @@ configuration untouched (stored in the args.gn file), do:
$ gn clean out/Default
```
+To build the fuzzers residing in the [test/fuzzers][fuzzers] directory, use
+```
+$ gn gen out/fuzzers --args='use_libfuzzer=true optimize_for_fuzzing=true'
+```
+Depending on the fuzzer additional arguments like `is_asan`, `is_msan` or `is_ubsan_security` might be required.
+
See the [GN][gn-doc] documentation for all available options. There are also more
platform specific tips on the [Android][webrtc-android-development] and
[iOS][webrtc-ios-development] instructions.
@@ -110,9 +116,19 @@ When you have Ninja project files generated (see previous section), compile
For [Ninja][ninja] project files generated in `out/Default`:
```
-$ ninja -C out/Default
+$ autoninja -C out/Default
```
+To build everything in the generated folder (`out/Default`):
+
+```
+$ autoninja all -C out/Default
+```
+
+`autoninja` is a wrapper that automatically provides optimal values for the arguments passed to `ninja`.
+
+See [Ninja build rules][ninja-build-rules] to read more about difference between `ninja` and `ninja all`.
+
## Using Another Build System
@@ -134,10 +150,10 @@ $ git branch -r
```
To create a local branch tracking a remote release branch (in this example,
-the 43 branch):
+the branch corresponding to Chrome M80):
```
-$ git checkout -b my_branch refs/remotes/branch-heads/43
+$ git checkout -b my_branch refs/remotes/branch-heads/3987
$ gclient sync
```
@@ -154,24 +170,29 @@ $ git checkout <hash>
$ cd ~/dev/webrtc/src
$ gclient sync
$ # When done, go back to depot_tools, git reset --hard, run gclient again and
-$ # verify the current branch becomes REMOTE:origin/master
+$ # verify the current branch becomes REMOTE:origin/main
```
The above is untested and unsupported, but it might help.
-Commit log for the branch: [https://webrtc.googlesource.com/src/+log/branch-heads/43][m43-log]
-To browse it: [https://webrtc.googlesource.com/src/+/branch-heads/43][m43]
+Commit log for the branch: [https://webrtc.googlesource.com/src/+log/branch-heads/3987][m80-log]
+To browse it: [https://webrtc.googlesource.com/src/+/branch-heads/3987][m80]
For more details, read Chromium's [Working with Branches][chromium-work-branches] and
[Working with Release Branches][chromium-work-release-branches] pages.
+To find the branch corresponding to a Chrome release check the
+[Chromium Dashboard][https://chromiumdash.appspot.com/branches].
## Contributing Patches
-Please see [Contributing Fixes][webrtc-contributing] for information on how to run
+Please see [Contributing Fixes][contributing] for information on how to run
`git cl upload`, getting your patch reviewed, and getting it submitted. You can also
find info on how to run trybots and applying for try rights.
+[contributing]: https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/development/contributing.md
+
+
## Chromium Committers
Many WebRTC committers are also Chromium committers. To make sure to use the
@@ -254,15 +275,16 @@ Target name `turnserver`. Used for unit tests.
[ninja]: https://ninja-build.org/
+[ninja-build-rules]: https://gn.googlesource.com/gn/+/master/docs/reference.md#the-all-and-default-rules
[gn]: https://gn.googlesource.com/gn/+/master/README.md
[gn-doc]: https://gn.googlesource.com/gn/+/master/docs/reference.md#IDE-options
-[webrtc-android-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/android/index.md
-[webrtc-ios-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/ios/index.md
+[webrtc-android-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/android/index.md
+[webrtc-ios-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/ios/index.md
[chromium-work-branches]: https://www.chromium.org/developers/how-tos/get-the-code/working-with-branches
[chromium-work-release-branches]: https://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches
-[webrtc-contributing]: https://webrtc.org/support/contributing/
[depot-tools]: http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
[rfc-5389]: https://tools.ietf.org/html/rfc5389
[rfc-5766]: https://tools.ietf.org/html/rfc5766
-[m43-log]: https://webrtc.googlesource.com/src/+log/branch-heads/43
-[m43]: https://webrtc.googlesource.com/src/+/branch-heads/43
+[m80-log]: https://webrtc.googlesource.com/src/+log/branch-heads/3987
+[m80]: https://webrtc.googlesource.com/src/+/branch-heads/3987
+[fuzzers]: https://webrtc.googlesource.com/src/+/main/test/fuzzers/
diff --git a/docs/native-code/development/prerequisite-sw/index.md b/docs/native-code/development/prerequisite-sw/index.md
index 7f49f26702..810c87943a 100644
--- a/docs/native-code/development/prerequisite-sw/index.md
+++ b/docs/native-code/development/prerequisite-sw/index.md
@@ -36,8 +36,13 @@ suppported configuration however.
## macOS
-Xcode 9 or higher is required. Latest Xcode is recommended to be able to build
-all code.
+Xcode 12 or higher is required. Latest Xcode is recommended to be able to build
+all code. You may use `xcode-select --install` to install it.
+
+Absence of Xcode will cause errors like:
+```
+xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
+```
## Android
@@ -54,7 +59,7 @@ need to install the NDK/SDK separately.
[depot-tools]: https://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html#_setting_up
[git]: http://git-scm.com
[install-build-deps]: https://cs.chromium.org/chromium/src/build/install-build-deps.sh
-[chromium-linux-build-instructions]: https://chromium.googlesource.com/chromium/src/+/master/docs/linux/build_instructions.md
-[chromium-win-build-instructions]: https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md
-[chromium-linux-prerequisites]: https://chromium.googlesource.com/chromium/src/+/master/docs/linux/build_instructions.md#notes
-[chromium-android-build-build-instructions]: https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md
+[chromium-linux-build-instructions]: https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md
+[chromium-win-build-instructions]: https://chromium.googlesource.com/chromium/src/+/main/docs/windows_build_instructions.md
+[chromium-linux-prerequisites]: https://chromium.googlesource.com/chromium/src/+/main/docs/linux/build_instructions.md#notes
+[chromium-android-build-build-instructions]: https://chromium.googlesource.com/chromium/src/+/main/docs/android_build_instructions.md
diff --git a/docs/native-code/index.md b/docs/native-code/index.md
index f91bbb7360..928af6e52e 100644
--- a/docs/native-code/index.md
+++ b/docs/native-code/index.md
@@ -20,7 +20,7 @@ Please read the [License & Rights][webrtc-license] and [FAQ][webrtc-faq]
before downloading the source code.
[webrtc-license]: https://webrtc.org/support/license
-[webrtc-faq]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/faq.md
+[webrtc-faq]: https://webrtc.googlesource.com/src/+/main/docs/faq.md
The WebRTC [issue tracker][webrtc-issue-tracker] can be used for submitting
bugs found in native code.
@@ -35,8 +35,8 @@ bugs found in native code.
* [iOS][webrtc-ios-development]
* [Experimental RTP header extensions][rtp-hdrext]
-[webrtc-prerequitite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md
-[webrtc-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md
-[webtc-android-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/android/index.md
-[webrtc-ios-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/ios/index.md
-[rtp-hdrext]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/rtp-hdrext/index.md
+[webrtc-prerequitite-sw]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/prerequisite-sw/index.md
+[webrtc-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md
+[webtc-android-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/android/index.md
+[webrtc-ios-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/ios/index.md
+[rtp-hdrext]: https://webrtc.googlesource.com/src/+/main/docs/native-code/rtp-hdrext/index.md
diff --git a/docs/native-code/ios/index.md b/docs/native-code/ios/index.md
index 6c9d2de0e8..307379f17f 100644
--- a/docs/native-code/ios/index.md
+++ b/docs/native-code/ios/index.md
@@ -2,9 +2,8 @@
## Development Environment
-In case you need to build the framework manually
-(for instance if you need to support bitcode) or you want to try out the demo application
-AppRTCMobile, follow the instructions illustrated bellow.
+In case you need to build the framework manually or you want to try out the
+demo application AppRTCMobile, follow the instructions illustrated bellow.
A macOS machine is required for iOS development. While it's possible to
develop purely from the command line with text editors, it's easiest to use
@@ -102,14 +101,14 @@ Xcode is the default and preferred IDE to develop for the iOS platform.
*Generating an Xcode project*
To have GN generate Xcode project files, pass the argument `--ide=xcode`
-when running `gn gen`. This will result in a file named `all.xcworkspace`
+when running `gn gen`. This will result in a file named `all.xcodeproj`
placed in your specified output directory.
Example:
```
$ gn gen out/ios --args='target_os="ios" target_cpu="arm64"' --ide=xcode
-$ open -a Xcode.app out/ios/all.xcworkspace
+$ open -a Xcode.app out/ios/all.xcodeproj
```
*Compile and run with Xcode*
@@ -170,11 +169,6 @@ If you need a FAT `.framework`, that is, a binary that contains code for
multiple architectures, and will work both on device and in the simulator,
a script is available [here][framework-script]
-To build the framework with bitcode support, pass the `--bitcode` flag to the script like so
-
-```
-$ python build_ios_libs.py --bitcode
-```
The resulting framework can be found in out_ios_libs/.
Please note that you can not ship the FAT framework binary with your app
@@ -185,10 +179,10 @@ For instructions on how to do this see [here][strip-arch].
[cocoapods]: https://cocoapods.org/pods/GoogleWebRTC
-[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/prerequisite-sw/index.md
-[webrtc-development]: https://webrtc.googlesource.com/src/+/refs/heads/master/docs/native-code/development/index.md
-[framework-script]: https://chromium.googlesource.com/external/webrtc/+/master/tools_webrtc/ios/build_ios_libs.py
+[webrtc-prerequisite-sw]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/prerequisite-sw/index.md
+[webrtc-development]: https://webrtc.googlesource.com/src/+/main/docs/native-code/development/index.md
+[framework-script]: https://webrtc.googlesource.com/src/+/main/tools_webrtc/ios/build_ios_libs.py
[ninja]: https://ninja-build.org/
-[gn]: https://gn.googlesource.com/gn/+/master/README.md
+[gn]: https://gn.googlesource.com/gn/+/main/README.md
[ios-deploy]: https://github.com/phonegap/ios-deploy
[strip-arch]: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/
diff --git a/docs/native-code/logging.md b/docs/native-code/logging.md
new file mode 100644
index 0000000000..1daadbe2b5
--- /dev/null
+++ b/docs/native-code/logging.md
@@ -0,0 +1,42 @@
+Native logs are often valuable in order to debug issues that can't be easily
+reproduced. Following are instructions for gathering logs on various platforms.
+
+To enable native logs for a native application, you can either:
+
+ * Use a debug build of WebRTC (a build where `NDEBUG` is not defined),
+ which will enable `INFO` logging by default.
+
+ * Call `rtc::LogMessage::LogToDebug(rtc::LS_INFO)` within your application.
+ Or use `LS_VERBOSE` to enable `VERBOSE` logging.
+
+For the location of the log output on different platforms, see below.
+
+#### Android
+
+Logged to Android system log. Can be obtained using:
+
+~~~~ bash
+adb logcat -s "libjingle"
+~~~~
+
+To enable the logging in a non-debug build from Java code, use
+`Logging.enableLogToDebugOutput(Logging.Severity.LS_INFO)`.
+
+#### iOS
+
+Only logged to `stderr` by default. To log to a file, use `RTCFileLogger`.
+
+#### Mac
+
+For debug builds of WebRTC (builds where `NDEBUG` is not defined), logs to
+`stderr`. To do this for release builds as well, set a boolean preference named
+'logToStderr' to `true` for your application. Or, use `RTCFileLogger` to log to
+a file.
+
+#### Windows
+
+Logs to the debugger and `stderr`.
+
+#### Linux/Other Platforms
+
+Logs to `stderr`.
diff --git a/docs/native-code/rtp-hdrext/index.md b/docs/native-code/rtp-hdrext/index.md
index c0c0b75aba..081a727c59 100644
--- a/docs/native-code/rtp-hdrext/index.md
+++ b/docs/native-code/rtp-hdrext/index.md
@@ -10,3 +10,4 @@ The following subpages define experiemental RTP header extensions:
* [video-content-type](video-content-type/README.md)
* [video-timing](video-timing/README.md)
* [inband-cn](inband-cn/README.md)
+ * [video-layers-allocation00](video-layes-allocation00/README.md)
diff --git a/docs/native-code/rtp-hdrext/transport-wide-cc-02/README.md b/docs/native-code/rtp-hdrext/transport-wide-cc-02/README.md
index 20b1d51dd2..8dc82612c7 100644
--- a/docs/native-code/rtp-hdrext/transport-wide-cc-02/README.md
+++ b/docs/native-code/rtp-hdrext/transport-wide-cc-02/README.md
@@ -29,19 +29,19 @@ Contact <kron@google.com> or <sprang@google.com> for more info.
Data layout of transport-wide sequence number
1-byte header + 2 bytes of data:
- 0              1 2
+ 0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ID   | L=1 |transport-wide sequence number |
+ | ID | L=1 |transport-wide sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Data layout of transport-wide sequence number and optional feedback request
1-byte header + 4 bytes of data:
- 0              1 2                   3
+ 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ID   | L=3 |transport-wide sequence number |T|  seq count |
+ | ID | L=3 |transport-wide sequence number |T| seq count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|seq count cont.|
+-+-+-+-+-+-+-+-+
diff --git a/docs/native-code/rtp-hdrext/video-frame-tracking-id/README.md b/docs/native-code/rtp-hdrext/video-frame-tracking-id/README.md
new file mode 100644
index 0000000000..d1c609744e
--- /dev/null
+++ b/docs/native-code/rtp-hdrext/video-frame-tracking-id/README.md
@@ -0,0 +1,27 @@
+# Video Frame Tracking Id
+
+The Video Frame Tracking Id extension is meant for media quality testing
+purpose and shouldn't be used in production. It tracks webrtc::VideoFrame id
+field from the sender to the receiver to gather referenced base media quality
+metrics such as PSNR or SSIM.
+Contact <jleconte@google.com> for more info.
+
+**Name:** "Video Frame Tracking Id"
+
+**Formal name:**
+<http://www.webrtc.org/experiments/rtp-hdrext/video-frame-tracking-id>
+
+**Status:** This extension is defined to allow for media quality testing. It is
+enabled by using a field trial and should only be used in a testing environment.
+
+### Data layout overview
+ 1-byte header + 2 bytes of data:
+
+ 0              1 2
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ID   | L=1 | video-frame-tracking-id |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+Notes: The extension shoud be present only in the first packet of each frame.
+If attached to other packets it can be ignored. \ No newline at end of file
diff --git a/docs/native-code/rtp-hdrext/video-layers-allocation00/README.md b/docs/native-code/rtp-hdrext/video-layers-allocation00/README.md
new file mode 100644
index 0000000000..c4454d8ee1
--- /dev/null
+++ b/docs/native-code/rtp-hdrext/video-layers-allocation00/README.md
@@ -0,0 +1,86 @@
+# Video Layers Allocation
+
+The goal of this extension is for a video sender to provide information about
+the target bitrate, resolution and frame rate of each scalability layer in order
+to aid a selective forwarding middlebox to decide which layer to relay.
+
+**Name:** "Video layers allocation version 0"
+
+**Formal name:**
+<http://www.webrtc.org/experiments/rtp-hdrext/video-layers-allocation00>
+
+**Status:** This extension is defined here to allow for experimentation.
+
+In a conference scenario, a video from a single sender may be received by
+several recipients with different downlink bandwidth constraints and UI
+requirements. To allow this, a sender can send video with several scalability
+layers and a middle box can choose a layer to relay for each receiver.
+
+This extension support temporal layers, multiple spatial layers sent on a single
+rtp stream (SVC), or independent spatial layers sent on multiple rtp streams
+(simulcast).
+
+## RTP header extension format
+
+### Data layout
+
+```
+// +-+-+-+-+-+-+-+-+
+// |RID| NS| sl_bm |
+// +-+-+-+-+-+-+-+-+
+// Spatial layer bitmask |sl0_bm |sl1_bm |
+// up to 2 bytes |---------------|
+// when sl_bm == 0 |sl2_bm |sl3_bm |
+// +-+-+-+-+-+-+-+-+
+// Number of temporal layers |#tl|#tl|#tl|#tl|
+// per spatial layer | | | | |
+// +-+-+-+-+-+-+-+-+
+// Target bitrate in kpbs | |
+// per temporal layer : ... :
+// leb128 encoded | |
+// +-+-+-+-+-+-+-+-+
+// Resolution and framerate | |
+// 5 bytes per spatial layer + width-1 for +
+// (optional) | rid=0, sid=0 |
+// +---------------+
+// | |
+// + height-1 for +
+// | rid=0, sid=0 |
+// +---------------+
+// | max framerate |
+// +-+-+-+-+-+-+-+-+
+// : ... :
+// +-+-+-+-+-+-+-+-+
+```
+
+RID: RTP stream index this allocation is sent on, numbered from 0. 2 bits.
+
+NS: Number of RTP streams minus one. 2 bits, thus allowing up-to 4 RTP streams.
+
+sl_bm: BitMask of the active Spatial Layers when same for all RTP streams or 0
+otherwise. 4 bits, thus allows up to 4 spatial layers per RTP streams.
+
+slX_bm: BitMask of the active Spatial Layers for RTP stream with index=X.
+When NS < 2, takes one byte, otherwise uses two bytes. Zero-padded to byte
+alignment.
+
+\#tl: 2-bit value of number of temporal layers-1, thus allowing up-to 4 temporal
+layers. Values are stored in ascending order of spatial id. Zero-padded to byte
+alignment.
+
+Target bitrate in kbps. Values are stored using leb128 encoding [1]. One value per
+temporal layer. Values are stored in (RTP stream id, spatial id, temporal id)
+ascending order. All bitrates are total required bitrate to receive the
+corresponding layer, i.e. in simulcast mode they include only corresponding
+spatial layers, in full-svc all lower spatial layers are included. All lower
+temporal layers are also included.
+
+Resolution and framerate. Optional. Presence is inferred from the rtp header
+extension size. Encoded (width - 1), 16-bit, (height - 1), 16-bit, max frame
+rate 8-bit per spatial layer per RTP stream. Values are stored in (RTP stream
+id, spatial id) ascending order.
+
+An empty layer allocation (i.e nothing sent on ssrc) is encoded as
+special case with a single 0 byte.
+
+[1] https://aomediacodec.github.io/av1-spec/#leb128
diff --git a/docs/release-notes.md b/docs/release-notes.md
new file mode 100644
index 0000000000..f8201927b3
--- /dev/null
+++ b/docs/release-notes.md
@@ -0,0 +1,89 @@
+# Release notes
+This document contains pointers to the WebRTC release notes for each Chrome release. The
+release notes are posted to the [discuss-webrtc](https://groups.google.com/group/discuss-webrtc)
+mailing list before the release.
+
+## Current release
+To find out the current release and schedule, refer to the
+[chromium dashboard](https://chromiumdash.appspot.com/schedule).
+
+To find a branch associated with a particular release, refer to
+[the list of branches](https://chromiumdash.appspot.com/branches).
+
+## List of releases
+ * [M105 Release Notes](https://groups.google.com/g/discuss-webrtc/c/5KBtZx2gvcQ/m/HYKhV8ERDgAJ)
+ * [M104 Release Notes](https://groups.google.com/g/discuss-webrtc/c/Yf6c3HW4N3k/m/3SC_Hy15BQAJ)
+ * NOTE: The release notes for M100 to M103 were not sent out.
+ * [M99 Release Notes](https://groups.google.com/g/discuss-webrtc/c/Yf6c3HW4N3k/m/3SC_Hy15BQAJ)
+ * [M98 Release Notes](https://groups.google.com/g/discuss-webrtc/c/uQKmoaL93kE/m/a5NyC3gnBwAJ)
+ * [M97 Release Notes](https://groups.google.com/g/discuss-webrtc/c/-M808zqlSRE/m/vMZ1q1N9AgAJ)
+ * [M96 Release Notes](https://groups.google.com/g/discuss-webrtc/c/Bp8OzBzipSc/m/0AC4OGhdAgAJ)
+ * [M95 Release Notes](https://groups.google.com/g/discuss-webrtc/c/SfzpFc-dH-E/m/JHlMpLO1AAAJ)
+ * [M94 Release Notes](https://groups.google.com/g/discuss-webrtc/c/tFyWdqW2sQM/m/ebfZvC9VAgAJ)
+ * [M93 Release Notes](https://groups.google.com/g/discuss-webrtc/c/ws0_MYHIBOw/m/HZGn07uIAwAJ)
+ * [M92 Release Notes](https://groups.google.com/g/discuss-webrtc/c/hks5zneZJbo/m/Z-p4AfCrCQAJ)
+ * [M91 Release Notes](https://groups.google.com/g/discuss-webrtc/c/ScUMkkGA9tw/m/twkshm1pAgAJ)
+ * [M90 Release Notes](https://groups.google.com/g/discuss-webrtc/c/8VgEFxD_S80/m/L6ZuorxTAAAJ)
+ * [M89 Release Notes](https://groups.google.com/g/discuss-webrtc/c/Zrsn2hi8FV0/m/KIbn0EZPBQAJ)
+ * [M88 Release Notes](https://groups.google.com/g/discuss-webrtc/c/A0FjOcTW2c0/m/UAv-veyPCAAJ)
+ * [M87 Release Notes](https://groups.google.com/g/discuss-webrtc/c/6VmKkCjRK0k/m/YyOTQyQ5AAAJ)
+ * [M86 Release Notes](https://groups.google.com/g/discuss-webrtc/c/pKCOpi9Llyc/m/QhZjyE02BgAJ)
+ * [M85 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/Qq3nsR2w2HU/7WGLPscPBwAJ)
+ * [M84 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/MRAV4jgHYV0/5019yB-HAwAJ)
+ * [M83 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/EieMDYtQ9sg/7po9fl8_AgAJ)
+ * NOTE: M82 release was cancelled due to cancellation of Chrome 82 release.
+ * [M81 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/a5_zncyPc3Y/iirhUr6bCwAJ)
+ * [M80 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/Ozvbd0p7Q1Y/M4WN2cRKCwAJ)
+ * [M79 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/X8q5Ae9VKco/oEiGuteoBAAJ)
+ * [M78 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/qbX55tFk1o4/KgFA-ZksCwAJ)
+ * [M77 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/b1tdwrXKuHI/OH7oSL7OBwAJ)
+ * [M76 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/Y7TIuNbgP8M/UoXP-RuxAwAJ)
+ * [M75 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/_jlUbYjv-hQ/mCtjlVyjAgAJ)
+ * [M74 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/cXEtXIIYrQs/R7y0yIK2AQAJ)
+ * [M73 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/l0gc3RjBhc0/FsMqOlOSBwAJ)
+ * [M72 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/3h4y0fimHwg/j6G4dTVvCAAJ)
+ * [M71 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/HUpIxlDlkSE/qR1nswqZCwAJ)
+ * [M70 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/6ImvPjWQvbE/AlCtGQnYBQAJ)
+ * [M69 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/i1Td6qhfKlQ/ryXly46JCwAJ)
+ * [M68 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/nDdDqIBtFBM/bf_0eknmAwAJ)
+ * [M67 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/8D5O5NAVzes/QxeMGr0rAwAJ)
+ * [M66 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/kG4DJSfP2ck/YlI0xyeLAgAJ)
+ * [M65 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/QJHpBnGQPKk/oKR0pSD-CgAJ)
+ * [M64 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/fIWg5n67xHo/QIhRnv6vBgAJ)
+ * [M63 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/qDtSDxoNSII/69b6fAkxAQAJ)
+ * [M62 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/DFRDTFJmO5g/Sz5zOz-KFQAJ)
+ * [M61 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/8gJyg8EFPdo/OxUdyMjXBwAJ)
+ * [M60 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/iw3c5xYXOUw/WF5QxRReBgAJ)
+ * [M59 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/ogPObezLpHw/hwVgcW57BgAJ)
+ * [M58 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/13BE3fbHcLU/bQJWNBihBgAJ)
+ * [M57 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/xXjeKbW_JYI/LIXzVrKWCwAJ)
+ * [M56 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/DyeVS9IMTLc/1gUM7osoCwAJ)
+ * [M55 Release Notes](https://groups.google.com/d/msg/discuss-webrtc/BqqFMSR6s1E/rlPYFD0NCQAJ)
+ * [M54 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/S5yex8rNIjA/discussion)
+ * [M53 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/ism_KD14rzc/discussion)
+ * [M52 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/bDfxOA8XiJI/discussion)
+ * [M51 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/GdsmhrVaxdU/discussion)
+ * [M50 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/JuXLl5BJoJE/discussion)
+ * [M49 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/mcApW-3YADI/discussion)
+ * [M48 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/_5hL0HeBeEA/discussion)
+ * [M47 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/sq5CVmY69sc/discussion)
+ * [M46 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/uMWoBvCceSg/discussion)
+ * [M45 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/RZDCCUga1zc/discussion)
+ * [M44 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/mrLyXc6Y464/discussion)
+ * [M43 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/KiKykbMGW9w/discussion)
+ * [M42 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/PwuzgUypYos/discussion)
+ * [M41 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/aGsdjGtjIQA/discussion)
+ * [M40 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/vGW4O3QOyLM/discussion)
+ * [M39 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/Cv4g9jllrSE/discussion)
+ * [M38 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/ANnsPbI0PWg/discussion)
+ * [M37 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/Qt99-FXzKkU/discussion)
+ * [M36 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/JlU2ItCJuZU/discussion)
+ * [M35 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/8Um1WESQ97g/discussion)
+ * [M34 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/Feg4ajTp2Gg/discussion)
+ * [M33 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/lAn7IvSIQ_g/discussion)
+ * [M32 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/AefA5Pg_xIU/discussion)
+ * [M31 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/0dReVX4BX3c/discussion)
+ * [M30 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/_zdJBwP4vNU/discussion)
+ * [M29 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/DytR3rKvmw4/discussion)
+ * [M28 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/CLa_9sYY6ek/discussion)
+ * [M27 Release Notes](https://groups.google.com/d/topic/discuss-webrtc/NDwzHExp9zM/discussion)