From 74dadae520fdcdb8e94fc0706eaa73619cdc8c0a Mon Sep 17 00:00:00 2001 From: tonihei Date: Tue, 17 Jul 2018 02:00:30 -0700 Subject: [PATCH] Make values forwarded to bandwidth listener final again. When notifying the bandwidth listeners of new samples, the forwarded values need to be final to prevent concurrent access. Putting the event forwarding into a separate method ensures the values are final. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=204877650 --- .../exoplayer2/upstream/DefaultBandwidthMeter.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java index 6542c6777e..f8a2d1f9bd 100644 --- a/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java +++ b/library/core/src/main/java/com/google/android/exoplayer2/upstream/DefaultBandwidthMeter.java @@ -226,13 +226,14 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList bitrateEstimate = (long) slidingPercentile.getPercentile(0.5f); } } - eventDispatcher.dispatch( - listener -> - listener.onBandwidthSample( - sampleElapsedTimeMs, sampleBytesTransferred, bitrateEstimate)); + notifyBandwidthSample(sampleElapsedTimeMs, sampleBytesTransferred, bitrateEstimate); if (--streamCount > 0) { sampleStartTimeMs = nowMs; } sampleBytesTransferred = 0; } + + private void notifyBandwidthSample(int elapsedMs, long bytes, long bitrate) { + eventDispatcher.dispatch(listener -> listener.onBandwidthSample(elapsedMs, bytes, bitrate)); + } }