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

Side by Side Diff: content/renderer/media/android/stream_texture_factory_impl.cc

Issue 1547073003: Switch to standard integer types in content/renderer/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "content/renderer/media/android/stream_texture_factory_impl.h" 5 #include "content/renderer/media/android/stream_texture_factory_impl.h"
6 6
7 #include "base/macros.h"
7 #include "cc/output/context_provider.h" 8 #include "cc/output/context_provider.h"
8 #include "content/common/gpu/client/context_provider_command_buffer.h" 9 #include "content/common/gpu/client/context_provider_command_buffer.h"
9 #include "content/common/gpu/client/gpu_channel_host.h" 10 #include "content/common/gpu/client/gpu_channel_host.h"
10 #include "content/common/gpu/gpu_messages.h" 11 #include "content/common/gpu/gpu_messages.h"
11 #include "content/renderer/gpu/stream_texture_host_android.h" 12 #include "content/renderer/gpu/stream_texture_host_android.h"
12 #include "gpu/command_buffer/client/gles2_interface.h" 13 #include "gpu/command_buffer/client/gles2_interface.h"
13 #include "ui/gfx/geometry/size.h" 14 #include "ui/gfx/geometry/size.h"
14 15
15 namespace content { 16 namespace content {
16 17
17 namespace { 18 namespace {
18 19
19 class StreamTextureProxyImpl : public StreamTextureProxy, 20 class StreamTextureProxyImpl : public StreamTextureProxy,
20 public StreamTextureHost::Listener { 21 public StreamTextureHost::Listener {
21 public: 22 public:
22 explicit StreamTextureProxyImpl(StreamTextureHost* host); 23 explicit StreamTextureProxyImpl(StreamTextureHost* host);
23 ~StreamTextureProxyImpl() override; 24 ~StreamTextureProxyImpl() override;
24 25
25 // StreamTextureProxy implementation: 26 // StreamTextureProxy implementation:
26 void BindToLoop(int32 stream_id, 27 void BindToLoop(int32_t stream_id,
27 cc::VideoFrameProvider::Client* client, 28 cc::VideoFrameProvider::Client* client,
28 scoped_refptr<base::SingleThreadTaskRunner> loop) override; 29 scoped_refptr<base::SingleThreadTaskRunner> loop) override;
29 void Release() override; 30 void Release() override;
30 31
31 // StreamTextureHost::Listener implementation: 32 // StreamTextureHost::Listener implementation:
32 void OnFrameAvailable() override; 33 void OnFrameAvailable() override;
33 void OnMatrixChanged(const float matrix[16]) override; 34 void OnMatrixChanged(const float matrix[16]) override;
34 35
35 private: 36 private:
36 void BindOnThread(int32 stream_id); 37 void BindOnThread(int32_t stream_id);
37 38
38 const scoped_ptr<StreamTextureHost> host_; 39 const scoped_ptr<StreamTextureHost> host_;
39 40
40 // Protects access to |client_| and |loop_|. 41 // Protects access to |client_| and |loop_|.
41 base::Lock lock_; 42 base::Lock lock_;
42 cc::VideoFrameProvider::Client* client_; 43 cc::VideoFrameProvider::Client* client_;
43 scoped_refptr<base::SingleThreadTaskRunner> loop_; 44 scoped_refptr<base::SingleThreadTaskRunner> loop_;
44 45
45 DISALLOW_IMPLICIT_CONSTRUCTORS(StreamTextureProxyImpl); 46 DISALLOW_IMPLICIT_CONSTRUCTORS(StreamTextureProxyImpl);
46 }; 47 };
(...skipping 13 matching lines...) Expand all
60 // Release is analogous to the destructor, so there should be no more external 61 // Release is analogous to the destructor, so there should be no more external
61 // calls to this object in Release. Therefore there is no need to acquire the 62 // calls to this object in Release. Therefore there is no need to acquire the
62 // lock to access |loop_|. 63 // lock to access |loop_|.
63 if (!loop_.get() || loop_->BelongsToCurrentThread() || 64 if (!loop_.get() || loop_->BelongsToCurrentThread() ||
64 !loop_->DeleteSoon(FROM_HERE, this)) { 65 !loop_->DeleteSoon(FROM_HERE, this)) {
65 delete this; 66 delete this;
66 } 67 }
67 } 68 }
68 69
69 void StreamTextureProxyImpl::BindToLoop( 70 void StreamTextureProxyImpl::BindToLoop(
70 int32 stream_id, 71 int32_t stream_id,
71 cc::VideoFrameProvider::Client* client, 72 cc::VideoFrameProvider::Client* client,
72 scoped_refptr<base::SingleThreadTaskRunner> loop) { 73 scoped_refptr<base::SingleThreadTaskRunner> loop) {
73 DCHECK(loop.get()); 74 DCHECK(loop.get());
74 75
75 { 76 {
76 base::AutoLock lock(lock_); 77 base::AutoLock lock(lock_);
77 DCHECK(!loop_.get() || (loop.get() == loop_.get())); 78 DCHECK(!loop_.get() || (loop.get() == loop_.get()));
78 loop_ = loop; 79 loop_ = loop;
79 client_ = client; 80 client_ = client;
80 } 81 }
81 82
82 if (loop->BelongsToCurrentThread()) { 83 if (loop->BelongsToCurrentThread()) {
83 BindOnThread(stream_id); 84 BindOnThread(stream_id);
84 return; 85 return;
85 } 86 }
86 // Unretained is safe here only because the object is deleted on |loop_| 87 // Unretained is safe here only because the object is deleted on |loop_|
87 // thread. 88 // thread.
88 loop->PostTask(FROM_HERE, 89 loop->PostTask(FROM_HERE,
89 base::Bind(&StreamTextureProxyImpl::BindOnThread, 90 base::Bind(&StreamTextureProxyImpl::BindOnThread,
90 base::Unretained(this), 91 base::Unretained(this),
91 stream_id)); 92 stream_id));
92 } 93 }
93 94
94 void StreamTextureProxyImpl::BindOnThread(int32 stream_id) { 95 void StreamTextureProxyImpl::BindOnThread(int32_t stream_id) {
95 host_->BindToCurrentThread(stream_id, this); 96 host_->BindToCurrentThread(stream_id, this);
96 } 97 }
97 98
98 void StreamTextureProxyImpl::OnFrameAvailable() { 99 void StreamTextureProxyImpl::OnFrameAvailable() {
99 base::AutoLock lock(lock_); 100 base::AutoLock lock(lock_);
100 if (client_) 101 if (client_)
101 client_->DidReceiveFrame(); 102 client_->DidReceiveFrame();
102 } 103 }
103 104
104 void StreamTextureProxyImpl::OnMatrixChanged(const float matrix[16]) { 105 void StreamTextureProxyImpl::OnMatrixChanged(const float matrix[16]) {
(...skipping 19 matching lines...) Expand all
124 } 125 }
125 126
126 StreamTextureFactoryImpl::~StreamTextureFactoryImpl() {} 127 StreamTextureFactoryImpl::~StreamTextureFactoryImpl() {}
127 128
128 StreamTextureProxy* StreamTextureFactoryImpl::CreateProxy() { 129 StreamTextureProxy* StreamTextureFactoryImpl::CreateProxy() {
129 DCHECK(channel_.get()); 130 DCHECK(channel_.get());
130 StreamTextureHost* host = new StreamTextureHost(channel_.get()); 131 StreamTextureHost* host = new StreamTextureHost(channel_.get());
131 return new StreamTextureProxyImpl(host); 132 return new StreamTextureProxyImpl(host);
132 } 133 }
133 134
134 void StreamTextureFactoryImpl::EstablishPeer(int32 stream_id, 135 void StreamTextureFactoryImpl::EstablishPeer(int32_t stream_id,
135 int player_id, 136 int player_id,
136 int frame_id) { 137 int frame_id) {
137 DCHECK(channel_.get()); 138 DCHECK(channel_.get());
138 channel_->Send( 139 channel_->Send(
139 new GpuStreamTextureMsg_EstablishPeer(stream_id, frame_id, player_id)); 140 new GpuStreamTextureMsg_EstablishPeer(stream_id, frame_id, player_id));
140 } 141 }
141 142
142 unsigned StreamTextureFactoryImpl::CreateStreamTexture( 143 unsigned StreamTextureFactoryImpl::CreateStreamTexture(
143 unsigned texture_target, 144 unsigned texture_target,
144 unsigned* texture_id, 145 unsigned* texture_id,
145 gpu::Mailbox* texture_mailbox) { 146 gpu::Mailbox* texture_mailbox) {
146 GLuint stream_id = 0; 147 GLuint stream_id = 0;
147 gpu::gles2::GLES2Interface* gl = context_provider_->ContextGL(); 148 gpu::gles2::GLES2Interface* gl = context_provider_->ContextGL();
148 gl->GenTextures(1, texture_id); 149 gl->GenTextures(1, texture_id);
149 gl->ShallowFlushCHROMIUM(); 150 gl->ShallowFlushCHROMIUM();
150 stream_id = context_provider_->GetCommandBufferProxy()->CreateStreamTexture( 151 stream_id = context_provider_->GetCommandBufferProxy()->CreateStreamTexture(
151 *texture_id); 152 *texture_id);
152 gl->GenMailboxCHROMIUM(texture_mailbox->name); 153 gl->GenMailboxCHROMIUM(texture_mailbox->name);
153 gl->ProduceTextureDirectCHROMIUM( 154 gl->ProduceTextureDirectCHROMIUM(
154 *texture_id, texture_target, texture_mailbox->name); 155 *texture_id, texture_target, texture_mailbox->name);
155 return stream_id; 156 return stream_id;
156 } 157 }
157 158
158 void StreamTextureFactoryImpl::SetStreamTextureSize(int32 stream_id, 159 void StreamTextureFactoryImpl::SetStreamTextureSize(int32_t stream_id,
159 const gfx::Size& size) { 160 const gfx::Size& size) {
160 channel_->Send(new GpuStreamTextureMsg_SetSize(stream_id, size)); 161 channel_->Send(new GpuStreamTextureMsg_SetSize(stream_id, size));
161 } 162 }
162 163
163 gpu::gles2::GLES2Interface* StreamTextureFactoryImpl::ContextGL() { 164 gpu::gles2::GLES2Interface* StreamTextureFactoryImpl::ContextGL() {
164 return context_provider_->ContextGL(); 165 return context_provider_->ContextGL();
165 } 166 }
166 167
167 void StreamTextureFactoryImpl::AddObserver( 168 void StreamTextureFactoryImpl::AddObserver(
168 StreamTextureFactoryContextObserver* obs) { 169 StreamTextureFactoryContextObserver* obs) {
169 } 170 }
170 171
171 void StreamTextureFactoryImpl::RemoveObserver( 172 void StreamTextureFactoryImpl::RemoveObserver(
172 StreamTextureFactoryContextObserver* obs) { 173 StreamTextureFactoryContextObserver* obs) {
173 } 174 }
174 175
175 } // namespace content 176 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698