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

Side by Side Diff: cc/resources/video_resource_updater.cc

Issue 2922113002: Revert of cc: Don't use StreamVideoDrawQuad on any platform but Android. (patchset #3 id:40001 of h… (Closed)
Patch Set: Revert of cc: Don't use StreamVideoDrawQuad on any platform but Android. (patchset #3 id:40001 of h… Created 3 years, 6 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
« no previous file with comments | « cc/resources/video_resource_updater.h ('k') | cc/resources/video_resource_updater_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 17 matching lines...) Expand all
28 #include "third_party/skia/include/core/SkCanvas.h" 28 #include "third_party/skia/include/core/SkCanvas.h"
29 #include "ui/gfx/geometry/size_conversions.h" 29 #include "ui/gfx/geometry/size_conversions.h"
30 30
31 namespace cc { 31 namespace cc {
32 32
33 namespace { 33 namespace {
34 34
35 const ResourceFormat kRGBResourceFormat = RGBA_8888; 35 const ResourceFormat kRGBResourceFormat = RGBA_8888;
36 36
37 VideoFrameExternalResources::ResourceType ResourceTypeForVideoFrame( 37 VideoFrameExternalResources::ResourceType ResourceTypeForVideoFrame(
38 media::VideoFrame* video_frame, 38 media::VideoFrame* video_frame) {
39 bool use_stream_video_draw_quad) {
40 switch (video_frame->format()) { 39 switch (video_frame->format()) {
41 case media::PIXEL_FORMAT_ARGB: 40 case media::PIXEL_FORMAT_ARGB:
42 case media::PIXEL_FORMAT_XRGB: 41 case media::PIXEL_FORMAT_XRGB:
43 case media::PIXEL_FORMAT_UYVY: 42 case media::PIXEL_FORMAT_UYVY:
44 switch (video_frame->mailbox_holder(0).texture_target) { 43 switch (video_frame->mailbox_holder(0).texture_target) {
45 case GL_TEXTURE_2D: 44 case GL_TEXTURE_2D:
46 return (video_frame->format() == media::PIXEL_FORMAT_XRGB) 45 return (video_frame->format() == media::PIXEL_FORMAT_XRGB)
47 ? VideoFrameExternalResources::RGB_RESOURCE 46 ? VideoFrameExternalResources::RGB_RESOURCE
48 : VideoFrameExternalResources::RGBA_PREMULTIPLIED_RESOURCE; 47 : VideoFrameExternalResources::RGBA_PREMULTIPLIED_RESOURCE;
49 case GL_TEXTURE_EXTERNAL_OES: 48 case GL_TEXTURE_EXTERNAL_OES:
50 if (use_stream_video_draw_quad && 49 return video_frame->metadata()->IsTrue(
51 !video_frame->metadata()->IsTrue( 50 media::VideoFrameMetadata::COPY_REQUIRED)
52 media::VideoFrameMetadata::COPY_REQUIRED)) 51 ? VideoFrameExternalResources::RGBA_RESOURCE
53 return VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE; 52 : VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE;
54 return VideoFrameExternalResources::RGBA_RESOURCE;
55 case GL_TEXTURE_RECTANGLE_ARB: 53 case GL_TEXTURE_RECTANGLE_ARB:
56 return VideoFrameExternalResources::RGB_RESOURCE; 54 return VideoFrameExternalResources::RGB_RESOURCE;
57 default: 55 default:
58 NOTREACHED(); 56 NOTREACHED();
59 break; 57 break;
60 } 58 }
61 break; 59 break;
62 case media::PIXEL_FORMAT_I420: 60 case media::PIXEL_FORMAT_I420:
63 return VideoFrameExternalResources::YUV_RESOURCE; 61 return VideoFrameExternalResources::YUV_RESOURCE;
64 break; 62 break;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 offset(0.0f), 165 offset(0.0f),
168 multiplier(1.0f), 166 multiplier(1.0f),
169 bits_per_channel(8) {} 167 bits_per_channel(8) {}
170 168
171 VideoFrameExternalResources::VideoFrameExternalResources( 169 VideoFrameExternalResources::VideoFrameExternalResources(
172 const VideoFrameExternalResources& other) = default; 170 const VideoFrameExternalResources& other) = default;
173 171
174 VideoFrameExternalResources::~VideoFrameExternalResources() {} 172 VideoFrameExternalResources::~VideoFrameExternalResources() {}
175 173
176 VideoResourceUpdater::VideoResourceUpdater(ContextProvider* context_provider, 174 VideoResourceUpdater::VideoResourceUpdater(ContextProvider* context_provider,
177 ResourceProvider* resource_provider, 175 ResourceProvider* resource_provider)
178 bool use_stream_video_draw_quad)
179 : context_provider_(context_provider), 176 : context_provider_(context_provider),
180 resource_provider_(resource_provider), 177 resource_provider_(resource_provider) {
181 use_stream_video_draw_quad_(use_stream_video_draw_quad) {} 178 }
182 179
183 VideoResourceUpdater::~VideoResourceUpdater() { 180 VideoResourceUpdater::~VideoResourceUpdater() {
184 for (const PlaneResource& plane_resource : all_resources_) 181 for (const PlaneResource& plane_resource : all_resources_)
185 resource_provider_->DeleteResource(plane_resource.resource_id()); 182 resource_provider_->DeleteResource(plane_resource.resource_id());
186 } 183 }
187 184
188 VideoResourceUpdater::ResourceList::iterator 185 VideoResourceUpdater::ResourceList::iterator
189 VideoResourceUpdater::RecycleOrAllocateResource( 186 VideoResourceUpdater::RecycleOrAllocateResource(
190 const gfx::Size& resource_size, 187 const gfx::Size& resource_size,
191 ResourceFormat resource_format, 188 ResourceFormat resource_format,
(...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 if (!context_provider_) 619 if (!context_provider_)
623 return VideoFrameExternalResources(); 620 return VideoFrameExternalResources();
624 621
625 VideoFrameExternalResources external_resources; 622 VideoFrameExternalResources external_resources;
626 if (video_frame->metadata()->IsTrue( 623 if (video_frame->metadata()->IsTrue(
627 media::VideoFrameMetadata::READ_LOCK_FENCES_ENABLED)) { 624 media::VideoFrameMetadata::READ_LOCK_FENCES_ENABLED)) {
628 external_resources.read_lock_fences_enabled = true; 625 external_resources.read_lock_fences_enabled = true;
629 } 626 }
630 gfx::ColorSpace resource_color_space = video_frame->ColorSpace(); 627 gfx::ColorSpace resource_color_space = video_frame->ColorSpace();
631 628
632 external_resources.type = 629 external_resources.type = ResourceTypeForVideoFrame(video_frame.get());
633 ResourceTypeForVideoFrame(video_frame.get(), use_stream_video_draw_quad_);
634 if (external_resources.type == VideoFrameExternalResources::NONE) { 630 if (external_resources.type == VideoFrameExternalResources::NONE) {
635 DLOG(ERROR) << "Unsupported Texture format" 631 DLOG(ERROR) << "Unsupported Texture format"
636 << media::VideoPixelFormatToString(video_frame->format()); 632 << media::VideoPixelFormatToString(video_frame->format());
637 return external_resources; 633 return external_resources;
638 } 634 }
639 if (external_resources.type == VideoFrameExternalResources::RGB_RESOURCE) 635 if (external_resources.type == VideoFrameExternalResources::RGB_RESOURCE)
640 resource_color_space = resource_color_space.GetAsFullRangeRGB(); 636 resource_color_space = resource_color_space.GetAsFullRangeRGB();
641 637
642 const size_t num_planes = media::VideoFrame::NumPlanes(video_frame->format()); 638 const size_t num_planes = media::VideoFrame::NumPlanes(video_frame->format());
643 for (size_t i = 0; i < num_planes; ++i) { 639 for (size_t i = 0; i < num_planes; ++i) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 if (lost_resource) { 695 if (lost_resource) {
700 resource_it->clear_refs(); 696 resource_it->clear_refs();
701 updater->DeleteResource(resource_it); 697 updater->DeleteResource(resource_it);
702 return; 698 return;
703 } 699 }
704 700
705 resource_it->remove_ref(); 701 resource_it->remove_ref();
706 } 702 }
707 703
708 } // namespace cc 704 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/video_resource_updater.h ('k') | cc/resources/video_resource_updater_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698