summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authordongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-16 18:19:13 +0000
committerdongseong.hwang@intel.com <dongseong.hwang@intel.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-16 18:19:13 +0000
commit0ca4d53d24fc212328868d468a93f480d865a6bb (patch)
tree9aa4feb9a719434f83e646e062760e8cfc7366a8 /media
parentcd248f04fb51b6b0d73970af661680c8bd1ae869 (diff)
downloadchromium_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.cc4
-rw-r--r--media/cast/test/fake_gpu_video_accelerator_factories.h10
-rw-r--r--media/filters/gpu_video_accelerator_factories.h10
-rw-r--r--media/filters/gpu_video_decoder.cc2
-rw-r--r--media/filters/mock_gpu_video_accelerator_factories.h10
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,