From cd89fc04e9b286586ddb22120eb8e549139f30a9 Mon Sep 17 00:00:00 2001 From: Iwan Timmer Date: Mon, 27 Oct 2014 17:48:17 +0100 Subject: [PATCH] Video bandwith and latency only during debugging --- src/com/limelight/Limelight.java | 6 +++--- src/com/limelight/binding/PlatformBinding.java | 11 +++++++---- .../binding/video/AbstractVideoRenderer.java | 4 +++- .../limelight/binding/video/FakeVideoRenderer.java | 1 + 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/com/limelight/Limelight.java b/src/com/limelight/Limelight.java index 99c0045..595c4c3 100644 --- a/src/com/limelight/Limelight.java +++ b/src/com/limelight/Limelight.java @@ -56,7 +56,7 @@ public class Limelight implements NvConnectionListener { /* * Creates a connection to the host and starts up the stream. */ - private void startUp(StreamConfiguration streamConfig, List inputs, String mappingFile, String audioDevice, boolean tests) { + private void startUp(StreamConfiguration streamConfig, List inputs, String mappingFile, String audioDevice, boolean tests, boolean debug) { if (tests) { boolean test = true; String vm = System.getProperties().getProperty("java.vm.name"); @@ -105,7 +105,7 @@ public class Limelight implements NvConnectionListener { conn.start(PlatformBinding.getDeviceName(), null, VideoDecoderRenderer.FLAG_PREFER_QUALITY, PlatformBinding.getAudioRenderer(audioDevice), - PlatformBinding.getVideoDecoderRenderer()); + PlatformBinding.getVideoDecoderRenderer(debug)); } /* @@ -389,7 +389,7 @@ public class Limelight implements NvConnectionListener { if (action.equals("fake")) limelight.startUpFake(streamConfig, video); else - limelight.startUp(streamConfig, inputs, mapping, audio, tests); + limelight.startUp(streamConfig, inputs, mapping, audio, tests, debug.intValue() > Level.WARNING.intValue()); } else if (action.equals("pair")) limelight.pair(); else if (action.equals("list")) diff --git a/src/com/limelight/binding/PlatformBinding.java b/src/com/limelight/binding/PlatformBinding.java index 20365bc..292b632 100644 --- a/src/com/limelight/binding/PlatformBinding.java +++ b/src/com/limelight/binding/PlatformBinding.java @@ -11,6 +11,7 @@ import com.limelight.binding.video.ImxDecoderRenderer; import com.limelight.binding.crypto.PcCryptoProvider; import com.limelight.binding.video.OmxDecoder; import com.limelight.binding.video.OmxDecoderRenderer; +import com.limelight.binding.video.AbstractVideoRenderer; import com.limelight.nvstream.av.audio.AudioRenderer; import com.limelight.nvstream.av.video.VideoDecoderRenderer; import com.limelight.nvstream.http.LimelightCryptoProvider; @@ -26,13 +27,15 @@ public class PlatformBinding { * Gets an instance of a video decoder/renderer. * @return a video decoder and renderer */ - public static VideoDecoderRenderer getVideoDecoderRenderer() { + public static VideoDecoderRenderer getVideoDecoderRenderer(boolean debug) { + AbstractVideoRenderer renderer = null; if (OmxDecoder.load()) - return new OmxDecoderRenderer(); + renderer = new OmxDecoderRenderer(); else if (ImxDecoder.load()) - return new ImxDecoderRenderer(); + renderer = new ImxDecoderRenderer(); - return null; + renderer.debug = debug; + return renderer; } /** diff --git a/src/com/limelight/binding/video/AbstractVideoRenderer.java b/src/com/limelight/binding/video/AbstractVideoRenderer.java index 1442aac..63ebaa8 100644 --- a/src/com/limelight/binding/video/AbstractVideoRenderer.java +++ b/src/com/limelight/binding/video/AbstractVideoRenderer.java @@ -22,6 +22,8 @@ public abstract class AbstractVideoRenderer implements VideoDecoderRenderer { private long packets; private long maxLatency; + public boolean debug; + @Override public boolean start(final VideoDepacketizer depacketizer) { last = System.currentTimeMillis(); @@ -43,7 +45,7 @@ public abstract class AbstractVideoRenderer implements VideoDecoderRenderer { if (latency>maxLatency) maxLatency = latency; - if (System.currentTimeMillis()>last+2000) { + if (debug && System.currentTimeMillis()>last+2000) { int bitrate = (dataSize/2)/1024; System.out.println("Video " + bitrate + "kB/s " + maxLatency + "ms"); maxLatency = 0; diff --git a/src/com/limelight/binding/video/FakeVideoRenderer.java b/src/com/limelight/binding/video/FakeVideoRenderer.java index f70e571..b44ad23 100644 --- a/src/com/limelight/binding/video/FakeVideoRenderer.java +++ b/src/com/limelight/binding/video/FakeVideoRenderer.java @@ -18,6 +18,7 @@ public class FakeVideoRenderer extends AbstractVideoRenderer { public FakeVideoRenderer(String videoFile) { try { + this.debug = true; if (videoFile!=null) out = new FileOutputStream(videoFile); } catch (FileNotFoundException e) {