Add method for getting video decoder name

This commit is contained in:
Cameron Gutman 2014-11-21 11:08:35 -08:00
parent 80c17b4913
commit 8eca3683c9
4 changed files with 33 additions and 6 deletions

View File

@ -18,7 +18,7 @@ import com.limelight.nvstream.av.video.VideoDepacketizer;
import com.limelight.nvstream.av.video.cpu.AvcDecoder; import com.limelight.nvstream.av.video.cpu.AvcDecoder;
@SuppressWarnings("EmptyCatchBlock") @SuppressWarnings("EmptyCatchBlock")
public class AndroidCpuDecoderRenderer implements VideoDecoderRenderer { public class AndroidCpuDecoderRenderer extends EnhancedDecoderRenderer {
private Thread rendererThread, decoderThread; private Thread rendererThread, decoderThread;
private int targetFps; private int targetFps;
@ -278,4 +278,9 @@ public class AndroidCpuDecoderRenderer implements VideoDecoderRenderer {
} }
return (int)(totalTimeMs / totalFrames); return (int)(totalTimeMs / totalFrames);
} }
@Override
public String getDecoderName() {
return "CPU decoding";
}
} }

View File

@ -3,9 +3,9 @@ package com.limelight.binding.video;
import com.limelight.nvstream.av.video.VideoDecoderRenderer; import com.limelight.nvstream.av.video.VideoDecoderRenderer;
import com.limelight.nvstream.av.video.VideoDepacketizer; import com.limelight.nvstream.av.video.VideoDepacketizer;
public class ConfigurableDecoderRenderer implements VideoDecoderRenderer { public class ConfigurableDecoderRenderer extends EnhancedDecoderRenderer {
private VideoDecoderRenderer decoderRenderer; private EnhancedDecoderRenderer decoderRenderer;
@Override @Override
public void release() { public void release() {
@ -74,4 +74,14 @@ public class ConfigurableDecoderRenderer implements VideoDecoderRenderer {
return 0; return 0;
} }
} }
@Override
public String getDecoderName() {
if (decoderRenderer != null) {
return decoderRenderer.getDecoderName();
}
else {
return null;
}
}
} }

View File

@ -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();
}

View File

@ -23,7 +23,7 @@ import android.os.Build;
import android.view.SurfaceHolder; import android.view.SurfaceHolder;
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { public class MediaCodecDecoderRenderer extends EnhancedDecoderRenderer {
private ByteBuffer[] videoDecoderInputBuffers; private ByteBuffer[] videoDecoderInputBuffers;
private MediaCodec videoDecoder; private MediaCodec videoDecoder;
@ -478,7 +478,12 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer {
return (int)(totalTimeMs / totalFrames); 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 static final long serialVersionUID = 8985937536997012406L;
private Exception originalException; private Exception originalException;