From 3d2ae9e806869f2d78a6af2a57f8c9dbae0fae65 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 16 Dec 2013 18:00:12 -0500 Subject: [PATCH 1/2] Fix X and Y scaling --- src/com/limelight/binding/video/SwingCpuDecoderRenderer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/limelight/binding/video/SwingCpuDecoderRenderer.java b/src/com/limelight/binding/video/SwingCpuDecoderRenderer.java index 7796452..f31fca3 100644 --- a/src/com/limelight/binding/video/SwingCpuDecoderRenderer.java +++ b/src/com/limelight/binding/video/SwingCpuDecoderRenderer.java @@ -96,10 +96,10 @@ public class SwingCpuDecoderRenderer implements VideoDecoderRenderer { int dx1 = 0; int dy1 = 0; if (frame.getWidth() > newWidth) { - dx1 = (frame.getWidth()-newWidth)/4; + dx1 = (frame.getWidth()-newWidth)/2; } if (frame.getHeight() > newHeight) { - dy1 = (frame.getHeight()-newHeight)/4; + dy1 = (frame.getHeight()-newHeight)/2; } if (AvcDecoder.getRgbFrameInt(imageBuffer, imageBuffer.length)) { From 149cabe686fba2f2f19c89c5a96326094fc71dd6 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Thu, 19 Dec 2013 04:33:33 -0500 Subject: [PATCH 2/2] Use the StreamConfiguration class for managing the characteristics of StreamFrame --- src/com/limelight/Limelight.java | 6 ++++-- src/com/limelight/gui/StreamFrame.java | 11 ++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/com/limelight/Limelight.java b/src/com/limelight/Limelight.java index 06641eb..6496ff5 100644 --- a/src/com/limelight/Limelight.java +++ b/src/com/limelight/Limelight.java @@ -16,6 +16,7 @@ import com.limelight.gui.StreamFrame; import com.limelight.input.GamepadHandler; import com.limelight.nvstream.NvConnection; import com.limelight.nvstream.NvConnectionListener; +import com.limelight.nvstream.StreamConfiguration; import com.limelight.nvstream.av.video.VideoDecoderRenderer; public class Limelight implements NvConnectionListener { @@ -27,6 +28,7 @@ public class Limelight implements NvConnectionListener { private boolean connectionFailed; private static JFrame limeFrame; private Thread controllerListenerThread; + private StreamConfiguration streamConfig = new StreamConfiguration(1280, 720, 30); public Limelight(String host) { this.host = host; @@ -34,8 +36,8 @@ public class Limelight implements NvConnectionListener { private void startUp(boolean fullscreen) { streamFrame = new StreamFrame(); - conn = new NvConnection(host, this); - streamFrame.build(conn, fullscreen); + conn = new NvConnection(host, this, streamConfig); + streamFrame.build(conn, streamConfig, fullscreen); conn.start(PlatformBinding.getDeviceName(), streamFrame, VideoDecoderRenderer.FLAG_PREFER_QUALITY, PlatformBinding.getAudioRenderer(), diff --git a/src/com/limelight/gui/StreamFrame.java b/src/com/limelight/gui/StreamFrame.java index 73516fd..d8f68b0 100644 --- a/src/com/limelight/gui/StreamFrame.java +++ b/src/com/limelight/gui/StreamFrame.java @@ -26,6 +26,7 @@ import com.limelight.input.KeyboardHandler; import com.limelight.input.MouseHandler; import com.limelight.nvstream.NvConnection; import com.limelight.nvstream.NvConnectionListener.Stage; +import com.limelight.nvstream.StreamConfiguration; public class StreamFrame extends JFrame { private static final long serialVersionUID = 1L; @@ -37,10 +38,6 @@ public class StreamFrame extends JFrame { private Cursor noCursor; private NvConnection conn; - private static final int WIDTH = 1280; - private static final int HEIGHT = 720; - - public void freeMouse() { mouse.free(); showCursor(); @@ -51,7 +48,7 @@ public class StreamFrame extends JFrame { hideCursor(); } - public void build(NvConnection conn, boolean fullscreen) { + public void build(NvConnection conn, StreamConfiguration streamConfig, boolean fullscreen) { this.conn = conn; keyboard = new KeyboardHandler(conn, this); @@ -63,7 +60,7 @@ public class StreamFrame extends JFrame { this.setFocusTraversalKeysEnabled(false); - this.setSize(WIDTH, HEIGHT); + this.setSize(streamConfig.getWidth(), streamConfig.getHeight()); this.setBackground(Color.BLACK); this.getContentPane().setBackground(Color.BLACK); @@ -92,7 +89,7 @@ public class StreamFrame extends JFrame { }); DisplayMode bestConfig = null; for (DisplayMode config : configs) { - if (config.getWidth() >= 1280 && config.getHeight() >= 720) { + if (config.getWidth() >= getSize().width && config.getHeight() >= getSize().height) { bestConfig = config; } }