Chromium Code Reviews| Index: media/filters/source_buffer_stream.cc |
| diff --git a/media/filters/source_buffer_stream.cc b/media/filters/source_buffer_stream.cc |
| index 18a08b7501f4b640514ffffdc2845b03437aaacb..243a708e5b7ec70b1ab5e35eddee2a8421b4890a 100644 |
| --- a/media/filters/source_buffer_stream.cc |
| +++ b/media/filters/source_buffer_stream.cc |
| @@ -594,30 +594,30 @@ void SourceBufferStream::SetConfigIds(const BufferQueue& buffers) { |
| void SourceBufferStream::GarbageCollectIfNeeded() { |
|
ddorwin
2015/06/17 21:02:16
This implementation detail (limits and GC tied to
servolk
2015/06/17 22:13:48
Per MSE spec (https://w3c.github.io/media-source/#
ddorwin
2015/06/20 01:50:26
Right, and a SourceBuffer can have multiple stream
|
| // Compute size of |ranges_|. |
| - int ranges_size = 0; |
| + size_t ranges_size = 0; |
| for (RangeList::iterator itr = ranges_.begin(); itr != ranges_.end(); ++itr) |
| ranges_size += (*itr)->size_in_bytes(); |
| // Return if we're under or at the memory limit. |
| - if (ranges_size <= memory_limit_) |
| + if (ranges_size <= GetMemoryLimit()) |
| return; |
| - int bytes_to_free = ranges_size - memory_limit_; |
| + size_t bytes_to_free = ranges_size - GetMemoryLimit(); |
| DVLOG(2) << __FUNCTION__ << " " << GetStreamTypeName() << ": Before GC" |
| << " ranges_size=" << ranges_size |
| << " ranges_=" << RangesToString(ranges_) |
| - << " memory_limit_=" << memory_limit_; |
| + << " GetMemoryLimit()=" << GetMemoryLimit(); |
| // Begin deleting after the last appended buffer. |
| - int bytes_freed = FreeBuffersAfterLastAppended(bytes_to_free); |
| + size_t bytes_freed = FreeBuffersAfterLastAppended(bytes_to_free); |
| // Begin deleting from the front. |
| - if (bytes_to_free - bytes_freed > 0) |
| + if (bytes_freed < bytes_to_free) |
| bytes_freed += FreeBuffers(bytes_to_free - bytes_freed, false); |
| // Begin deleting from the back. |
| - if (bytes_to_free - bytes_freed > 0) |
| + if (bytes_freed < bytes_to_free) |
| bytes_freed += FreeBuffers(bytes_to_free - bytes_freed, true); |
| DVLOG(2) << __FUNCTION__ << " " << GetStreamTypeName() << ": After GC" |