Vlad Provalionok
Committed by GitHub

Fix IllegalStateException when switchCamera of localVideoTrack (#725)

* Added calling surfaceTextureHelper.stopListening() inside onCapturerStarted to prevent crush when switchCamera in LocalVideoTrack. Added videoProcessor param into Local
.restartTrack to keep videoProcessor when restart the track.

* changeset

---------

Co-authored-by: davidliu <davidliu@deviange.net>
---
"client-sdk-android": patch
---
Fix IllegalStateException when switchCamera of localVideoTrack
... ...
... ... @@ -256,7 +256,10 @@ constructor(
/**
* Restart a track with new options.
*/
fun restartTrack(options: LocalVideoTrackOptions = defaultsManager.videoTrackCaptureDefaults.copy()) {
fun restartTrack(
options: LocalVideoTrackOptions = defaultsManager.videoTrackCaptureDefaults.copy(),
videoProcessor: VideoProcessor? = null
) {
if (isDisposed) {
LKLog.e { "Attempting to restart track that was already disposed, aborting." }
return
... ... @@ -290,6 +293,7 @@ constructor(
options,
eglBase,
trackFactory,
videoProcessor
)
// migrate video sinks to the new track
... ...
... ... @@ -137,6 +137,7 @@ class VirtualBackgroundVideoProcessor(private val eglBase: EglBase, dispatcher:
override fun onCapturerStarted(started: Boolean) {
if (started) {
surfaceTextureHelper.stopListening()
surfaceTextureHelper.startListening { frame ->
targetSink?.onFrame(frame)
}
... ...