From 88874016441b7a9f79dd8fb8932ccf5ef5c36d3b Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 5 Aug 2014 23:16:02 -0700 Subject: [PATCH] Fix surface sizing with scaling disabled on the CPU decoder --- src/com/limelight/Game.java | 6 +++++- .../binding/video/ConfigurableDecoderRenderer.java | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/com/limelight/Game.java b/src/com/limelight/Game.java index b784805b..a90e4b88 100644 --- a/src/com/limelight/Game.java +++ b/src/com/limelight/Game.java @@ -610,9 +610,13 @@ public class Game extends Activity implements SurfaceHolder.Callback, OnGenericM // Resize the surface to match the aspect ratio of the video // This must be done after the surface is created. - if (!stretchToFit) { + if (!stretchToFit && decoderRenderer.isHardwareAccelerated()) { resizeSurfaceWithAspectRatio((SurfaceView) findViewById(R.id.surfaceView), width, height); } + else if (!decoderRenderer.isHardwareAccelerated()) { + // Make sure the surface is the correct size since we render directly to it + holder.setFixedSize(width, height); + } conn.start(PlatformBinding.getDeviceName(), holder, drFlags, PlatformBinding.getAudioRenderer(), decoderRenderer); diff --git a/src/com/limelight/binding/video/ConfigurableDecoderRenderer.java b/src/com/limelight/binding/video/ConfigurableDecoderRenderer.java index 18dc3870..99b8c19e 100644 --- a/src/com/limelight/binding/video/ConfigurableDecoderRenderer.java +++ b/src/com/limelight/binding/video/ConfigurableDecoderRenderer.java @@ -26,6 +26,10 @@ public class ConfigurableDecoderRenderer implements VideoDecoderRenderer { } return decoderRenderer.setup(width, height, redrawRate, renderTarget, drFlags); } + + public boolean isHardwareAccelerated() { + return (decoderRenderer instanceof MediaCodecDecoderRenderer); + } @Override public boolean start(VideoDepacketizer depacketizer) {