diff --git a/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/audiovideo/video/capture/DefaultSurfaceTextureCaptureSource.kt b/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/audiovideo/video/capture/DefaultSurfaceTextureCaptureSource.kt index aa67290b..ec7c9b87 100644 --- a/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/audiovideo/video/capture/DefaultSurfaceTextureCaptureSource.kt +++ b/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/audiovideo/video/capture/DefaultSurfaceTextureCaptureSource.kt @@ -140,6 +140,7 @@ class DefaultSurfaceTextureCaptureSource( runBlocking(handler.asCoroutineDispatcher().immediate) { logger.info(TAG, "Setting on frame available listener to null") surfaceTexture.setOnFrameAvailableListener(null) + handler.removeCallbacksAndMessages(null) } } diff --git a/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/internal/contentshare/DefaultContentShareVideoClientController.kt b/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/internal/contentshare/DefaultContentShareVideoClientController.kt index dd1cf29d..32b8faf5 100644 --- a/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/internal/contentshare/DefaultContentShareVideoClientController.kt +++ b/amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/internal/contentshare/DefaultContentShareVideoClientController.kt @@ -141,14 +141,23 @@ class DefaultContentShareVideoClientController( } override fun stopVideoShare() { + if (!isSharing) return + isSharing = false + logger.info(TAG, "Stopping content share video client") - videoClient?.javaStopService() - videoClient?.destroy() - videoClient = null + videoSourceAdapter.source = null - isSharing = false - eglCore?.release() + val client = videoClient + val core = eglCore + videoClient = null eglCore = null + + Thread { + client?.setSending(false) + client?.javaStopService() + client?.destroy() + core?.release() + }.start() } override fun subscribeToVideoClientStateChange(observer: ContentShareObserver) {