Fix pre-fetch heuristic.

This commit is contained in:
Konstantin Seiler 2019-11-05 23:58:35 +11:00
parent 393df6475e
commit 4a611d9af3

View file

@ -460,7 +460,6 @@ impl Future for AudioFileFetchDataReceiver {
fn poll(&mut self) -> Poll<(), ()> { fn poll(&mut self) -> Poll<(), ()> {
loop { loop {
trace!("Looping data_receiver for offset {} and length {}", self.data_offset, self.request_length);
match self.data_rx.poll() { match self.data_rx.poll() {
Ok(Async::Ready(Some(data))) => { Ok(Async::Ready(Some(data))) => {
if self.measure_ping_time { if self.measure_ping_time {
@ -733,7 +732,7 @@ impl AudioFileFetch {
full = true; full = true;
} }
trace!("Downloaded: {} Requested: {}", download_status.downloaded, download_status.requested); trace!("Downloaded: {} Requested: {}", download_status.downloaded, download_status.requested.minus(&download_status.downloaded));
drop(download_status); drop(download_status);
} }
@ -829,7 +828,8 @@ impl Future for AudioFileFetch {
let ping_time = self.shared.ping_time_ms.load(atomic::Ordering::Relaxed); let ping_time = self.shared.ping_time_ms.load(atomic::Ordering::Relaxed);
if bytes_pending < 2 * ping_time * self.streaming_data_rate { if bytes_pending < 2 * ping_time * self.streaming_data_rate / 1000 {
trace!("Prefetching more data. pending bytes({}) < 2 * ping time ({}) * data rate({}) / 1000.",bytes_pending, ping_time, self.streaming_data_rate);
self.pre_fetch_more_data(); self.pre_fetch_more_data();
} }
} }