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

Unified Diff: cc/resources/video_resource_updater.cc

Issue 2763223003: Reland of cc: Don't use StreamVideoDrawQuad on any platform but Android. (Closed)
Patch Set: Address Dana's comments. Fix unittest. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/video_resource_updater.cc
diff --git a/cc/resources/video_resource_updater.cc b/cc/resources/video_resource_updater.cc
index 2ad91ae0674558bb9ad7f5963aa68c50d6554c38..c6f0408ade262f6e4093ef893dcf2de21f236fe8 100644
--- a/cc/resources/video_resource_updater.cc
+++ b/cc/resources/video_resource_updater.cc
@@ -34,7 +34,8 @@ namespace {
const ResourceFormat kRGBResourceFormat = RGBA_8888;
VideoFrameExternalResources::ResourceType ResourceTypeForVideoFrame(
- media::VideoFrame* video_frame) {
+ media::VideoFrame* video_frame,
+ bool use_stream_video_draw_quad) {
switch (video_frame->format()) {
case media::PIXEL_FORMAT_ARGB:
case media::PIXEL_FORMAT_XRGB:
@@ -45,10 +46,11 @@ VideoFrameExternalResources::ResourceType ResourceTypeForVideoFrame(
? VideoFrameExternalResources::RGB_RESOURCE
: VideoFrameExternalResources::RGBA_PREMULTIPLIED_RESOURCE;
case GL_TEXTURE_EXTERNAL_OES:
- return video_frame->metadata()->IsTrue(
- media::VideoFrameMetadata::COPY_REQUIRED)
- ? VideoFrameExternalResources::RGBA_RESOURCE
- : VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE;
+ if (use_stream_video_draw_quad &&
+ !video_frame->metadata()->IsTrue(
+ media::VideoFrameMetadata::COPY_REQUIRED))
+ return VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE;
+ return VideoFrameExternalResources::RGBA_RESOURCE;
case GL_TEXTURE_RECTANGLE_ARB:
return VideoFrameExternalResources::RGB_RESOURCE;
default:
@@ -171,10 +173,11 @@ VideoFrameExternalResources::VideoFrameExternalResources(
VideoFrameExternalResources::~VideoFrameExternalResources() {}
VideoResourceUpdater::VideoResourceUpdater(ContextProvider* context_provider,
- ResourceProvider* resource_provider)
+ ResourceProvider* resource_provider,
+ bool use_stream_video_draw_quad)
: context_provider_(context_provider),
- resource_provider_(resource_provider) {
-}
+ resource_provider_(resource_provider),
+ use_stream_video_draw_quad_(use_stream_video_draw_quad) {}
VideoResourceUpdater::~VideoResourceUpdater() {
for (const PlaneResource& plane_resource : all_resources_)
@@ -707,7 +710,8 @@ VideoFrameExternalResources VideoResourceUpdater::CreateForHardwarePlanes(
}
gfx::ColorSpace resource_color_space = video_frame->ColorSpace();
- external_resources.type = ResourceTypeForVideoFrame(video_frame.get());
+ external_resources.type =
+ ResourceTypeForVideoFrame(video_frame.get(), use_stream_video_draw_quad_);
if (external_resources.type == VideoFrameExternalResources::NONE) {
DLOG(ERROR) << "Unsupported Texture format"
<< media::VideoPixelFormatToString(video_frame->format());

Powered by Google App Engine
This is Rietveld 408576698