diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 2541a506760ca..32680dae75b95 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -3181,7 +3181,10 @@ final public class MediaCodec { mValid = false; mNativeContext = 0; } - sPool.offer(this); + + if (!mInternal) { + sPool.offer(this); + } } private native void native_recycle(); @@ -3245,6 +3248,7 @@ final public class MediaCodec { mNativeContext = context; mMappable = isMappable; mValid = (context != 0); + mInternal = true; } private static final BlockingQueue sPool = @@ -3255,6 +3259,7 @@ final public class MediaCodec { private boolean mMappable = false; private ByteBuffer mMapped = null; private long mNativeContext = 0; + private boolean mInternal = false; } /**