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

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: f2a9ccb5 Rebase, posciak@ comments. 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 30a974bbb891c1c80f3e988a1c335ab6f9cc534c..4b2c49e7d19702bd6ec446bb937dedc8063d02d7 100644
--- a/content/common/gpu/media/vaapi_video_decode_accelerator.cc
+++ b/content/common/gpu/media/vaapi_video_decode_accelerator.cc
@@ -235,15 +235,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() {
@@ -318,9 +319,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;
}
@@ -895,6 +893,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