Stop the decoder in the stop() function

This commit is contained in:
Cameron Gutman 2014-09-03 20:40:43 -07:00
parent 178c53ee84
commit c02e1ed006

View File

@ -163,9 +163,6 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer {
MediaFormat videoFormat = MediaFormat.createVideoFormat("video/avc", width, height); MediaFormat videoFormat = MediaFormat.createVideoFormat("video/avc", width, height);
videoDecoder.configure(videoFormat, ((SurfaceHolder)renderTarget).getSurface(), null, 0); videoDecoder.configure(videoFormat, ((SurfaceHolder)renderTarget).getSurface(), null, 0);
videoDecoder.setVideoScalingMode(MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT); videoDecoder.setVideoScalingMode(MediaCodec.VIDEO_SCALING_MODE_SCALE_TO_FIT);
videoDecoder.start();
videoDecoderInputBuffers = videoDecoder.getInputBuffers();
LimeLog.info("Using hardware decoding"); LimeLog.info("Using hardware decoding");
@ -241,17 +238,26 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer {
@Override @Override
public boolean start(VideoDepacketizer depacketizer) { public boolean start(VideoDepacketizer depacketizer) {
this.depacketizer = depacketizer; this.depacketizer = depacketizer;
// Start the decoder
videoDecoder.start();
videoDecoderInputBuffers = videoDecoder.getInputBuffers();
// Start the rendering thread
startRendererThread(); startRendererThread();
return true; return true;
} }
@Override @Override
public void stop() { public void stop() {
// Halt the rendering thread
rendererThread.interrupt(); rendererThread.interrupt();
try { try {
rendererThread.join(); rendererThread.join();
} catch (InterruptedException e) { } } catch (InterruptedException e) { }
// Stop the decoder
videoDecoder.stop();
} }
@Override @Override