mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-18 18:42:46 +00:00
Blacklist 59 FPS on BRAVIA_ATV3 due to crash reports
This commit is contained in:
parent
5da0177356
commit
3e7ddab0e9
@ -409,7 +409,7 @@ public class Game extends Activity implements SurfaceHolder.Callback,
|
|||||||
LimeLog.info("Bogus refresh rate: "+roundedRefreshRate);
|
LimeLog.info("Bogus refresh rate: "+roundedRefreshRate);
|
||||||
}
|
}
|
||||||
// HACK: Avoid crashing on some MTK devices
|
// HACK: Avoid crashing on some MTK devices
|
||||||
else if (roundedRefreshRate == 50 && decoderRenderer.is49FpsBlacklisted()) {
|
else if (decoderRenderer.isBlacklistedForFrameRate(roundedRefreshRate - 1)) {
|
||||||
// Use the old rendering strategy on these broken devices
|
// Use the old rendering strategy on these broken devices
|
||||||
decoderRenderer.enableLegacyFrameDropRendering();
|
decoderRenderer.enableLegacyFrameDropRendering();
|
||||||
}
|
}
|
||||||
|
@ -190,8 +190,8 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer {
|
|||||||
return avcDecoder != null;
|
return avcDecoder != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean is49FpsBlacklisted() {
|
public boolean isBlacklistedForFrameRate(int frameRate) {
|
||||||
return avcDecoder != null && MediaCodecHelper.decoderBlacklistedFor49Fps(avcDecoder.getName());
|
return avcDecoder != null && MediaCodecHelper.decoderBlacklistedForFrameRate(avcDecoder.getName(), frameRate);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void enableLegacyFrameDropRendering() {
|
public void enableLegacyFrameDropRendering() {
|
||||||
|
@ -37,6 +37,7 @@ public class MediaCodecHelper {
|
|||||||
private static final List<String> refFrameInvalidationAvcPrefixes;
|
private static final List<String> refFrameInvalidationAvcPrefixes;
|
||||||
private static final List<String> refFrameInvalidationHevcPrefixes;
|
private static final List<String> refFrameInvalidationHevcPrefixes;
|
||||||
private static final List<String> blacklisted49FpsDecoderPrefixes;
|
private static final List<String> blacklisted49FpsDecoderPrefixes;
|
||||||
|
private static final List<String> blacklisted59FpsDecoderPrefixes;
|
||||||
|
|
||||||
private static boolean isLowEndSnapdragon = false;
|
private static boolean isLowEndSnapdragon = false;
|
||||||
private static boolean initialized = false;
|
private static boolean initialized = false;
|
||||||
@ -161,12 +162,19 @@ public class MediaCodecHelper {
|
|||||||
|
|
||||||
static {
|
static {
|
||||||
blacklisted49FpsDecoderPrefixes = new LinkedList<>();
|
blacklisted49FpsDecoderPrefixes = new LinkedList<>();
|
||||||
|
blacklisted59FpsDecoderPrefixes = new LinkedList<>();
|
||||||
|
|
||||||
// We see a bunch of crashes on MediaTek Android TVs running
|
// We see a bunch of crashes on MediaTek Android TVs running
|
||||||
// at 49 FPS (PAL 50 Hz - 1). Blacklist this frame rate for
|
// at 49 FPS (PAL 50 Hz - 1). Blacklist this frame rate for
|
||||||
// these devices and hope they fix it in Pie.
|
// these devices and hope they fix it in Pie.
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
|
||||||
blacklisted49FpsDecoderPrefixes.add("omx.mtk");
|
blacklisted49FpsDecoderPrefixes.add("omx.mtk");
|
||||||
|
|
||||||
|
// 59 FPS also seems to crash on the Sony Bravia TV ATV3 model.
|
||||||
|
// Blacklist that frame rate on these devices too.
|
||||||
|
if (Build.DEVICE.startsWith("BRAVIA_ATV3")) {
|
||||||
|
blacklisted59FpsDecoderPrefixes.add("omx.mtk");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -345,8 +353,16 @@ public class MediaCodecHelper {
|
|||||||
return isDecoderInList(baselineProfileHackPrefixes, decoderName);
|
return isDecoderInList(baselineProfileHackPrefixes, decoderName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean decoderBlacklistedFor49Fps(String decoderName) {
|
public static boolean decoderBlacklistedForFrameRate(String decoderName, int fps) {
|
||||||
return isDecoderInList(blacklisted49FpsDecoderPrefixes, decoderName);
|
if (fps == 49) {
|
||||||
|
return isDecoderInList(blacklisted49FpsDecoderPrefixes, decoderName);
|
||||||
|
}
|
||||||
|
else if (fps == 59) {
|
||||||
|
return isDecoderInList(blacklisted59FpsDecoderPrefixes, decoderName);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean decoderSupportsRefFrameInvalidationAvc(String decoderName, int videoHeight) {
|
public static boolean decoderSupportsRefFrameInvalidationAvc(String decoderName, int videoHeight) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user