Fix crashes caused by rendering to a surface on teardown

This commit is contained in:
Cameron Gutman 2013-11-20 00:32:37 -05:00
parent 16d629f5cf
commit 34905dd01e
4 changed files with 15 additions and 7 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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

View File

@ -105,6 +105,10 @@ public class MediaCodecDecoderRenderer implements DecoderRenderer {
@Override
public void stop() {
rendererThread.interrupt();
try {
rendererThread.join();
} catch (InterruptedException e) { }
}
@Override