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

Issue 2849443003: Fix errors in destruction sequence of GpuVideoEncodeAccelerator::OnWillDestroyStub() (Closed)

Created:
3 years, 7 months ago by emircan
Modified:
3 years, 7 months ago
CC:
chromium-reviews, posciak+watch_chromium.org, piman+watch_chromium.org, feature-media-reviews_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix errors in destruction sequence of GpuVideoEncodeAccelerator::OnWillDestroyStub() On Windows, we can use GPU IO thread to filter some messages for GPUVEA. In that case, while GpuVideoEncodeAccelerator::OnWillDestroyStub() is running on main thread, GpuVideoEncodeAccelerator::OnEncodeFrameCreated() can run on IO thread. If |encoder_| is reset on main thread and accessed on IO thread, we see the crashes listed on the bug. This CL solves the issue by: - Checking |filter_removed_| which is signaled on IO thread before deciding to continue with encode GpuVideoEncodeAccelerator::OnEncodeFrameCreated() on IO thread. - Making sure that |encoder_worker_thread_| tasks are completed before reset. BUG=715759 TEST=Tested AppRTC loopback with H264. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2849443003 Cr-Commit-Position: refs/heads/master@{#468457} Committed: https://chromium.googlesource.com/chromium/src/+/a561de6d59f43481c46e61a34508fa15c5fd2abd

Patch Set 1 #

Total comments: 4

Patch Set 2 : #

Total comments: 2

Patch Set 3 : #

Patch Set 4 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+37 lines, -23 lines) Patch
M media/gpu/ipc/service/gpu_video_encode_accelerator.h View 1 2 3 1 chunk +5 lines, -1 line 0 comments Download
M media/gpu/ipc/service/gpu_video_encode_accelerator.cc View 1 2 9 chunks +32 lines, -22 lines 0 comments Download

Messages

Total messages: 33 (26 generated)
emircan
PTAL.
3 years, 7 months ago (2017-04-28 00:28:45 UTC) #14
sandersd (OOO until July 31)
https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc File media/gpu/ipc/service/gpu_video_encode_accelerator.cc (right): https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc#newcode328 media/gpu/ipc/service/gpu_video_encode_accelerator.cc:328: weak_this_factory_for_encoder_worker_.GetWeakPtr())); This WeakPtrFactory should probably not be vending outside ...
3 years, 7 months ago (2017-04-28 00:47:44 UTC) #15
emircan
https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc File media/gpu/ipc/service/gpu_video_encode_accelerator.cc (right): https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc#newcode328 media/gpu/ipc/service/gpu_video_encode_accelerator.cc:328: weak_this_factory_for_encoder_worker_.GetWeakPtr())); On 2017/04/28 00:47:44, sandersd wrote: > This WeakPtrFactory ...
3 years, 7 months ago (2017-04-28 01:11:10 UTC) #16
sandersd (OOO until July 31)
lgtm https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc File media/gpu/ipc/service/gpu_video_encode_accelerator.cc (right): https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc#newcode328 media/gpu/ipc/service/gpu_video_encode_accelerator.cc:328: weak_this_factory_for_encoder_worker_.GetWeakPtr())); > - |weak_this_factory_| to post either main ...
3 years, 7 months ago (2017-04-28 18:22:45 UTC) #18
emircan
https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc File media/gpu/ipc/service/gpu_video_encode_accelerator.cc (right): https://codereview.chromium.org/2849443003/diff/40001/media/gpu/ipc/service/gpu_video_encode_accelerator.cc#newcode328 media/gpu/ipc/service/gpu_video_encode_accelerator.cc:328: weak_this_factory_for_encoder_worker_.GetWeakPtr())); On 2017/04/28 18:22:44, sandersd wrote: > > - ...
3 years, 7 months ago (2017-04-29 00:10:47 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2849443003/120001
3 years, 7 months ago (2017-05-01 17:14:50 UTC) #30
commit-bot: I haz the power
3 years, 7 months ago (2017-05-01 22:28:36 UTC) #33
Message was sent while issue was closed.
Committed patchset #4 (id:120001) as
https://chromium.googlesource.com/chromium/src/+/a561de6d59f43481c46e61a34508...

Powered by Google App Engine
This is Rietveld 408576698