mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-19 11:03:01 +00:00
Fix crashes caused by rendering to a surface on teardown
This commit is contained in:
parent
16d629f5cf
commit
34905dd01e
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -105,6 +105,10 @@ public class MediaCodecDecoderRenderer implements DecoderRenderer {
|
||||
@Override
|
||||
public void stop() {
|
||||
rendererThread.interrupt();
|
||||
|
||||
try {
|
||||
rendererThread.join();
|
||||
} catch (InterruptedException e) { }
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user