Chromium Code Reviews| 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 704f7f2257382e8536d9cf894342e03bce46b3c0..3bf69ad7712bc9efe2842c9d4d8cb86f56bc82a9 100644 |
| --- a/content/common/gpu/media/vaapi_video_decode_accelerator.cc |
| +++ b/content/common/gpu/media/vaapi_video_decode_accelerator.cc |
| @@ -729,8 +729,8 @@ void VaapiVideoDecodeAccelerator::AssignPictureBuffers( |
| << " to texture id: " << buffers[i].texture_id() |
| << " VASurfaceID: " << va_surface_ids[i]; |
| - linked_ptr<VaapiPicture> picture(VaapiPicture::CreatePicture( |
| - vaapi_wrapper_.get(), make_context_current_, buffers[i].id(), |
| + scoped_refptr<VaapiPicture> picture(VaapiPicture::CreatePicture( |
| + vaapi_wrapper_, make_context_current_, buffers[i].id(), |
| buffers[i].texture_id(), requested_pic_size_)); |
| scoped_refptr<gl::GLImage> image = picture->GetImageToBind(); |
| @@ -930,6 +930,8 @@ void VaapiVideoDecodeAccelerator::Cleanup() { |
| client_ptr_factory_.reset(); |
| weak_this_factory_.InvalidateWeakPtrs(); |
| + pictures_.clear(); |
|
kalyank
2015/11/14 10:42:06
I have played around with this a bit and issue is
Pawel Osciak
2015/11/16 04:24:35
If there are any references to VaapiDrmPicture bei
william.xie1
2015/11/16 08:07:26
Done.
william.xie1
2015/11/16 08:07:26
Done.
kalyank
2015/11/18 00:21:43
We want to ensure VaapiDrmPicture is alive while a
|
| + vaapi_wrapper_ = nullptr; |
| // Signal all potential waiters on the decoder_thread_, let them early-exit, |
| // as we've just moved to the kDestroying state, and wait for all tasks |
| @@ -948,6 +950,7 @@ void VaapiVideoDecodeAccelerator::Destroy() { |
| DCHECK_EQ(message_loop_, base::MessageLoop::current()); |
| Cleanup(); |
| delete this; |
| + LOG(WARNING) << "!!!!!!!!!!!!!!!qxie2:" << __FUNCTION__; |
| } |
| bool VaapiVideoDecodeAccelerator::CanDecodeOnIOThread() { |