OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "cc/resources/video_resource_updater.h" | 5 #include "cc/resources/video_resource_updater.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/debug/trace_event.h" | 8 #include "base/debug/trace_event.h" |
9 #include "cc/output/gl_renderer.h" | 9 #include "cc/output/gl_renderer.h" |
| 10 #include "cc/resources/media/skcanvas_video_renderer.h" |
10 #include "cc/resources/resource_provider.h" | 11 #include "cc/resources/resource_provider.h" |
11 #include "gpu/GLES2/gl2extchromium.h" | 12 #include "gpu/GLES2/gl2extchromium.h" |
12 #include "gpu/command_buffer/client/gles2_interface.h" | 13 #include "gpu/command_buffer/client/gles2_interface.h" |
13 #include "media/base/video_frame.h" | 14 #include "media/base/video_frame.h" |
14 #include "media/filters/skcanvas_video_renderer.h" | |
15 #include "third_party/khronos/GLES2/gl2.h" | 15 #include "third_party/khronos/GLES2/gl2.h" |
16 #include "third_party/khronos/GLES2/gl2ext.h" | 16 #include "third_party/khronos/GLES2/gl2ext.h" |
17 #include "ui/gfx/size_conversions.h" | 17 #include "ui/gfx/size_conversions.h" |
18 | 18 |
19 namespace cc { | 19 namespace cc { |
20 | 20 |
21 namespace { | 21 namespace { |
22 | 22 |
23 const ResourceFormat kYUVResourceFormat = LUMINANCE_8; | 23 const ResourceFormat kYUVResourceFormat = LUMINANCE_8; |
24 const ResourceFormat kRGBResourceFormat = RGBA_8888; | 24 const ResourceFormat kRGBResourceFormat = RGBA_8888; |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 } | 237 } |
238 | 238 |
239 VideoFrameExternalResources external_resources; | 239 VideoFrameExternalResources external_resources; |
240 | 240 |
241 if (software_compositor) { | 241 if (software_compositor) { |
242 DCHECK_EQ(plane_resources.size(), 1u); | 242 DCHECK_EQ(plane_resources.size(), 1u); |
243 DCHECK_EQ(plane_resources[0].resource_format, kRGBResourceFormat); | 243 DCHECK_EQ(plane_resources[0].resource_format, kRGBResourceFormat); |
244 DCHECK(plane_resources[0].mailbox.IsZero()); | 244 DCHECK(plane_resources[0].mailbox.IsZero()); |
245 | 245 |
246 if (!video_renderer_) | 246 if (!video_renderer_) |
247 video_renderer_.reset(new media::SkCanvasVideoRenderer); | 247 video_renderer_.reset(new SkCanvasVideoRenderer); |
248 | 248 |
249 { | 249 { |
250 ResourceProvider::ScopedWriteLockSoftware lock( | 250 ResourceProvider::ScopedWriteLockSoftware lock( |
251 resource_provider_, plane_resources[0].resource_id); | 251 resource_provider_, plane_resources[0].resource_id); |
| 252 lock.sk_canvas()->clear(SK_ColorTRANSPARENT); |
252 video_renderer_->Paint(video_frame.get(), | 253 video_renderer_->Paint(video_frame.get(), |
253 lock.sk_canvas(), | 254 lock.sk_canvas(), |
254 video_frame->visible_rect(), | 255 video_frame->visible_rect(), |
255 0xff); | 256 0xff, |
| 257 0); |
256 } | 258 } |
257 | 259 |
258 RecycleResourceData recycle_data = { | 260 RecycleResourceData recycle_data = { |
259 plane_resources[0].resource_id, | 261 plane_resources[0].resource_id, |
260 plane_resources[0].resource_size, | 262 plane_resources[0].resource_size, |
261 plane_resources[0].resource_format, | 263 plane_resources[0].resource_format, |
262 gpu::Mailbox() | 264 gpu::Mailbox() |
263 }; | 265 }; |
264 external_resources.software_resources.push_back( | 266 external_resources.software_resources.push_back( |
265 plane_resources[0].resource_id); | 267 plane_resources[0].resource_id); |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
391 } | 393 } |
392 | 394 |
393 PlaneResource recycled_resource(data.resource_id, | 395 PlaneResource recycled_resource(data.resource_id, |
394 data.resource_size, | 396 data.resource_size, |
395 data.resource_format, | 397 data.resource_format, |
396 data.mailbox); | 398 data.mailbox); |
397 updater->recycled_resources_.push_back(recycled_resource); | 399 updater->recycled_resources_.push_back(recycled_resource); |
398 } | 400 } |
399 | 401 |
400 } // namespace cc | 402 } // namespace cc |
OLD | NEW |