diff options
author | dongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-16 18:19:13 +0000 |
---|---|---|
committer | dongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-16 18:19:13 +0000 |
commit | 0ca4d53d24fc212328868d468a93f480d865a6bb (patch) | |
tree | 9aa4feb9a719434f83e646e062760e8cfc7366a8 /media | |
parent | cd248f04fb51b6b0d73970af661680c8bd1ae869 (diff) | |
download | chromium_src-0ca4d53d24fc212328868d468a93f480d865a6bb.zip chromium_src-0ca4d53d24fc212328868d468a93f480d865a6bb.tar.gz chromium_src-0ca4d53d24fc212328868d468a93f480d865a6bb.tar.bz2 |
gpu media: Don't call unnecessary glFlush() and glInsertSyncPoint() on creating textures.
RendererGpuVideoAcceleratorFactory uses the same gl context to
GpuVideoDecodeAccelerator in the gpu process, because we make
GpuVideoDecodeAccelerator using RendererGpuVideoAcceleratorFactory.
Currently, we make textures using RendererGpuVideoAcceleratorFactory and then
send them to GpuVideoDecodeAccelerator on the gpu process. So we don't need to
call glFlush() and glInsertSyncPoint() because both use the same gl context.
BUG=350925
Review URL: https://codereview.chromium.org/196653005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257376 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/cast/test/fake_gpu_video_accelerator_factories.cc | 4 | ||||
-rw-r--r-- | media/cast/test/fake_gpu_video_accelerator_factories.h | 10 | ||||
-rw-r--r-- | media/filters/gpu_video_accelerator_factories.h | 10 | ||||
-rw-r--r-- | media/filters/gpu_video_decoder.cc | 2 | ||||
-rw-r--r-- | media/filters/mock_gpu_video_accelerator_factories.h | 10 |
5 files changed, 17 insertions, 19 deletions
diff --git a/media/cast/test/fake_gpu_video_accelerator_factories.cc b/media/cast/test/fake_gpu_video_accelerator_factories.cc index 6aef371..9718a56 100644 --- a/media/cast/test/fake_gpu_video_accelerator_factories.cc +++ b/media/cast/test/fake_gpu_video_accelerator_factories.cc @@ -37,13 +37,13 @@ FakeGpuVideoAcceleratorFactories::GetTaskRunner() { return fake_task_runner_; } -uint32 FakeGpuVideoAcceleratorFactories::CreateTextures( +bool FakeGpuVideoAcceleratorFactories::CreateTextures( int32 count, const gfx::Size& size, std::vector<uint32>* texture_ids, std::vector<gpu::Mailbox>* texture_mailboxes, uint32 texture_target) { - return 0; + return false; } scoped_ptr<VideoDecodeAccelerator> diff --git a/media/cast/test/fake_gpu_video_accelerator_factories.h b/media/cast/test/fake_gpu_video_accelerator_factories.h index 72dfbda..ebcadfd 100644 --- a/media/cast/test/fake_gpu_video_accelerator_factories.h +++ b/media/cast/test/fake_gpu_video_accelerator_factories.h @@ -29,11 +29,11 @@ class FakeGpuVideoAcceleratorFactories : public GpuVideoAcceleratorFactories { // // The following functions are no-op. // - virtual uint32 CreateTextures(int32 count, - const gfx::Size& size, - std::vector<uint32>* texture_ids, - std::vector<gpu::Mailbox>* texture_mailboxes, - uint32 texture_target) OVERRIDE; + virtual bool CreateTextures(int32 count, + const gfx::Size& size, + std::vector<uint32>* texture_ids, + std::vector<gpu::Mailbox>* texture_mailboxes, + uint32 texture_target) OVERRIDE; virtual void DeleteTexture(uint32 texture_id) OVERRIDE {} diff --git a/media/filters/gpu_video_accelerator_factories.h b/media/filters/gpu_video_accelerator_factories.h index 18daa30..36fa75d 100644 --- a/media/filters/gpu_video_accelerator_factories.h +++ b/media/filters/gpu_video_accelerator_factories.h @@ -47,11 +47,11 @@ class MEDIA_EXPORT GpuVideoAcceleratorFactories virtual scoped_ptr<VideoEncodeAccelerator> CreateVideoEncodeAccelerator() = 0; // Allocate & delete native textures. - virtual uint32 CreateTextures(int32 count, - const gfx::Size& size, - std::vector<uint32>* texture_ids, - std::vector<gpu::Mailbox>* texture_mailboxes, - uint32 texture_target) = 0; + virtual bool CreateTextures(int32 count, + const gfx::Size& size, + std::vector<uint32>* texture_ids, + std::vector<gpu::Mailbox>* texture_mailboxes, + uint32 texture_target) = 0; virtual void DeleteTexture(uint32 texture_id) = 0; virtual void WaitSyncPoint(uint32 sync_point) = 0; diff --git a/media/filters/gpu_video_decoder.cc b/media/filters/gpu_video_decoder.cc index 5484521..b3e06f8 100644 --- a/media/filters/gpu_video_decoder.cc +++ b/media/filters/gpu_video_decoder.cc @@ -363,8 +363,6 @@ void GpuVideoDecoder::ProvidePictureBuffers(uint32 count, std::vector<uint32> texture_ids; std::vector<gpu::Mailbox> texture_mailboxes; decoder_texture_target_ = texture_target; - // Discards the sync point returned here since PictureReady will imply that - // the produce has already happened, and the texture is ready for use. if (!factories_->CreateTextures(count, size, &texture_ids, diff --git a/media/filters/mock_gpu_video_accelerator_factories.h b/media/filters/mock_gpu_video_accelerator_factories.h index 2969d28..86b9a16 100644 --- a/media/filters/mock_gpu_video_accelerator_factories.h +++ b/media/filters/mock_gpu_video_accelerator_factories.h @@ -33,11 +33,11 @@ class MockGpuVideoAcceleratorFactories : public GpuVideoAcceleratorFactories { MOCK_METHOD0(DoCreateVideoEncodeAccelerator, VideoEncodeAccelerator*()); MOCK_METHOD5(CreateTextures, - uint32(int32 count, - const gfx::Size& size, - std::vector<uint32>* texture_ids, - std::vector<gpu::Mailbox>* texture_mailboxes, - uint32 texture_target)); + bool(int32 count, + const gfx::Size& size, + std::vector<uint32>* texture_ids, + std::vector<gpu::Mailbox>* texture_mailboxes, + uint32 texture_target)); MOCK_METHOD1(DeleteTexture, void(uint32 texture_id)); MOCK_METHOD1(WaitSyncPoint, void(uint32 sync_point)); MOCK_METHOD3(ReadPixels, |