Chromium Code Reviews| Index: media/blink/multibuffer_data_source.cc |
| diff --git a/media/blink/multibuffer_data_source.cc b/media/blink/multibuffer_data_source.cc |
| index 4abd3d8d157a1b87e0ce6b5dc01ad3375c8e9beb..43d1dd31ead4664275acc36be40cbea904f03b0f 100644 |
| --- a/media/blink/multibuffer_data_source.cc |
| +++ b/media/blink/multibuffer_data_source.cc |
| @@ -567,16 +567,20 @@ void MultibufferDataSource::UpdateBufferSizes() { |
| int64_t preload = clamp(kTargetSecondsBufferedAhead * bytes_per_second, |
| kMinBufferPreload, kMaxBufferPreload); |
| + int64_t preload_high = preload + kPreloadHighExtra; |
| int64_t back_buffer = clamp(kTargetSecondsBufferedBehind * bytes_per_second, |
| - kMinBufferPreload, kMaxBufferPreload); |
| - int64_t pin_forwards = kMaxBufferSize - back_buffer; |
| - DCHECK_LE(preload + kPreloadHighExtra, pin_forwards); |
| - reader_->SetMaxBuffer(back_buffer, preload + kPreloadHighExtra); |
| + kMinBufferPreload, kMaxBufferSize - preload_high); |
|
DaleCurtis
2016/05/04 21:39:32
Seems like the subtraction could go negative?
hubbe
2016/05/04 21:55:06
Adding a static assert to make sure it cannot.
|
| + int64_t buffer_size = |
| + std::min((kTargetSecondsBufferedAhead + kTargetSecondsBufferedBehind) * |
| + bytes_per_second, |
| + kMaxBufferSize); |
| + reader_->SetMaxBuffer(buffer_size); |
| + reader_->SetPinRange(back_buffer, kMaxBufferPreload); |
| if (preload_ == METADATA) { |
| reader_->SetPreload(0, 0); |
| } else { |
| - reader_->SetPreload(preload + kPreloadHighExtra, preload); |
| + reader_->SetPreload(preload_high, preload); |
| } |
| } |