summaryrefslogtreecommitdiffstats
path: root/media/cast/cast_sender_impl.cc
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-22 03:20:25 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-22 03:20:25 +0000
commitaed4fd65e2faeefe32c6b139a3f1e4047f137ae1 (patch)
tree2013ef267a30c6933d64991f6626eac1e5959c4c /media/cast/cast_sender_impl.cc
parentdb0545b0baa94fd24c8d06824dd90bbccd36dce2 (diff)
downloadchromium_src-aed4fd65e2faeefe32c6b139a3f1e4047f137ae1.zip
chromium_src-aed4fd65e2faeefe32c6b139a3f1e4047f137ae1.tar.gz
chromium_src-aed4fd65e2faeefe32c6b139a3f1e4047f137ae1.tar.bz2
Cast: Enable use of VideoEncodeAccelerator for hardware video encoding
Cast streaming library is currently using GpuVideoAcceleratorFactories as the interface to access a VideoEncodeAccelerator. This interface is not actually correct since Content API in Chrome doesn't provide that. Moreover GpuVideoAcceleratorFactories also covers accelerated video decoding which is not needed for a cast sender. This code removes the use of GpuVideoAcceleratorFactories. It is replaced by two callbacks. One for allocating a VideoEncodeAccelerator and the second one allocates base::SharedMemory to store output data. BUG=354267 Review URL: https://codereview.chromium.org/207593002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258762 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/cast/cast_sender_impl.cc')
-rw-r--r--media/cast/cast_sender_impl.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/cast/cast_sender_impl.cc b/media/cast/cast_sender_impl.cc
index 7a60ffc..0b5a2ac 100644
--- a/media/cast/cast_sender_impl.cc
+++ b/media/cast/cast_sender_impl.cc
@@ -113,14 +113,16 @@ void CastSenderImpl::InitializeAudio(
void CastSenderImpl::InitializeVideo(
const VideoSenderConfig& video_config,
const CastInitializationCallback& cast_initialization_cb,
- const scoped_refptr<GpuVideoAcceleratorFactories>& gpu_factories) {
+ const CreateVideoEncodeAcceleratorCallback& create_vea_cb,
+ const CreateVideoEncodeMemoryCallback& create_video_encode_mem_cb) {
DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
CHECK(video_config.use_external_encoder ||
cast_environment_->HasVideoThread());
video_sender_.reset(new VideoSender(cast_environment_,
video_config,
- gpu_factories,
+ create_vea_cb,
+ create_video_encode_mem_cb,
cast_initialization_cb,
transport_sender_));