diff --git a/src/com/limelight/Game.java b/src/com/limelight/Game.java index fcd7d118..c526d0b4 100644 --- a/src/com/limelight/Game.java +++ b/src/com/limelight/Game.java @@ -86,16 +86,11 @@ public class Game extends Activity implements OnGenericMotionListener, OnTouchLi @Override public void onPause() { + conn.stop(); finish(); super.onPause(); } - @Override - public void onDestroy() { - conn.stop(); - super.onDestroy(); - } - @Override public void onTrimMemory(int trimLevel) { if (trimLevel >= ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW) diff --git a/src/com/limelight/nvstream/NvVideoStream.java b/src/com/limelight/nvstream/NvVideoStream.java index 9e92af15..91b895a8 100644 --- a/src/com/limelight/nvstream/NvVideoStream.java +++ b/src/com/limelight/nvstream/NvVideoStream.java @@ -37,6 +37,7 @@ public class NvVideoStream { private AvVideoDepacketizer depacketizer = new AvVideoDepacketizer(); private DecoderRenderer decrend; + private boolean startedRendering; private boolean aborting = false; @@ -70,6 +71,10 @@ public class NvVideoStream { } catch (InterruptedException e) { } } + if (startedRendering) { + decrend.stop(); + } + if (decrend != null) { decrend.release(); } @@ -187,6 +192,7 @@ public class NvVideoStream { // Start the renderer decrend.start(); + startedRendering = true; } }; threads.add(t); diff --git a/src/com/limelight/nvstream/av/video/CpuDecoderRenderer.java b/src/com/limelight/nvstream/av/video/CpuDecoderRenderer.java index ac98edfb..140589f4 100644 --- a/src/com/limelight/nvstream/av/video/CpuDecoderRenderer.java +++ b/src/com/limelight/nvstream/av/video/CpuDecoderRenderer.java @@ -2,7 +2,6 @@ package com.limelight.nvstream.av.video; import java.nio.ByteBuffer; -import android.graphics.Bitmap; import android.graphics.Canvas; import android.view.Surface; @@ -66,6 +65,10 @@ public class CpuDecoderRenderer implements DecoderRenderer { @Override public void stop() { rendererThread.interrupt(); + + try { + rendererThread.join(); + } catch (InterruptedException e) { } } @Override diff --git a/src/com/limelight/nvstream/av/video/MediaCodecDecoderRenderer.java b/src/com/limelight/nvstream/av/video/MediaCodecDecoderRenderer.java index 13551875..6e4eb79d 100644 --- a/src/com/limelight/nvstream/av/video/MediaCodecDecoderRenderer.java +++ b/src/com/limelight/nvstream/av/video/MediaCodecDecoderRenderer.java @@ -105,6 +105,10 @@ public class MediaCodecDecoderRenderer implements DecoderRenderer { @Override public void stop() { rendererThread.interrupt(); + + try { + rendererThread.join(); + } catch (InterruptedException e) { } } @Override