mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-21 12:03:02 +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
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
|
conn.stop();
|
||||||
finish();
|
finish();
|
||||||
super.onPause();
|
super.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDestroy() {
|
|
||||||
conn.stop();
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTrimMemory(int trimLevel) {
|
public void onTrimMemory(int trimLevel) {
|
||||||
if (trimLevel >= ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW)
|
if (trimLevel >= ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW)
|
||||||
|
@ -37,6 +37,7 @@ public class NvVideoStream {
|
|||||||
private AvVideoDepacketizer depacketizer = new AvVideoDepacketizer();
|
private AvVideoDepacketizer depacketizer = new AvVideoDepacketizer();
|
||||||
|
|
||||||
private DecoderRenderer decrend;
|
private DecoderRenderer decrend;
|
||||||
|
private boolean startedRendering;
|
||||||
|
|
||||||
private boolean aborting = false;
|
private boolean aborting = false;
|
||||||
|
|
||||||
@ -70,6 +71,10 @@ public class NvVideoStream {
|
|||||||
} catch (InterruptedException e) { }
|
} catch (InterruptedException e) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (startedRendering) {
|
||||||
|
decrend.stop();
|
||||||
|
}
|
||||||
|
|
||||||
if (decrend != null) {
|
if (decrend != null) {
|
||||||
decrend.release();
|
decrend.release();
|
||||||
}
|
}
|
||||||
@ -187,6 +192,7 @@ public class NvVideoStream {
|
|||||||
|
|
||||||
// Start the renderer
|
// Start the renderer
|
||||||
decrend.start();
|
decrend.start();
|
||||||
|
startedRendering = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
threads.add(t);
|
threads.add(t);
|
||||||
|
@ -2,7 +2,6 @@ package com.limelight.nvstream.av.video;
|
|||||||
|
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
import android.graphics.Bitmap;
|
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
|
|
||||||
@ -66,6 +65,10 @@ public class CpuDecoderRenderer implements DecoderRenderer {
|
|||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public void stop() {
|
||||||
rendererThread.interrupt();
|
rendererThread.interrupt();
|
||||||
|
|
||||||
|
try {
|
||||||
|
rendererThread.join();
|
||||||
|
} catch (InterruptedException e) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -105,6 +105,10 @@ public class MediaCodecDecoderRenderer implements DecoderRenderer {
|
|||||||
@Override
|
@Override
|
||||||
public void stop() {
|
public void stop() {
|
||||||
rendererThread.interrupt();
|
rendererThread.interrupt();
|
||||||
|
|
||||||
|
try {
|
||||||
|
rendererThread.join();
|
||||||
|
} catch (InterruptedException e) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user