diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/VideoSourceWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/VideoSourceWrapper.java index b837131e8..c1ff24521 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/VideoSourceWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/VideoSourceWrapper.java @@ -87,7 +87,15 @@ class VideoSourceWrapper { public void dispose() { this.cameraVideoCapturer.dispose(); if (this.videoSource != null) { - this.videoSource.dispose(); + dispose(this.videoSource); + } + } + + private static void dispose(final VideoSource videoSource) { + try { + videoSource.dispose(); + } catch (final IllegalStateException e) { + Log.e(Config.LOGTAG, "unable to dispose video source", e); } } diff --git a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java index d2979d57e..08154260a 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java +++ b/src/main/java/eu/siacs/conversations/xmpp/jingle/WebRTCWrapper.java @@ -460,6 +460,7 @@ public class WebRTCWrapper { this.localVideoTrack = null; this.remoteVideoTrack = null; if (videoSourceWrapper != null) { + this.videoSourceWrapper = null; try { videoSourceWrapper.stopCapture(); } catch (final InterruptedException e) {