Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: webrtc/common_video/i420_buffer_pool.cc

Issue 2474783005: Replace Check for too many pending frames in I420_buffer_pool with returning nullptr. Added histogr… (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/common_video/i420_buffer_pool.cc
diff --git a/webrtc/common_video/i420_buffer_pool.cc b/webrtc/common_video/i420_buffer_pool.cc
index 630955aff9ddce7748077f3b52fd2d0769fff925..aa9c32ecd04d28a590f909bef3ac31f980260c14 100644
--- a/webrtc/common_video/i420_buffer_pool.cc
+++ b/webrtc/common_video/i420_buffer_pool.cc
@@ -14,10 +14,10 @@
namespace webrtc {
-const size_t I420BufferPool::kMaxNumberOfFramesBeforeCrash = 300;
-
-I420BufferPool::I420BufferPool(bool zero_initialize)
- : zero_initialize_(zero_initialize) {}
+I420BufferPool::I420BufferPool(bool zero_initialize,
+ size_t max_number_of_buffers)
+ : zero_initialize_(zero_initialize),
+ max_number_of_buffers_(max_number_of_buffers) {}
void I420BufferPool::Release() {
buffers_.clear();
@@ -26,8 +26,6 @@ void I420BufferPool::Release() {
rtc::scoped_refptr<I420Buffer> I420BufferPool::CreateBuffer(int width,
int height) {
RTC_DCHECK_RUNS_SERIALIZED(&race_checker_);
- RTC_CHECK_LT(buffers_.size(), kMaxNumberOfFramesBeforeCrash)
- << "I420BufferPool too big.";
// Release buffers with wrong resolution.
for (auto it = buffers_.begin(); it != buffers_.end();) {
if ((*it)->width() != width || (*it)->height() != height)
@@ -44,6 +42,9 @@ rtc::scoped_refptr<I420Buffer> I420BufferPool::CreateBuffer(int width,
if (buffer->HasOneRef())
return buffer;
}
+
+ if (buffers_.size() >= max_number_of_buffers_)
+ return nullptr;
// Allocate new buffer.
rtc::scoped_refptr<PooledI420Buffer> buffer =
new PooledI420Buffer(width, height);
« no previous file with comments | « no previous file | webrtc/common_video/i420_buffer_pool_unittest.cc » ('j') | webrtc/common_video/include/i420_buffer_pool.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698