forked from atyenoria/react-native-webrtc
-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Graphy 1 #12
Open
amit-unacademy
wants to merge
193
commits into
webrtc_crash_fix
Choose a base branch
from
graphy_1
base: webrtc_crash_fix
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Graphy 1 #12
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10dbc08 tools: fix release script mode ( Saúl Ibarra Corretgé 2019-06-18 10:03:32 +0200) 223b3f6 android: expose the WebRTC API ( Saúl Ibarra Corretgé 2019-06-12 12:03:26 +0200) 3ea1487 ios, android: add camera position in facing property ( Carlos Q 2019-06-11 14:52:17 +0200) 166b50e api: add optional toJSON for candidate ( Elliott McNary 2019-05-14 10:24:47 -0700) 4064c6f ios: fix Metal related crashes ( Saúl Ibarra Corretgé 2019-05-03 15:50:35 +0200) 5e3e466 tools: add ability to build WebRTC with bitcode ( Saúl Ibarra Corretgé 2019-05-03 15:31:56 +0200) d798310 tools: add script to download bitcode builds ( Saúl Ibarra Corretgé 2019-05-03 15:22:10 +0200) 97bae7c fix typo in README.md ( Denis Andrejew 2019-04-21 10:04:09 +0200) 5c6c513 misc: fix references to old repository location ( Jon Ruddell 2019-04-09 00:41:20 -0700) 27a8cd9 Update README.md ( Wan Huang Yang 2019-04-08 14:03:58 +0800) 9e7fd0b tools: make Android builds with 64bit architectures too ( Saúl Ibarra Corretgé 2019-04-02 12:06:47 +0200) e3b7451 doc: update README ( Saúl Ibarra Corretgé 2019-04-02 12:03:29 +0200) a500a4a release 1.69.1 ( Saúl Ibarra Corretgé 2019-04-02 11:56:21 +0200) e4fdf2d doc: specify which files to delete for App Store ( Alexey Tcherevatov 2019-03-28 17:24:31 +0300) 88f9b2f fix typo in README.md ( Denis Andrejew 2019-04-21 10:04:09 +0200) 659d2fe ios: fix streams leaking on didRemoveStream ( paweldomas 2019-04-17 14:54:15 -0500) f601eb4 misc: fix references to old repository location ( Jon Ruddell 2019-04-09 00:41:20 -0700) e00cdad Update README.md ( Wan Huang Yang 2019-04-08 14:03:58 +0800) f893dcb tools: make Android builds with 64bit architectures too ( Saúl Ibarra Corretgé 2019-04-02 12:06:47 +0200) a967b31 doc: update README ( Saúl Ibarra Corretgé 2019-04-02 12:03:29 +0200) 032ee5c android: add support for 64bit builds ( Saúl Ibarra Corretgé 2019-03-15 13:58:34 +0100)
Sync upstream
Upstream WebRTC has done so: https://groups.google.com/d/msg/discuss-webrtc/7lolKGfoqTo/skxfkXymAgAJ
Co-authored-by: Martin Dørum <[email protected]>
Co-authored-by: Martin Dørum <[email protected]>
Sync upstream
Specificly, allow applications to initialize their own video encoder / decoder and audio device manager.
WebRTC will dispose the audio streams on its own, but we still hold references to it. After jitsi/webrtc@ee05e90 it's not safe to call anything on a disposed stream so iterate the streams video tracks to avoid calling anything on a disposed track. Moving forward, we should only keep track of video tracks, since those are the only ones we care about from the plugin's perspective.
android add ability to customize PeerConnectionFactory initialization
android: fix switchCamera with more than 2 cameras
The back camera's facing mode is "environment" as per the spec: https://www.w3.org/TR/mediacapture-streams/#def-constraint-facingMode
Legacy constraints are still supported. This unlocks changing the capture resolution and framerate. In addition, proper createOffer / createAnswer options are implemented: exposed as options in JS, but translated to constraints-style in native since that's what the Java and Objective-C APIs have to offer.
Modern constraints
The implementation tries to be as faithful to the standard as possible, however an extra function call is still required for cleanup: MediaStream.release(). Now that a track can outlive the stream that originated it, there is also MediaStreamTrack.release(). Generally it's not needed to call it unless you have already released the stream and want to dispose of the track alone. Add / remove track operations on streams are only supported for local tracks (ie, those gotten via getUserMedia). Note: calling release() on a track still attached to a stream is considered undefined behavior and may lead to crashes.
api: add support for the MediaStream constructor
6c77279 core: update JS local/remote descriptions to match internal state ( Saúl Ibarra Corretgé 2021-05-19 14:00:39 +0200) 1fbe7e1 core: refactor datachannel creation ( Saúl Ibarra Corretgé 2021-05-18 17:30:48 +0200) 3a3559e examples: skip flipper ( Saúl Ibarra Corretgé 2021-05-18 17:34:50 +0200) 82b1a5e misc: remove stray file ( Saúl Ibarra Corretgé 2021-05-18 10:31:22 +0200) 085a035 android: allow to retrieve stream from outside ( Emmanuel Quentin 2021-05-09 02:20:20 -0400) e366912 tools: fix downloadBitcode.sh ( Aditya Santoso 2021-05-09 13:51:11 +0800) d1bb405 build(deps): bump hosted-git-info in /examples/GumTestApp_macOS ( dependabot[bot] 2021-05-08 09:48:00 +0000) 265339e build(deps): bump hosted-git-info in /examples/GumTestApp ( dependabot[bot] 2021-05-08 09:48:11 +0000) e21569b build(deps): bump lodash from 4.17.20 to 4.17.21 in /examples/GumTestApp ( dependabot[bot] 2021-05-08 09:48:16 +0000) a7d2737 build(deps): bump lodash in /examples/GumTestApp_macOS ( dependabot[bot] 2021-05-08 09:49:31 +0000) e35a617 build(deps): bump ua-parser-js in /examples/GumTestApp_macOS ( dependabot[bot] 2021-05-08 04:00:01 +0000) 25ae190 build(deps): bump ua-parser-js in /examples/GumTestApp ( dependabot[bot] 2021-05-08 04:01:11 +0000) 510d20d api: initial implementation of MediaStreamTrack.getSettings ( Saúl Ibarra Corretgé 2021-04-23 11:47:58 +0200) d58dbb5 android: make orientation changes more resilient ( Saúl Ibarra Corretgé 2021-04-22 14:21:41 +0200) f98efa3 android: fix crash when media projection is stopped ( Saúl Ibarra Corretgé 2021-04-22 13:26:48 +0200) aa25836 android: fix detecting rotation when screen sharing ( Saúl Ibarra Corretgé 2021-04-22 12:05:51 +0200) 05b7a06 ios: apply image orientation on getDisplayMedia implementation ( Saúl Ibarra Corretgé 2021-04-16 11:20:56 +0200) 6f7c2b5 build(deps): bump y18n from 4.0.0 to 4.0.1 in /examples/GumTestApp_macOS ( dependabot[bot] 2021-04-01 08:16:40 +0000) 47ef207 build(deps): bump y18n from 4.0.0 to 4.0.1 in /examples/GumTestApp ( dependabot[bot] 2021-04-01 08:27:10 +0000) 1343580 tools: make parsing version more resilient ( Saúl Ibarra Corretgé 2021-03-16 21:52:12 +0100)
945cd3b doc: update currently used WebRTC version in README ( Saúl Ibarra Corretgé 2021-05-31 09:38:24 +0200) c460228 dc: fix crash on ios when receiving a message in iOS ( Louis Lagrange 2021-05-31 15:10:50 +0800) 8bb1a13 dc: fix passing incorrect react tag ( Louis Lagrange 2021-05-31 15:08:32 +0800)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]>
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/gulpjs/glob-parent/releases) - [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md) - [Commits](gulpjs/glob-parent@v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: glob-parent dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]>
It provides feedback on both platforms now. Still no end-of-candidates support though.
- setLocalDescription without parameters - restartIce() Fixes: react-native-webrtc#782
The default one in WebRTC swallows the UnsatisfiedLinkError exception, so one does not know what happened when confronted with a crash like this: Fatal Exception: java.lang.UnsatisfiedLinkError: No implementation found for void org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals() (tried Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals and Java_org_webrtc_PeerConnectionFactory_nativeInitializeAndroidGlobals__) at org.webrtc.PeerConnectionFactory.nativeInitializeAndroidGlobals(PeerConnectionFactory.java) at org.webrtc.PeerConnectionFactory.initialize(PeerConnectionFactory.java:295) at com.oney.WebRTCModule.WebRTCModule.initAsync(WebRTCModule.java:107) at com.oney.WebRTCModule.WebRTCModule.lambda$new$0(WebRTCModule.java:84) at com.oney.WebRTCModule.WebRTCModule.lambda$new$0$WebRTCModule(WebRTCModule.java) at com.oney.WebRTCModule.-$$Lambda$WebRTCModule$bDDwL4wYvjA9JkO_YVql2QzAUMI.run(-.java:4) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) at java.lang.Thread.run(Thread.java:764) Our custom loader doesn't catch the exception, so the crash will happen a bit earlier and will contain information as to why.
There is no need, since initialization always happens before any user code can run.
We haven't supported API level < 18 for a long time.
It checks if the track was disposed (indirectly) by trying to get object associated with the given URL. That is unsafe because releasing happens in another thread, so it's best to just try and gracefully handle the error, as we already do.
This function _only_ gets called from WebRTCView, in the UI thread. Hence make sure we run this code in the executor or we run at the risk of being out of sync.
removeSink can no longer throw IllegalStateException.
cec18d2 android: simplify code ( Saúl Ibarra Corretgé 2021-08-31 11:56:02 +0200) c00da5f android: fix thread-safety issue in getStreamForReactTag ( Saúl Ibarra Corretgé 2021-08-31 10:19:52 +0200) 6a70559 android: remove pointless getVideoTrack() method ( Saúl Ibarra Corretgé 2021-08-31 10:03:13 +0200) 00da392 android: remove no longer needed compatibility code ( Saúl Ibarra Corretgé 2021-08-31 09:27:25 +0200) 0a0ed0f android: don't initialize the module asynchronously ( Saúl Ibarra Corretgé 2021-08-26 13:46:13 +0200) e2c3b1b android: add custom native library loader ( Saúl Ibarra Corretgé 2021-08-26 13:44:15 +0200) b09dbbb examples: avoid checking in package-lock.json ( Saúl Ibarra Corretgé 2021-08-26 09:30:55 +0200) a0983c4 api: add getDisplayMedia to registerGlobals ( Anes Sprecic 2021-08-24 09:33:17 +0200) 26f8243 api: remove constraints from getDisplayMedia ( Anes Sprecic 2021-08-24 10:34:20 +0200) ba63072 doc: update README ( Saúl Ibarra Corretgé 2021-08-04 14:49:40 +0200)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.