summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser_process_impl_unittest.cc
diff options
context:
space:
mode:
authormcasas <mcasas@chromium.org>2015-03-06 12:37:59 -0800
committerCommit bot <commit-bot@chromium.org>2015-03-06 20:39:07 +0000
commitdce2e0b5d89ebcc00482fe95494c9c2163d2f463 (patch)
tree76ce31438923270d93f5cf22bbc3aead96160c26 /chrome/browser/browser_process_impl_unittest.cc
parent80e90348ac7fe33d12412f735a3d1421e9355346 (diff)
downloadchromium_src-dce2e0b5d89ebcc00482fe95494c9c2163d2f463.zip
chromium_src-dce2e0b5d89ebcc00482fe95494c9c2163d2f463.tar.gz
chromium_src-dce2e0b5d89ebcc00482fe95494c9c2163d2f463.tar.bz2
[EXPERIMENTAL] Video Capture: Wrap captured frames in GpuMemoryBuffer allowing for zero-copy
Capture data flow follows. VCTextureWrapper is a new class. Situation before this CL: +--------------------------+ | VideoCapture | | Controller | | +--------------+ +-------------------+ | <-------| VideoCapture |<---| VideoCaptureDevice| | | DeviceClient | +-------------------+ | +--------------+ +--------------------------+ Situation after this CL: +------------+ +-------------------+ |VideoCapture| weak | VideoCapture | owns +-------------------+ +Controller |<-----| DeviceClient |<-------| VideoCaptureDevice| +------------+<-+ +-------------------+ +----+-------------------+ | ^ | | | <derives> | | +--------------------+ | +--| VideoCapture |<--+ | TextureWrapper | | +----------------+ | | | TextureWrapper | | | | Delegate | | +-+----------------+-+ VideoCaptureDeviceClient is extracted in a file on its own. No new code is added to this refactoring. VCController instantiates the appropriate VCDClient depending on the appropriate new flag. This is only possible for Linux and Mac. In the future, this "factory method" should auto-detect what to use based on hw support etc.. This clarifies the threading model, since VCC lives only on IO thread, while VCDClient lives in both Capture Thread and whichever thread the device uses for capture (could be Capture Thread again or an OS thread). VCTWrapper overrides VideoCaptureDeviceClient::OnIncomingCapturedData(), and passes the received frame to its TextureWrapperDelegate, that does the wrapping proper. VCTWrapper uses several threads due to GPU specifics. See the class docs for more info. BUG=440843 Review URL: https://codereview.chromium.org/758833002 Cr-Commit-Position: refs/heads/master@{#319490}
Diffstat (limited to 'chrome/browser/browser_process_impl_unittest.cc')
0 files changed, 0 insertions, 0 deletions