diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 8e8ed6c7acec..5c3aa96925f5 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -3089,7 +3089,10 @@ final public class MediaCodec { mValid = false; mNativeContext = 0; } - sPool.offer(this); + + if (!mInternal) { + sPool.offer(this); + } } private native void native_recycle(); @@ -3153,6 +3156,7 @@ final public class MediaCodec { mNativeContext = context; mMappable = isMappable; mValid = (context != 0); + mInternal = true; } private static final BlockingQueue sPool = @@ -3163,6 +3167,7 @@ final public class MediaCodec { private boolean mMappable = false; private ByteBuffer mMapped = null; private long mNativeContext = 0; + private boolean mInternal = false; } /**