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

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

Issue 185403020: Make VEA client of command buffer; move sync. IPC to VDA/VEA::Initialize() (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 56683e7a Rebase. Created 6 years, 9 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/vaapi_video_decode_accelerator.cc
diff --git a/content/common/gpu/media/vaapi_video_decode_accelerator.cc b/content/common/gpu/media/vaapi_video_decode_accelerator.cc
index 79860d5b60dc1190c7046da266eddec104a5c922..05a2048c5ca32c1499155ff2b89912e1be474ae4 100644
--- a/content/common/gpu/media/vaapi_video_decode_accelerator.cc
+++ b/content/common/gpu/media/vaapi_video_decode_accelerator.cc
@@ -244,15 +244,16 @@ VaapiVideoDecodeAccelerator::VaapiVideoDecodeAccelerator(
input_ready_(&lock_),
surfaces_available_(&lock_),
message_loop_(base::MessageLoop::current()),
- weak_this_(base::AsWeakPtr(this)),
- va_surface_release_cb_(media::BindToCurrentLoop(base::Bind(
- &VaapiVideoDecodeAccelerator::RecycleVASurfaceID, weak_this_))),
decoder_thread_("VaapiDecoderThread"),
num_frames_at_client_(0),
num_stream_bufs_at_decoder_(0),
finish_flush_pending_(false),
awaiting_va_surfaces_recycle_(false),
- requested_num_pics_(0) {
+ requested_num_pics_(0),
+ weak_this_factory_(this) {
+ weak_this_ = weak_this_factory_.GetWeakPtr();
+ va_surface_release_cb_ = media::BindToCurrentLoop(
+ base::Bind(&VaapiVideoDecodeAccelerator::RecycleVASurfaceID, weak_this_));
}
VaapiVideoDecodeAccelerator::~VaapiVideoDecodeAccelerator() {
@@ -327,9 +328,6 @@ bool VaapiVideoDecodeAccelerator::Initialize(media::VideoCodecProfile profile,
decoder_thread_proxy_ = decoder_thread_.message_loop_proxy();
state_ = kIdle;
-
- message_loop_->PostTask(FROM_HERE, base::Bind(
- &Client::NotifyInitializeDone, client_));
return true;
}
@@ -904,6 +902,7 @@ void VaapiVideoDecodeAccelerator::Cleanup() {
state_ = kDestroying;
client_ptr_factory_.reset();
+ weak_this_factory_.InvalidateWeakPtrs();
{
base::AutoUnlock auto_unlock(lock_);

Powered by Google App Engine
This is Rietveld 408576698