Commit fb2dbf2c by tonihei Committed by Oliver Woodman

Use Clock in DefaultBandwidthMeter instead of SystemClock.

The default behaviour stays the same as Clock.DEFAULT == SystemClock. And it
enables bandwidth measurements in tests with simulated clocks.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=162350852
parent 3ff9695a
......@@ -16,8 +16,8 @@
package com.google.android.exoplayer2.upstream;
import android.os.Handler;
import android.os.SystemClock;
import com.google.android.exoplayer2.util.Assertions;
import com.google.android.exoplayer2.util.Clock;
import com.google.android.exoplayer2.util.SlidingPercentile;
/**
......@@ -37,6 +37,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
private final Handler eventHandler;
private final EventListener eventListener;
private final SlidingPercentile slidingPercentile;
private final Clock clock;
private int streamCount;
private long sampleStartTimeMs;
......@@ -55,9 +56,15 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
}
public DefaultBandwidthMeter(Handler eventHandler, EventListener eventListener, int maxWeight) {
this(eventHandler, eventListener, maxWeight, Clock.DEFAULT);
}
public DefaultBandwidthMeter(Handler eventHandler, EventListener eventListener, int maxWeight,
Clock clock) {
this.eventHandler = eventHandler;
this.eventListener = eventListener;
this.slidingPercentile = new SlidingPercentile(maxWeight);
this.clock = clock;
bitrateEstimate = NO_ESTIMATE;
}
......@@ -69,7 +76,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
@Override
public synchronized void onTransferStart(Object source, DataSpec dataSpec) {
if (streamCount == 0) {
sampleStartTimeMs = SystemClock.elapsedRealtime();
sampleStartTimeMs = clock.elapsedRealtime();
}
streamCount++;
}
......@@ -82,7 +89,7 @@ public final class DefaultBandwidthMeter implements BandwidthMeter, TransferList
@Override
public synchronized void onTransferEnd(Object source) {
Assertions.checkState(streamCount > 0);
long nowMs = SystemClock.elapsedRealtime();
long nowMs = clock.elapsedRealtime();
int sampleElapsedTimeMs = (int) (nowMs - sampleStartTimeMs);
totalElapsedTimeMs += sampleElapsedTimeMs;
totalBytesTransferred += sampleBytesTransferred;
......
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