Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(691)

Side by Side Diff: content/common/gpu/media/gpu_video_decode_accelerator.h

Issue 1134113002: content/common: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix CrOS build. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ 5 #ifndef CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_
6 #define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ 6 #define CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_
7 7
8 #include <map> 8 #include <map>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/memory/shared_memory.h" 13 #include "base/memory/shared_memory.h"
14 #include "base/synchronization/waitable_event.h" 14 #include "base/synchronization/waitable_event.h"
15 #include "content/common/gpu/gpu_command_buffer_stub.h" 15 #include "content/common/gpu/gpu_command_buffer_stub.h"
16 #include "gpu/command_buffer/service/texture_manager.h" 16 #include "gpu/command_buffer/service/texture_manager.h"
17 #include "gpu/config/gpu_info.h" 17 #include "gpu/config/gpu_info.h"
18 #include "ipc/ipc_listener.h" 18 #include "ipc/ipc_listener.h"
19 #include "ipc/ipc_sender.h" 19 #include "ipc/ipc_sender.h"
20 #include "media/video/video_decode_accelerator.h" 20 #include "media/video/video_decode_accelerator.h"
21 #include "ui/gfx/geometry/size.h" 21 #include "ui/gfx/geometry/size.h"
22 22
23 namespace base {
24 class MessageLoopProxy;
25 }
26
27 namespace content { 23 namespace content {
28 24
29 class GpuVideoDecodeAccelerator 25 class GpuVideoDecodeAccelerator
30 : public IPC::Listener, 26 : public IPC::Listener,
31 public IPC::Sender, 27 public IPC::Sender,
32 public media::VideoDecodeAccelerator::Client, 28 public media::VideoDecodeAccelerator::Client,
33 public GpuCommandBufferStub::DestructionObserver { 29 public GpuCommandBufferStub::DestructionObserver {
34 public: 30 public:
35 // Each of the arguments to the constructor must outlive this object. 31 // Each of the arguments to the constructor must outlive this object.
36 // |stub->decoder()| will be made current around any operation that touches 32 // |stub->decoder()| will be made current around any operation that touches
37 // the underlying VDA so that it can make GL calls safely. 33 // the underlying VDA so that it can make GL calls safely.
38 GpuVideoDecodeAccelerator( 34 GpuVideoDecodeAccelerator(
39 int32 host_route_id, 35 int32 host_route_id,
40 GpuCommandBufferStub* stub, 36 GpuCommandBufferStub* stub,
41 const scoped_refptr<base::MessageLoopProxy>& io_message_loop); 37 const scoped_refptr<base::SingleThreadTaskRunner>& io_task_runner);
42 38
43 // IPC::Listener implementation. 39 // IPC::Listener implementation.
44 bool OnMessageReceived(const IPC::Message& message) override; 40 bool OnMessageReceived(const IPC::Message& message) override;
45 41
46 // media::VideoDecodeAccelerator::Client implementation. 42 // media::VideoDecodeAccelerator::Client implementation.
47 void ProvidePictureBuffers(uint32 requested_num_of_buffers, 43 void ProvidePictureBuffers(uint32 requested_num_of_buffers,
48 const gfx::Size& dimensions, 44 const gfx::Size& dimensions,
49 uint32 texture_target) override; 45 uint32 texture_target) override;
50 void DismissPictureBuffer(int32 picture_buffer_id) override; 46 void DismissPictureBuffer(int32 picture_buffer_id) override;
51 void PictureReady(const media::Picture& picture) override; 47 void PictureReady(const media::Picture& picture) override;
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // The texture target as requested by ProvidePictureBuffers(). 129 // The texture target as requested by ProvidePictureBuffers().
134 uint32 texture_target_; 130 uint32 texture_target_;
135 131
136 // The message filter to run VDA::Decode on IO thread if VDA supports it. 132 // The message filter to run VDA::Decode on IO thread if VDA supports it.
137 scoped_refptr<MessageFilter> filter_; 133 scoped_refptr<MessageFilter> filter_;
138 134
139 // Used to wait on for |filter_| to be removed, before we can safely 135 // Used to wait on for |filter_| to be removed, before we can safely
140 // destroy the VDA. 136 // destroy the VDA.
141 base::WaitableEvent filter_removed_; 137 base::WaitableEvent filter_removed_;
142 138
143 // GPU child message loop. 139 // GPU child thread task runner.
144 const scoped_refptr<base::MessageLoopProxy> child_message_loop_; 140 const scoped_refptr<base::SingleThreadTaskRunner> child_task_runner_;
145 141
146 // GPU IO message loop. 142 // GPU IO thread task runner.
147 const scoped_refptr<base::MessageLoopProxy> io_message_loop_; 143 const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
148 144
149 // Weak pointers will be invalidated on IO thread. 145 // Weak pointers will be invalidated on IO thread.
150 base::WeakPtrFactory<Client> weak_factory_for_io_; 146 base::WeakPtrFactory<Client> weak_factory_for_io_;
151 147
152 // Protects |uncleared_textures_| when DCHECK is on. This is for debugging 148 // Protects |uncleared_textures_| when DCHECK is on. This is for debugging
153 // only. We don't want to hold a lock on IO thread. When DCHECK is off, 149 // only. We don't want to hold a lock on IO thread. When DCHECK is off,
154 // |uncleared_textures_| is only accessed from the child thread. 150 // |uncleared_textures_| is only accessed from the child thread.
155 base::Lock debug_uncleared_textures_lock_; 151 base::Lock debug_uncleared_textures_lock_;
156 152
157 // A map from picture buffer ID to TextureRef that have not been cleared. 153 // A map from picture buffer ID to TextureRef that have not been cleared.
158 std::map<int32, scoped_refptr<gpu::gles2::TextureRef> > uncleared_textures_; 154 std::map<int32, scoped_refptr<gpu::gles2::TextureRef> > uncleared_textures_;
159 155
160 DISALLOW_IMPLICIT_CONSTRUCTORS(GpuVideoDecodeAccelerator); 156 DISALLOW_IMPLICIT_CONSTRUCTORS(GpuVideoDecodeAccelerator);
161 }; 157 };
162 158
163 } // namespace content 159 } // namespace content
164 160
165 #endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_ 161 #endif // CONTENT_COMMON_GPU_MEDIA_GPU_VIDEO_DECODE_ACCELERATOR_H_
OLDNEW
« no previous file with comments | « content/common/gpu/media/fake_video_decode_accelerator.cc ('k') | content/common/gpu/media/gpu_video_decode_accelerator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698