Index: cc/layers/video_layer_impl.cc |
diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc |
index 98f2c047a03ea429b204e3e6a21744437c67c0c9..0ae20360bb28c945af007404b61ee46a8678d771 100644 |
--- a/cc/layers/video_layer_impl.cc |
+++ b/cc/layers/video_layer_impl.cc |
@@ -37,8 +37,7 @@ scoped_ptr<VideoLayerImpl> VideoLayerImpl::Create( |
VideoLayerImpl::VideoLayerImpl(LayerTreeImpl* tree_impl, int id) |
: LayerImpl(tree_impl, id), |
- frame_(NULL), |
- hardware_resource_(0) {} |
+ frame_(NULL) {} |
VideoLayerImpl::~VideoLayerImpl() { |
if (!provider_client_impl_->Stopped()) { |
@@ -96,12 +95,8 @@ bool VideoLayerImpl::WillDraw(DrawMode draw_mode, |
if (!updater_) |
updater_.reset(new VideoResourceUpdater(resource_provider)); |
- VideoFrameExternalResources external_resources; |
- if (frame_->format() == media::VideoFrame::NATIVE_TEXTURE) |
- external_resources = updater_->CreateForHardwarePlanes(frame_); |
- else |
- external_resources = updater_->CreateForSoftwarePlanes(frame_); |
- |
+ VideoFrameExternalResources external_resources = |
+ updater_->CreateExternalResourcesFromVideoFrame(frame_); |
frame_resource_type_ = external_resources.type; |
if (external_resources.type == |
@@ -112,13 +107,6 @@ bool VideoLayerImpl::WillDraw(DrawMode draw_mode, |
return true; |
} |
- if (external_resources.hardware_resource) { |
- hardware_resource_ = external_resources.hardware_resource; |
- hardware_release_callback_ = |
- external_resources.hardware_release_callback; |
- return true; |
- } |
- |
for (size_t i = 0; i < external_resources.mailboxes.size(); ++i) { |
frame_resources_.push_back( |
resource_provider->CreateResourceFromTextureMailbox( |
@@ -191,11 +179,9 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
break; |
} |
case VideoFrameExternalResources::RGB_RESOURCE: { |
- if (!hardware_resource_) { |
- DCHECK_EQ(frame_resources_.size(), 1u); |
- if (frame_resources_.size() < 1u) |
- break; |
- } |
+ DCHECK_EQ(frame_resources_.size(), 1u); |
+ if (frame_resources_.size() < 1u) |
+ break; |
bool premultiplied_alpha = true; |
gfx::PointF uv_top_left(0.f, 0.f); |
gfx::PointF uv_bottom_right(tex_width_scale, tex_height_scale); |
@@ -205,8 +191,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
texture_quad->SetNew(shared_quad_state, |
quad_rect, |
opaque_rect, |
- hardware_resource_ ? hardware_resource_ |
- : frame_resources_[0], |
+ frame_resources_[0], |
premultiplied_alpha, |
uv_top_left, |
uv_bottom_right, |
@@ -216,11 +201,9 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
break; |
} |
case VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE: { |
- if (!hardware_resource_) { |
- DCHECK_EQ(frame_resources_.size(), 1u); |
- if (frame_resources_.size() < 1u) |
- break; |
- } |
+ DCHECK_EQ(frame_resources_.size(), 1u); |
+ if (frame_resources_.size() < 1u) |
+ break; |
gfx::Transform transform( |
provider_client_impl_->stream_texture_matrix()); |
transform.Scale(tex_width_scale, tex_height_scale); |
@@ -229,19 +212,16 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
stream_video_quad->SetNew(shared_quad_state, |
quad_rect, |
opaque_rect, |
- hardware_resource_ ? hardware_resource_ |
- : frame_resources_[0], |
+ frame_resources_[0], |
transform); |
quad_sink->Append(stream_video_quad.PassAs<DrawQuad>(), |
append_quads_data); |
break; |
} |
case VideoFrameExternalResources::IO_SURFACE: { |
- if (!hardware_resource_) { |
- DCHECK_EQ(frame_resources_.size(), 1u); |
- if (frame_resources_.size() < 1u) |
- break; |
- } |
+ DCHECK_EQ(frame_resources_.size(), 1u); |
+ if (frame_resources_.size() < 1u) |
+ break; |
gfx::Size visible_size(visible_rect.width(), visible_rect.height()); |
scoped_ptr<IOSurfaceDrawQuad> io_surface_quad = |
IOSurfaceDrawQuad::Create(); |
@@ -249,8 +229,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
quad_rect, |
opaque_rect, |
visible_size, |
- hardware_resource_ ? hardware_resource_ |
- : frame_resources_[0], |
+ frame_resources_[0], |
IOSurfaceDrawQuad::UNFLIPPED); |
quad_sink->Append(io_surface_quad.PassAs<DrawQuad>(), |
append_quads_data); |
@@ -296,10 +275,6 @@ void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) { |
software_resources_.clear(); |
software_release_callback_.Reset(); |
- } else if (hardware_resource_) { |
- hardware_release_callback_.Run(0, false); |
- hardware_resource_ = 0; |
- hardware_release_callback_.Reset(); |
} else { |
for (size_t i = 0; i < frame_resources_.size(); ++i) |
resource_provider->DeleteResource(frame_resources_[i]); |