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" |