Refactor WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() logic |
|||
Issue descriptionThere are some problems with this logic since the refactor of passing frames to IO thread: - While WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() is running on the main thread, WebMediaPlayerMSCompositor::EnqueueFrame() can be called on IO thread. As a result, the copied frame can be overwritten. We should serialize this. - We do not need to hold onto the |current_frame_lock_| while making a copy. We can release and let other getters/setters work in the meantime.
,
May 15 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/44cdf9e94c51e582a375fa8dfccbf4518898d63a commit 44cdf9e94c51e582a375fa8dfccbf4518898d63a Author: emircan <emircan@chromium.org> Date: Mon May 15 18:57:45 2017 Refactor WebMediaPlayerMSCompositor::ReplaceCurrentFrameWithACopy() logic This CL solves synchornization issues with this logic by bouncing ReplaceCurrentFrameWithACopy() calls off of IO thread so that they are scheduled after the last frame before pause is received. BUG= 715227 TEST=WebMediaPlayerMSTest.PlayThenPause* tests pass. Review-Url: https://codereview.chromium.org/2859993002 Cr-Commit-Position: refs/heads/master@{#471850} [modify] https://crrev.com/44cdf9e94c51e582a375fa8dfccbf4518898d63a/content/renderer/media/webmediaplayer_ms.cc [modify] https://crrev.com/44cdf9e94c51e582a375fa8dfccbf4518898d63a/content/renderer/media/webmediaplayer_ms_compositor.cc [modify] https://crrev.com/44cdf9e94c51e582a375fa8dfccbf4518898d63a/content/renderer/media/webmediaplayer_ms_compositor.h
,
May 15 2017
,
May 31 2017
|
|||
►
Sign in to add a comment |
|||
Comment 1 by emir...@chromium.org
, Apr 25 2017