From c02e1ed006a7bd90a066a7f76434bc83a52b535f Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 3 Sep 2014 20:40:43 -0700 Subject: [PATCH] Stop the decoder in the stop() function --- .../binding/video/MediaCodecDecoderRenderer.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 186572cb..037d703e 100644 --- a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -163,9 +163,6 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { MediaFormat videoFormat = MediaFormat.createVideoFormat("video/avc", width, height); videoDecoder.configure(videoFormat, ((SurfaceHolder)renderTarget).getSurface(), null, 0); videoDecoder.setVideoScalingMode(MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT); - videoDecoder.start(); - - videoDecoderInputBuffers = videoDecoder.getInputBuffers(); LimeLog.info("Using hardware decoding"); @@ -241,17 +238,26 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { @Override public boolean start(VideoDepacketizer depacketizer) { this.depacketizer = depacketizer; + + // Start the decoder + videoDecoder.start(); + videoDecoderInputBuffers = videoDecoder.getInputBuffers(); + + // Start the rendering thread startRendererThread(); return true; } @Override public void stop() { + // Halt the rendering thread rendererThread.interrupt(); - try { rendererThread.join(); } catch (InterruptedException e) { } + + // Stop the decoder + videoDecoder.stop(); } @Override