| 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());
|
|
|