Skip to content

Commit 46226b5

Browse files
cloudwebrtchiroshihoriedavidzhaodavidliugraszka22
authored
Update to m125. (#119)
Use M125 as the latest version and migrate historical patches to m125 Patches Group: ## 1. Update README.md b6c65fc * Add Apache-2.0 license and some note to README.md. (#9) * Updated readme detailing changes from original (#42) * Adding membrane framework (#51) * Updated readme (#83) ## 2. Audio Device Optimization 7454824 * allow listen-only mode in AudioUnit, adjust when category changes (#2) * release mic when category changes (#5) * Change defaults to iOS defaults (#7) * Sync audio session config (#8) * feat: support bypass voice processing for iOS. (#15) * Remove MacBookPro audio pan right code (#22) * fix: Fix can't open mic alone when built-in AEC is enabled. (#29) * feat: add audio device changes detect for windows. (#41) * fix Linux compile (#47) * AudioUnit: Don't rely on category switch for mic indicator to turn off (#52) * Stop recording on mute (turn off mic indicator) (#55) * Cherry pick audio selection from m97 release (#35) * [Mac] Allow audio device selection (#21) * RTCAudioDeviceModule.outputDevice / inputDevice getter and setter (#80) * Allow custom audio processing by exposing AudioProcessingModule (#85) * Expose audio sample buffers for Android (#89) * feat: add external audio processor for android. (#103) * android: make audio output attributes modifiable (#118) * Fix external audio processor sample rate calculation (#108) * Expose remote audio sample buffers on RTCAudioTrack (#84) * Fix memory leak when creating audio CMSampleBuffer #86 ## 3. Simulcast/SVC support for iOS/Android. b0b9fe9 - Simulcast support for iOS SDK (#4) - Support for simulcast in Android SDK (#3) - include simulcast headers for mac also (#10) - Fix simulcast using hardware encoder on Android (#48) - Add scalabilityMode support for AV1/VP9. (#90) ## 4. Android improvements. 9aaaab5 - Start/Stop receiving stream method for VideoTrack (#25) - Properly remove observer upon deconstruction (#26) - feat: Expose setCodecPreferences/getCapabilities for android. (#61) - fix: add WrappedVideoDecoderFactory.java. (#74) ## 5. Darwin improvements a13ea17 - [Mac/iOS] feat: Add RTCYUVHelper for darwin. (#28) - Cross-platform `RTCMTLVideoView` for both iOS / macOS (#40) - rotationOverride should not be assign (#44) - [ObjC] Expose properties / methods required for AV1 codec support (#60) - Workaround: Render PixelBuffer in RTCMTLVideoView (#58) - Improve iOS/macOS H264 encoder (#70) - fix: fix video encoder not resuming correctly upon foregrounding (#75). - add PrivacyInfo.xcprivacy to darwin frameworks. (#112) - Add NSPrivacyCollectedDataTypes key to xcprivacy file (#114) - Thread-safe `RTCInitFieldTrialDictionary` (#116) - Set RTCCameraVideoCapturer initial zoom factor (#121) - Unlock configuration before starting capture session (#122) ## 6. Desktop Capture for macOS. 841d78f - [Mac] feat: Support screen capture for macOS. (#24) (#36) - fix: Get thumbnails asynchronously. (#37) - fix: Use CVPixelBuffer to build DesktopCapture Frame, fix the crash caused by non-CVPixelBuffer frame in RTCVideoEncoderH264 that cannot be cropped. (#63) - Fix the crash when setting the fps of the virtual camera. (#62) ## 7. Frame Cryptor Support. fc08745 - feat: Frame Cryptor (aes gcm/cbc). (#54) - feat: key ratchet/derive. (#66) - fix: skip invalid key when decryption failed. (#81) - Improve e2ee, add setSharedKey to KeyProvider. (#88) - add failure tolerance for framecryptor. (#91) - fix h264 freeze. (#93) - Fix/send frame cryptor events from signaling thread (#95) - more improvements for E2EE. (#96) - remove too verbose logs (#107) - Add key ring size to keyProviderOptions. (#109) ## 8. Other improvements. eed6c8a - Added yuv_helper (#57) - ABGRToI420, ARGBToI420 & ARGBToRGB24 (#65) - more yuv wrappers (#87) - Fix naming for yuv helper (#113) - Fix missing `RTC_OBJC_TYPE` macros (#100) --------- Co-authored-by: Hiroshi Horie <[email protected]> Co-authored-by: David Zhao <[email protected]> Co-authored-by: davidliu <[email protected]> Co-authored-by: Angelika Serwa <[email protected]> Co-authored-by: Théo Monnom <[email protected]>
1 parent 8505a98 commit 46226b5

File tree

230 files changed

+9350
-684
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

230 files changed

+9350
-684
lines changed

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,9 @@
7272
/xcodebuild
7373
/.vscode
7474
!webrtc/*
75+
/tmp.patch
76+
/out-release
77+
/out-debug
78+
/node_modules
79+
/libwebrtc
80+
/args.txt

NOTICE

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
###################################################################################
2+
3+
The following modifications follow Apache License 2.0 from shiguredo.
4+
5+
https://github.com/webrtc-sdk/webrtc/commit/dfec53e93a0a1cb93f444caf50f844ec0068c7b7
6+
https://github.com/webrtc-sdk/webrtc/commit/403b4678543c5d4ac77bd1ea5753c02637b3bb89
7+
https://github.com/webrtc-sdk/webrtc/commit/77d5d685a90fb4bded17835ae72ec6671b26d696
8+
9+
Apache License 2.0
10+
11+
Copyright 2019-2021, Wandbox LLC (Original Author)
12+
Copyright 2019-2021, Shiguredo Inc.
13+
14+
Licensed under the Apache License, Version 2.0 (the "License");
15+
you may not use this file except in compliance with the License.
16+
You may obtain a copy of the License at
17+
18+
http://www.apache.org/licenses/LICENSE-2.0
19+
20+
Unless required by applicable law or agreed to in writing, software
21+
distributed under the License is distributed on an "AS IS" BASIS,
22+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23+
See the License for the specific language governing permissions and
24+
limitations under the License.
25+
26+
#####################################################################################

README.md

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,47 @@
1-
**WebRTC is a free, open software project** that provides browsers and mobile
2-
applications with Real-Time Communications (RTC) capabilities via simple APIs.
3-
The WebRTC components have been optimized to best serve this purpose.
1+
# WebRTC-SDK
42

5-
**Our mission:** To enable rich, high-quality RTC applications to be
6-
developed for the browser, mobile platforms, and IoT devices, and allow them
7-
all to communicate via a common set of protocols.
3+
This repository contains a fork of WebRTC from Google with various improvements.
84

9-
The WebRTC initiative is a project supported by Google, Mozilla and Opera,
10-
amongst others.
5+
## Main changes
116

12-
### Development
7+
### All
138

14-
See [here][native-dev] for instructions on how to get started
15-
developing with the native code.
9+
- Dynamically acquire decoder to mitigate decoder limitations [#25](https://github.com/webrtc-sdk/webrtc/pull/25)
10+
- Support for video simulcast with hardware & software encoders [patch](https://github.com/webrtc-sdk/webrtc/commit/ee030264e2274a2c90548a99b448782049e48fb4)
11+
- Frame cryptor support (for end-to-end encryption) [patch](https://github.com/webrtc-sdk/webrtc/commit/3a2c008529a15fecde5f979a6ebb75c05463d45e)
1612

17-
[Authoritative list](native-api.md) of directories that contain the
18-
native API header files.
13+
### Android
1914

20-
### More info
15+
- WrappedVideoDecoderFactory [#74](https://github.com/webrtc-sdk/webrtc/pull/74)
2116

22-
* Official web site: http://www.webrtc.org
23-
* Master source code repo: https://webrtc.googlesource.com/src
24-
* Samples and reference apps: https://github.com/webrtc
25-
* Mailing list: http://groups.google.com/group/discuss-webrtc
26-
* Continuous build: https://ci.chromium.org/p/webrtc/g/ci/console
27-
* [Coding style guide](g3doc/style-guide.md)
28-
* [Code of conduct](CODE_OF_CONDUCT.md)
29-
* [Reporting bugs](docs/bug-reporting.md)
30-
* [Documentation](g3doc/sitemap.md)
17+
### iOS / Mac
3118

32-
[native-dev]: https://webrtc.googlesource.com/src/+/main/docs/native-code/
19+
- Sane audio handling [patch](https://github.com/webrtc-sdk/webrtc/commit/272127d457ab48e36241e82549870405864851f6)
20+
- Do not acquire microphone/permissions unless actively publishing audio
21+
- Abililty to bypass voice processing on iOS
22+
- Remove hardcoded limitation of outputting only to right speaker on MacBook Pro
23+
- Desktop capture for Mac [patch](https://github.com/webrtc-sdk/webrtc/commit/8e832d1163644ab504412c9b8f3ba8510d9890d6)
24+
25+
### Windows
26+
27+
- Fixed unable to acquire Mic when built-in AEC is enabled [#29](https://github.com/webrtc-sdk/webrtc/pull/29)
28+
29+
## LICENSE
30+
31+
- [Google WebRTC](https://chromium.googlesource.com/external/webrtc.git), is licensed under [BSD license](/LICENSE).
32+
33+
- Contains patches from [shiguredo-webrtc-build](https://github.com/shiguredo-webrtc-build), licensed under [Apache 2.0](/NOTICE).
34+
35+
- Contains changes from LiveKit, licensed under Apache 2.0.
36+
37+
## Who is using this project
38+
39+
- [flutter-webrtc](https://github.com/flutter-webrtc/flutter-webrtc)
40+
41+
- [LiveKit](https://github.com/livekit)
42+
43+
- [Membrane Framework](https://github.com/membraneframework/membrane_rtc_engine)
44+
45+
- [Louper](https://louper.io)
46+
47+
Are you using WebRTC SDK in your framework or app? Feel free to open a PR and add yourself!

api/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ rtc_library("libjingle_peerconnection_api") {
368368
"video:encoded_image",
369369
"video:video_bitrate_allocator_factory",
370370
"video:video_frame",
371+
"video:yuv_helper",
371372
"video:video_rtp_headers",
372373
"video_codecs:video_codecs_api",
373374

api/crypto/BUILD.gn

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,24 @@ group("crypto") {
1616
]
1717
}
1818

19+
rtc_library("frame_crypto_transformer") {
20+
visibility = [ "*" ]
21+
sources = [
22+
"frame_crypto_transformer.cc",
23+
"frame_crypto_transformer.h",
24+
]
25+
26+
deps = [
27+
"//api:frame_transformer_interface",
28+
]
29+
30+
if (rtc_build_ssl) {
31+
deps += [ "//third_party/boringssl" ]
32+
} else {
33+
configs += [ ":external_ssl_library" ]
34+
}
35+
}
36+
1937
rtc_library("options") {
2038
visibility = [ "*" ]
2139
sources = [

0 commit comments

Comments
 (0)