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

Unified Diff: content/common/gpu/media/android_video_decode_accelerator.cc

Issue 1207043002: Introduce a client minimum picture pool size (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months 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: content/common/gpu/media/android_video_decode_accelerator.cc
diff --git a/content/common/gpu/media/android_video_decode_accelerator.cc b/content/common/gpu/media/android_video_decode_accelerator.cc
index 06d59863d049cacd6c03b22a0ebbf0e908d9755e..f420439d31b7d261aa89d00c578524a88ae992fc 100644
--- a/content/common/gpu/media/android_video_decode_accelerator.cc
+++ b/content/common/gpu/media/android_video_decode_accelerator.cc
@@ -70,6 +70,7 @@ AndroidVideoDecodeAccelerator::AndroidVideoDecodeAccelerator(
const base::WeakPtr<gpu::gles2::GLES2Decoder> decoder,
const base::Callback<bool(void)>& make_context_current)
: client_(NULL),
+ num_picture_buffers_(kNumPictureBuffers),
make_context_current_(make_context_current),
codec_(media::kCodecH264),
state_(NO_ERROR),
@@ -83,11 +84,14 @@ AndroidVideoDecodeAccelerator::~AndroidVideoDecodeAccelerator() {
}
bool AndroidVideoDecodeAccelerator::Initialize(media::VideoCodecProfile profile,
+ uint32 min_picture_count,
Client* client) {
DCHECK(!media_codec_);
DCHECK(thread_checker_.CalledOnValidThread());
client_ = client;
+ num_picture_buffers_ = std::max(min_picture_count,
+ static_cast<uint32>(kNumPictureBuffers));
if (profile == media::VP8PROFILE_ANY) {
codec_ = media::kCodecVP8;
@@ -415,7 +419,7 @@ void AndroidVideoDecodeAccelerator::AssignPictureBuffers(
dismissed_picture_ids_.erase(id);
}
- RETURN_ON_FAILURE(output_picture_buffers_.size() == kNumPictureBuffers,
+ RETURN_ON_FAILURE(output_picture_buffers_.size() == num_picture_buffers_,
"Invalid picture buffers were passed.",
INVALID_ARGUMENT);
@@ -528,7 +532,7 @@ bool AndroidVideoDecodeAccelerator::CanDecodeOnIOThread() {
}
void AndroidVideoDecodeAccelerator::RequestPictureBuffers() {
- client_->ProvidePictureBuffers(kNumPictureBuffers, size_, GL_TEXTURE_2D);
+ client_->ProvidePictureBuffers(num_picture_buffers_, size_, GL_TEXTURE_2D);
}
void AndroidVideoDecodeAccelerator::NotifyPictureReady(

Powered by Google App Engine
This is Rietveld 408576698