Commit c454c56e authored by c.padhi's avatar c.padhi Committed by Commit bot

Replace SupportsWeakPtr with WeakPtrFactory in VideoResourceUpdater

VideoResourceUpdater uses weak pointers within the class only.
Hence, it does not have to inherit SupportsWeakPtr.

BUG=None
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2838713004
Cr-Commit-Position: refs/heads/master@{#467883}
parent 321b6ea1
......@@ -178,7 +178,8 @@ VideoResourceUpdater::VideoResourceUpdater(ContextProvider* context_provider,
bool use_stream_video_draw_quad)
: context_provider_(context_provider),
resource_provider_(resource_provider),
use_stream_video_draw_quad_(use_stream_video_draw_quad) {}
use_stream_video_draw_quad_(use_stream_video_draw_quad),
weak_ptr_factory_(this) {}
VideoResourceUpdater::~VideoResourceUpdater() {
for (const PlaneResource& plane_resource : all_resources_)
......@@ -421,8 +422,9 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForSoftwarePlanes(
if (software_compositor) {
external_resources.software_resources.push_back(
plane_resource.resource_id());
external_resources.software_release_callback = base::Bind(
&RecycleResource, AsWeakPtr(), plane_resource.resource_id());
external_resources.software_release_callback =
base::Bind(&RecycleResource, weak_ptr_factory_.GetWeakPtr(),
plane_resource.resource_id());
external_resources.type = VideoFrameExternalResources::SOFTWARE_RESOURCE;
} else {
// VideoResourceUpdater shares a context with the compositor so
......@@ -432,8 +434,9 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForSoftwarePlanes(
plane_resource.resource_id()));
mailbox.set_color_space(output_color_space);
external_resources.mailboxes.push_back(mailbox);
external_resources.release_callbacks.push_back(base::Bind(
&RecycleResource, AsWeakPtr(), plane_resource.resource_id()));
external_resources.release_callbacks.push_back(
base::Bind(&RecycleResource, weak_ptr_factory_.GetWeakPtr(),
plane_resource.resource_id()));
external_resources.type = VideoFrameExternalResources::RGBA_RESOURCE;
}
return external_resources;
......@@ -535,8 +538,9 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForSoftwarePlanes(
plane_resource.resource_id()));
mailbox.set_color_space(output_color_space);
external_resources.mailboxes.push_back(mailbox);
external_resources.release_callbacks.push_back(base::Bind(
&RecycleResource, AsWeakPtr(), plane_resource.resource_id()));
external_resources.release_callbacks.push_back(
base::Bind(&RecycleResource, weak_ptr_factory_.GetWeakPtr(),
plane_resource.resource_id()));
}
external_resources.type = VideoFrameExternalResources::YUV_RESOURCE;
......@@ -612,7 +616,8 @@ void VideoResourceUpdater::CopyPlaneTexture(
external_resources->mailboxes.push_back(mailbox);
external_resources->release_callbacks.push_back(
base::Bind(&RecycleResource, AsWeakPtr(), resource->resource_id()));
base::Bind(&RecycleResource, weak_ptr_factory_.GetWeakPtr(),
resource->resource_id()));
}
VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes(
......@@ -664,8 +669,8 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes(
media::VideoFrameMetadata::WANTS_PROMOTION_HINT));
#endif
external_resources.mailboxes.push_back(mailbox);
external_resources.release_callbacks.push_back(
base::Bind(&ReturnTexture, AsWeakPtr(), video_frame));
external_resources.release_callbacks.push_back(base::Bind(
&ReturnTexture, weak_ptr_factory_.GetWeakPtr(), video_frame));
}
}
return external_resources;
......
......@@ -70,8 +70,7 @@ class CC_EXPORT VideoFrameExternalResources {
// VideoResourceUpdater is used by the video system to produce frame content as
// resources consumable by the compositor.
class CC_EXPORT VideoResourceUpdater
: public base::SupportsWeakPtr<VideoResourceUpdater> {
class CC_EXPORT VideoResourceUpdater {
public:
VideoResourceUpdater(ContextProvider* context_provider,
ResourceProvider* resource_provider,
......@@ -185,6 +184,8 @@ class CC_EXPORT VideoResourceUpdater
// data transfers.
ResourceList all_resources_;
base::WeakPtrFactory<VideoResourceUpdater> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(VideoResourceUpdater);
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment