Eliminate video capture thread in renderer
The main motivation of this change is to remove the video capture thread in the renderer. All users of a video capture device already handles the video frame on their thread. There is no need to call the clients with an additional thread. Summary of this change: * Video capture thread eliminated VideoCaptureImpl now runs on the IO thread. Clients are called on the IO thread. * Simplified VideoCaptureImplManager We still need to keep this object for the purpose of sharing a VideoCaptureImpl object with multiple clients. It should own these objects and maintain the usage count. A couple clean up items are done on this class: * It doesn't own the video capture thread now. * It is now a render thread only object. * It maintains refcount of a VideoCaptureImpl explicitly. * It is no longer refcounted. * Clients access it through RenderThreadImpl. Which ensures usage is on the render thread. * New VideoCaptureHandle class Object of this class is returned by VideoCaptureImplManager to give access to a media::VideoCapture object. It is purely a wrapper and helps to do refcounting on the render thread. Testing: Added unit tests for VideoCaptureImplManager to test refcounting. Also updated unit test for VideoCaptureImpl due to the threading changes. Review URL: https://codereview.chromium.org/120893002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244074 0039d316-1c4b-4281-b951-d872f2087c98
Showing
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment