Loading media/java/android/media/MediaPlayer2.java +23 −2 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ import android.os.PersistableBundle; import android.view.Surface; import android.view.SurfaceHolder; import dalvik.system.CloseGuard; import java.io.FileDescriptor; import java.io.IOException; import java.io.InputStream; Loading Loading @@ -457,6 +459,8 @@ import java.util.concurrent.Executor; public abstract class MediaPlayer2 implements SubtitleController.Listener , AutoCloseable , AudioRouting { private final CloseGuard mGuard = CloseGuard.get(); /** * Create a MediaPlayer2 object. * Loading Loading @@ -512,7 +516,9 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener * @hide */ // add hidden empty constructor so it doesn't show in SDK public MediaPlayer2() { } public MediaPlayer2() { mGuard.open("close"); } /** * Returns a {@link MediaPlayerBase} implementation which runs based on Loading Loading @@ -545,7 +551,22 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener */ // This is a synchronous call. @Override public abstract void close(); public void close() { synchronized (mGuard) { mGuard.close(); } } // Have to declare protected for finalize() since it is protected // in the base class Object. @Override protected void finalize() throws Throwable { if (mGuard != null) { mGuard.warnIfOpen(); } close(); } /** * Starts or resumes playback. If playback had previously been paused, Loading media/java/android/media/MediaPlayer2Impl.java +11 −14 Original line number Diff line number Diff line Loading @@ -55,8 +55,6 @@ import com.android.framework.protobuf.InvalidProtocolBufferException; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.Preconditions; import dalvik.system.CloseGuard; import libcore.io.IoBridge; import java.io.ByteArrayOutputStream; Loading @@ -79,7 +77,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; import java.util.UUID; import java.util.Vector; import java.util.concurrent.Executor; Loading @@ -105,7 +102,6 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { private boolean mScreenOnWhilePlaying; private boolean mStayAwake; private int mStreamType = AudioManager.USE_DEFAULT_STREAM_TYPE; private final CloseGuard mGuard = CloseGuard.get(); private final Object mSrcLock = new Object(); //--- guarded by |mSrcLock| start Loading Loading @@ -145,6 +141,9 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { @GuardedBy("mTaskLock") private Task mCurrentTask; @GuardedBy("this") private boolean mReleased; /** * Default constructor. * <p>When done with the MediaPlayer2Impl, you should call {@link #close()}, Loading @@ -159,7 +158,6 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { mTimeProvider = new TimeProvider(this); mOpenSubtitleSources = new Vector<InputStream>(); mGuard.open("close"); /* Native setup requires a weak reference to our object. * It's easier to create it here than in C++. Loading Loading @@ -197,10 +195,9 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { */ @Override public void close() { synchronized (mGuard) { super.close(); release(); } } /** * Starts or resumes playback. If playback had previously been paused, Loading Loading @@ -2447,15 +2444,14 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { // in the base class Object. @Override protected void finalize() throws Throwable { if (mGuard != null) { mGuard.warnIfOpen(); } close(); super.finalize(); native_finalize(); } private void release() { private synchronized void release() { if (mReleased) { return; } stayAwake(false); updateSurfaceScreenOn(); synchronized (mEventCbLock) { Loading @@ -2478,6 +2474,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { resetDrmState(); _release(); mReleased = true; } private native void _release(); Loading Loading
media/java/android/media/MediaPlayer2.java +23 −2 Original line number Diff line number Diff line Loading @@ -30,6 +30,8 @@ import android.os.PersistableBundle; import android.view.Surface; import android.view.SurfaceHolder; import dalvik.system.CloseGuard; import java.io.FileDescriptor; import java.io.IOException; import java.io.InputStream; Loading Loading @@ -457,6 +459,8 @@ import java.util.concurrent.Executor; public abstract class MediaPlayer2 implements SubtitleController.Listener , AutoCloseable , AudioRouting { private final CloseGuard mGuard = CloseGuard.get(); /** * Create a MediaPlayer2 object. * Loading Loading @@ -512,7 +516,9 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener * @hide */ // add hidden empty constructor so it doesn't show in SDK public MediaPlayer2() { } public MediaPlayer2() { mGuard.open("close"); } /** * Returns a {@link MediaPlayerBase} implementation which runs based on Loading Loading @@ -545,7 +551,22 @@ public abstract class MediaPlayer2 implements SubtitleController.Listener */ // This is a synchronous call. @Override public abstract void close(); public void close() { synchronized (mGuard) { mGuard.close(); } } // Have to declare protected for finalize() since it is protected // in the base class Object. @Override protected void finalize() throws Throwable { if (mGuard != null) { mGuard.warnIfOpen(); } close(); } /** * Starts or resumes playback. If playback had previously been paused, Loading
media/java/android/media/MediaPlayer2Impl.java +11 −14 Original line number Diff line number Diff line Loading @@ -55,8 +55,6 @@ import com.android.framework.protobuf.InvalidProtocolBufferException; import com.android.internal.annotations.GuardedBy; import com.android.internal.util.Preconditions; import dalvik.system.CloseGuard; import libcore.io.IoBridge; import java.io.ByteArrayOutputStream; Loading @@ -79,7 +77,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; import java.util.UUID; import java.util.Vector; import java.util.concurrent.Executor; Loading @@ -105,7 +102,6 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { private boolean mScreenOnWhilePlaying; private boolean mStayAwake; private int mStreamType = AudioManager.USE_DEFAULT_STREAM_TYPE; private final CloseGuard mGuard = CloseGuard.get(); private final Object mSrcLock = new Object(); //--- guarded by |mSrcLock| start Loading Loading @@ -145,6 +141,9 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { @GuardedBy("mTaskLock") private Task mCurrentTask; @GuardedBy("this") private boolean mReleased; /** * Default constructor. * <p>When done with the MediaPlayer2Impl, you should call {@link #close()}, Loading @@ -159,7 +158,6 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { mTimeProvider = new TimeProvider(this); mOpenSubtitleSources = new Vector<InputStream>(); mGuard.open("close"); /* Native setup requires a weak reference to our object. * It's easier to create it here than in C++. Loading Loading @@ -197,10 +195,9 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { */ @Override public void close() { synchronized (mGuard) { super.close(); release(); } } /** * Starts or resumes playback. If playback had previously been paused, Loading Loading @@ -2447,15 +2444,14 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { // in the base class Object. @Override protected void finalize() throws Throwable { if (mGuard != null) { mGuard.warnIfOpen(); } close(); super.finalize(); native_finalize(); } private void release() { private synchronized void release() { if (mReleased) { return; } stayAwake(false); updateSurfaceScreenOn(); synchronized (mEventCbLock) { Loading @@ -2478,6 +2474,7 @@ public final class MediaPlayer2Impl extends MediaPlayer2 { resetDrmState(); _release(); mReleased = true; } private native void _release(); Loading