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