diff --git a/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java b/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java index 596e1046d1..408cd1a09a 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/video/VideoFrameReleaseTimeHelper.java @@ -44,10 +44,10 @@ public final class VideoFrameReleaseTimeHelper { private DisplayManager.DisplayListener displayListener = null; private Context context = null; - private VSyncSampler vsyncSampler; - private boolean useDefaultDisplayVsync; - private long vsyncDurationNs; - private long vsyncOffsetNs; + private VSyncSampler vsyncSampler = null; + private final boolean useDefaultDisplayVsync; + private long vsyncDurationNs = -1; // Value unused. + private long vsyncOffsetNs = -1; // Value unused. private long lastFramePresentationTimeUs; private long adjustedLastFrameTimeNs; @@ -75,11 +75,10 @@ public final class VideoFrameReleaseTimeHelper { public VideoFrameReleaseTimeHelper(Context context) { this(getDefaultDisplayRefreshRate(context)); this.context = context.getApplicationContext(); - registerDisplayListener(); } private VideoFrameReleaseTimeHelper(double defaultDisplayRefreshRate) { - setSync(defaultDisplayRefreshRate); + useDefaultDisplayVsync = defaultDisplayRefreshRate != DISPLAY_REFRESH_RATE_UNKNOWN; } /** @@ -100,8 +99,8 @@ public final class VideoFrameReleaseTimeHelper { public void disable() { if (useDefaultDisplayVsync) { vsyncSampler.removeObserver(); + unregisterDisplayListener(); } - unregisterDisplayListener(); } private void registerDisplayListener() { @@ -128,15 +127,10 @@ public final class VideoFrameReleaseTimeHelper { private void setSync(double defaultDisplayRefreshRate) { - useDefaultDisplayVsync = defaultDisplayRefreshRate != DISPLAY_REFRESH_RATE_UNKNOWN; if (useDefaultDisplayVsync) { vsyncSampler = VSyncSampler.getInstance(); vsyncDurationNs = (long) (C.NANOS_PER_SECOND / defaultDisplayRefreshRate); vsyncOffsetNs = (vsyncDurationNs * VSYNC_OFFSET_PERCENTAGE) / 100; - } else { - vsyncSampler = null; - vsyncDurationNs = -1; // Value unused. - vsyncOffsetNs = -1; // Value unused. } }