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

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

Issue 2648633005: cros: Support YUYV format for GPU memory buffer video frames
Patch Set: Created 3 years, 11 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
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 20 matching lines...) Expand all
31 namespace { 31 namespace {
32 32
33 const ResourceFormat kRGBResourceFormat = RGBA_8888; 33 const ResourceFormat kRGBResourceFormat = RGBA_8888;
34 34
35 VideoFrameExternalResources::ResourceType ResourceTypeForVideoFrame( 35 VideoFrameExternalResources::ResourceType ResourceTypeForVideoFrame(
36 media::VideoFrame* video_frame) { 36 media::VideoFrame* video_frame) {
37 switch (video_frame->format()) { 37 switch (video_frame->format()) {
38 case media::PIXEL_FORMAT_ARGB: 38 case media::PIXEL_FORMAT_ARGB:
39 case media::PIXEL_FORMAT_XRGB: 39 case media::PIXEL_FORMAT_XRGB:
40 case media::PIXEL_FORMAT_UYVY: 40 case media::PIXEL_FORMAT_UYVY:
41 case media::PIXEL_FORMAT_YUY2:
41 switch (video_frame->mailbox_holder(0).texture_target) { 42 switch (video_frame->mailbox_holder(0).texture_target) {
42 case GL_TEXTURE_2D: 43 case GL_TEXTURE_2D:
43 return (video_frame->format() == media::PIXEL_FORMAT_XRGB) 44 return (video_frame->format() != media::PIXEL_FORMAT_ARGB)
44 ? VideoFrameExternalResources::RGB_RESOURCE 45 ? VideoFrameExternalResources::RGB_RESOURCE
45 : VideoFrameExternalResources::RGBA_PREMULTIPLIED_RESOURCE; 46 : VideoFrameExternalResources::RGBA_PREMULTIPLIED_RESOURCE;
46 case GL_TEXTURE_EXTERNAL_OES: 47 case GL_TEXTURE_EXTERNAL_OES:
47 return video_frame->metadata()->IsTrue( 48 return video_frame->metadata()->IsTrue(
48 media::VideoFrameMetadata::COPY_REQUIRED) 49 media::VideoFrameMetadata::COPY_REQUIRED)
49 ? VideoFrameExternalResources::RGBA_RESOURCE 50 ? VideoFrameExternalResources::RGBA_RESOURCE
50 : VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE; 51 : VideoFrameExternalResources::STREAM_TEXTURE_RESOURCE;
51 case GL_TEXTURE_RECTANGLE_ARB: 52 case GL_TEXTURE_RECTANGLE_ARB:
52 return VideoFrameExternalResources::RGB_RESOURCE; 53 return VideoFrameExternalResources::RGB_RESOURCE;
53 default: 54 default:
(...skipping 14 matching lines...) Expand all
68 default: 69 default:
69 NOTREACHED(); 70 NOTREACHED();
70 break; 71 break;
71 } 72 }
72 break; 73 break;
73 case media::PIXEL_FORMAT_YV12: 74 case media::PIXEL_FORMAT_YV12:
74 case media::PIXEL_FORMAT_YV16: 75 case media::PIXEL_FORMAT_YV16:
75 case media::PIXEL_FORMAT_YV24: 76 case media::PIXEL_FORMAT_YV24:
76 case media::PIXEL_FORMAT_YV12A: 77 case media::PIXEL_FORMAT_YV12A:
77 case media::PIXEL_FORMAT_NV21: 78 case media::PIXEL_FORMAT_NV21:
78 case media::PIXEL_FORMAT_YUY2:
79 case media::PIXEL_FORMAT_RGB24: 79 case media::PIXEL_FORMAT_RGB24:
80 case media::PIXEL_FORMAT_RGB32: 80 case media::PIXEL_FORMAT_RGB32:
81 case media::PIXEL_FORMAT_MJPEG: 81 case media::PIXEL_FORMAT_MJPEG:
82 case media::PIXEL_FORMAT_MT21: 82 case media::PIXEL_FORMAT_MT21:
83 case media::PIXEL_FORMAT_YUV420P9: 83 case media::PIXEL_FORMAT_YUV420P9:
84 case media::PIXEL_FORMAT_YUV422P9: 84 case media::PIXEL_FORMAT_YUV422P9:
85 case media::PIXEL_FORMAT_YUV444P9: 85 case media::PIXEL_FORMAT_YUV444P9:
86 case media::PIXEL_FORMAT_YUV420P10: 86 case media::PIXEL_FORMAT_YUV420P10:
87 case media::PIXEL_FORMAT_YUV422P10: 87 case media::PIXEL_FORMAT_YUV422P10:
88 case media::PIXEL_FORMAT_YUV444P10: 88 case media::PIXEL_FORMAT_YUV444P10:
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 if (lost_resource) { 812 if (lost_resource) {
813 resource_it->clear_refs(); 813 resource_it->clear_refs();
814 updater->DeleteResource(resource_it); 814 updater->DeleteResource(resource_it);
815 return; 815 return;
816 } 816 }
817 817
818 resource_it->remove_ref(); 818 resource_it->remove_ref();
819 } 819 }
820 820
821 } // namespace cc 821 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | components/exo/buffer.cc » ('j') | content/renderer/media/renderer_gpu_video_accelerator_factories.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698