From f5ec665115389e834b1d62d961f8929a8b9d0608 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 19 Jul 2014 03:49:44 -0700 Subject: [PATCH] Park for a bit if there's nothing to do --- .../limelight/binding/video/AndroidCpuDecoderRenderer.java | 2 ++ .../limelight/binding/video/MediaCodecDecoderRenderer.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/com/limelight/binding/video/AndroidCpuDecoderRenderer.java b/src/com/limelight/binding/video/AndroidCpuDecoderRenderer.java index 611c3555..7521ad0c 100644 --- a/src/com/limelight/binding/video/AndroidCpuDecoderRenderer.java +++ b/src/com/limelight/binding/video/AndroidCpuDecoderRenderer.java @@ -5,6 +5,7 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.concurrent.locks.LockSupport; import android.graphics.PixelFormat; import android.os.Build; @@ -169,6 +170,7 @@ public class AndroidCpuDecoderRenderer implements VideoDecoderRenderer { long diff = nextFrameTime - System.currentTimeMillis(); if (diff > WAIT_CEILING_MS) { + LockSupport.parkNanos(1); continue; } diff --git a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java index d91c5509..8a180362 100644 --- a/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/src/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -3,6 +3,7 @@ package com.limelight.binding.video; import java.nio.ByteBuffer; import java.util.LinkedList; import java.util.List; +import java.util.concurrent.locks.LockSupport; import com.limelight.LimeLog; import com.limelight.nvstream.av.ByteBufferDescriptor; @@ -203,6 +204,9 @@ public class MediaCodecDecoderRenderer implements VideoDecoderRenderer { } } else { switch (outIndex) { + case MediaCodec.INFO_TRY_AGAIN_LATER: + LockSupport.parkNanos(1); + break; case MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED: LimeLog.info("Output buffers changed"); break;