From 8eca3683c94f0f434feabe47bd79ad45d44ab991 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 21 Nov 2014 11:08:35 -0800 Subject: [PATCH] Add method for getting video decoder name --- .../binding/video/AndroidCpuDecoderRenderer.java | 7 ++++++- .../binding/video/ConfigurableDecoderRenderer.java | 14 ++++++++++++-- .../binding/video/EnhancedDecoderRenderer.java | 7 +++++++ .../binding/video/MediaCodecDecoderRenderer.java | 11 ++++++++--- 4 files changed, 33 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/com/limelight/binding/video/EnhancedDecoderRenderer.java diff --git a/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java index ed5c501f..7b05b341 100644 --- a/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/AndroidCpuDecoderRenderer.java @@ -18,7 +18,7 @@ import com.limelight.nvstream.av.video.VideoDepacketizer; import com.limelight.nvstream.av.video.cpu.AvcDecoder; @SuppressWarnings("EmptyCatchBlock") -public class AndroidCpuDecoderRenderer implements VideoDecoderRenderer { +public class AndroidCpuDecoderRenderer extends EnhancedDecoderRenderer { private Thread rendererThread, decoderThread; private int targetFps; @@ -278,4 +278,9 @@ public class AndroidCpuDecoderRenderer implements VideoDecoderRenderer { } return (int)(totalTimeMs / totalFrames); } + + @Override + public String getDecoderName() { + return "CPU decoding"; + } } diff --git a/app/src/main/java/com/limelight/binding/video/ConfigurableDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/ConfigurableDecoderRenderer.java index 74024dae..e0528416 100644 --- a/app/src/main/java/com/limelight/binding/video/ConfigurableDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/ConfigurableDecoderRenderer.java @@ -3,9 +3,9 @@ package com.limelight.binding.video; import com.limelight.nvstream.av.video.VideoDecoderRenderer; import com.limelight.nvstream.av.video.VideoDepacketizer; -public class ConfigurableDecoderRenderer implements VideoDecoderRenderer { +public class ConfigurableDecoderRenderer extends EnhancedDecoderRenderer { - private VideoDecoderRenderer decoderRenderer; + private EnhancedDecoderRenderer decoderRenderer; @Override public void release() { @@ -74,4 +74,14 @@ public class ConfigurableDecoderRenderer implements VideoDecoderRenderer { return 0; } } + + @Override + public String getDecoderName() { + if (decoderRenderer != null) { + return decoderRenderer.getDecoderName(); + } + else { + return null; + } + } } diff --git a/app/src/main/java/com/limelight/binding/video/EnhancedDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/EnhancedDecoderRenderer.java new file mode 100644 index 00000000..56392d89 --- /dev/null +++ b/app/src/main/java/com/limelight/binding/video/EnhancedDecoderRenderer.java @@ -0,0 +1,7 @@ +package com.limelight.binding.video; + +import com.limelight.nvstream.av.video.VideoDecoderRenderer; + +public abstract class EnhancedDecoderRenderer implements VideoDecoderRenderer { + public abstract String getDecoderName(); +} diff --git a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 9de40602..70526492 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -23,7 +23,7 @@ import android.os.Build; import android.view.SurfaceHolder; @SuppressWarnings("unused") -public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { +public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer { private ByteBuffer[] videoDecoderInputBuffers; private MediaCodec videoDecoder; @@ -477,8 +477,13 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { } return (int)(totalTimeMs / totalFrames); } - - public class RendererException extends RuntimeException { + + @Override + public String getDecoderName() { + return decoderName; + } + + public class RendererException extends RuntimeException { private static final long serialVersionUID = 8985937536997012406L; private Exception originalException;