Commit 685e1d1f by Oliver Woodman

Minimize memory leak risks.

Remove implicit back-reference from playback thread to player.
parent cb068459
...@@ -17,9 +17,9 @@ package com.google.android.exoplayer; ...@@ -17,9 +17,9 @@ package com.google.android.exoplayer;
import com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent; import com.google.android.exoplayer.ExoPlayer.ExoPlayerComponent;
import com.google.android.exoplayer.util.Assertions; import com.google.android.exoplayer.util.Assertions;
import com.google.android.exoplayer.util.PriorityHandlerThread;
import com.google.android.exoplayer.util.TraceUtil; import com.google.android.exoplayer.util.TraceUtil;
import android.annotation.SuppressLint;
import android.os.Handler; import android.os.Handler;
import android.os.HandlerThread; import android.os.HandlerThread;
import android.os.Looper; import android.os.Looper;
...@@ -83,7 +83,6 @@ import java.util.List; ...@@ -83,7 +83,6 @@ import java.util.List;
private volatile long positionUs; private volatile long positionUs;
private volatile long bufferedPositionUs; private volatile long bufferedPositionUs;
@SuppressLint("HandlerLeak")
public ExoPlayerImplInternal(Handler eventHandler, boolean playWhenReady, public ExoPlayerImplInternal(Handler eventHandler, boolean playWhenReady,
boolean[] rendererEnabledFlags, int minBufferMs, int minRebufferMs) { boolean[] rendererEnabledFlags, int minBufferMs, int minRebufferMs) {
this.eventHandler = eventHandler; this.eventHandler = eventHandler;
...@@ -101,15 +100,10 @@ import java.util.List; ...@@ -101,15 +100,10 @@ import java.util.List;
mediaClock = new MediaClock(); mediaClock = new MediaClock();
enabledRenderers = new ArrayList<TrackRenderer>(rendererEnabledFlags.length); enabledRenderers = new ArrayList<TrackRenderer>(rendererEnabledFlags.length);
internalPlaybackThread = new HandlerThread(getClass().getSimpleName() + ":Handler") { // Note: The documentation for Process.THREAD_PRIORITY_AUDIO that states "Applications can
@Override // not normally change to this priority" is incorrect.
public void run() { internalPlaybackThread = new PriorityHandlerThread(getClass().getSimpleName() + ":Handler",
// Note: The documentation for Process.THREAD_PRIORITY_AUDIO that states "Applications can Process.THREAD_PRIORITY_AUDIO);
// not normally change to this priority" is incorrect.
Process.setThreadPriority(Process.THREAD_PRIORITY_AUDIO);
super.run();
}
};
internalPlaybackThread.start(); internalPlaybackThread.start();
handler = new Handler(internalPlaybackThread.getLooper(), this); handler = new Handler(internalPlaybackThread.getLooper(), this);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment