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

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

Issue 2113243003: media: Introduce Y8 and Y16 video pixel format (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: error handling when bits_per_channel == 16 Created 4 years, 5 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 | « no previous file | media/base/video_frame.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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 case media::PIXEL_FORMAT_RGB24: 76 case media::PIXEL_FORMAT_RGB24:
77 case media::PIXEL_FORMAT_RGB32: 77 case media::PIXEL_FORMAT_RGB32:
78 case media::PIXEL_FORMAT_MJPEG: 78 case media::PIXEL_FORMAT_MJPEG:
79 case media::PIXEL_FORMAT_MT21: 79 case media::PIXEL_FORMAT_MT21:
80 case media::PIXEL_FORMAT_YUV420P9: 80 case media::PIXEL_FORMAT_YUV420P9:
81 case media::PIXEL_FORMAT_YUV422P9: 81 case media::PIXEL_FORMAT_YUV422P9:
82 case media::PIXEL_FORMAT_YUV444P9: 82 case media::PIXEL_FORMAT_YUV444P9:
83 case media::PIXEL_FORMAT_YUV420P10: 83 case media::PIXEL_FORMAT_YUV420P10:
84 case media::PIXEL_FORMAT_YUV422P10: 84 case media::PIXEL_FORMAT_YUV422P10:
85 case media::PIXEL_FORMAT_YUV444P10: 85 case media::PIXEL_FORMAT_YUV444P10:
86 case media::PIXEL_FORMAT_Y8:
87 case media::PIXEL_FORMAT_Y16:
86 case media::PIXEL_FORMAT_UNKNOWN: 88 case media::PIXEL_FORMAT_UNKNOWN:
87 break; 89 break;
88 } 90 }
89 return VideoFrameExternalResources::NONE; 91 return VideoFrameExternalResources::NONE;
90 } 92 }
91 93
92 class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient { 94 class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient {
93 public: 95 public:
94 SyncTokenClientImpl(gpu::gles2::GLES2Interface* gl, 96 SyncTokenClientImpl(gpu::gles2::GLES2Interface* gl,
95 const gpu::SyncToken& sync_token) 97 const gpu::SyncToken& sync_token)
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 case media::PIXEL_FORMAT_NV12: 265 case media::PIXEL_FORMAT_NV12:
264 case media::PIXEL_FORMAT_NV21: 266 case media::PIXEL_FORMAT_NV21:
265 case media::PIXEL_FORMAT_UYVY: 267 case media::PIXEL_FORMAT_UYVY:
266 case media::PIXEL_FORMAT_YUY2: 268 case media::PIXEL_FORMAT_YUY2:
267 case media::PIXEL_FORMAT_ARGB: 269 case media::PIXEL_FORMAT_ARGB:
268 case media::PIXEL_FORMAT_XRGB: 270 case media::PIXEL_FORMAT_XRGB:
269 case media::PIXEL_FORMAT_RGB24: 271 case media::PIXEL_FORMAT_RGB24:
270 case media::PIXEL_FORMAT_RGB32: 272 case media::PIXEL_FORMAT_RGB32:
271 case media::PIXEL_FORMAT_MJPEG: 273 case media::PIXEL_FORMAT_MJPEG:
272 case media::PIXEL_FORMAT_MT21: 274 case media::PIXEL_FORMAT_MT21:
275 case media::PIXEL_FORMAT_Y8:
273 bits_per_channel = 8; 276 bits_per_channel = 8;
274 break; 277 break;
275 case media::PIXEL_FORMAT_YUV420P9: 278 case media::PIXEL_FORMAT_YUV420P9:
276 case media::PIXEL_FORMAT_YUV422P9: 279 case media::PIXEL_FORMAT_YUV422P9:
277 case media::PIXEL_FORMAT_YUV444P9: 280 case media::PIXEL_FORMAT_YUV444P9:
278 bits_per_channel = 9; 281 bits_per_channel = 9;
279 break; 282 break;
280 case media::PIXEL_FORMAT_YUV420P10: 283 case media::PIXEL_FORMAT_YUV420P10:
281 case media::PIXEL_FORMAT_YUV422P10: 284 case media::PIXEL_FORMAT_YUV422P10:
282 case media::PIXEL_FORMAT_YUV444P10: 285 case media::PIXEL_FORMAT_YUV444P10:
283 bits_per_channel = 10; 286 bits_per_channel = 10;
284 break; 287 break;
288 case media::PIXEL_FORMAT_Y16:
289 bits_per_channel = 16;
290 break;
291 }
292
293 // TODO(dshwang): support PIXEL_FORMAT_Y16. crbug.com/624436
294 if (bits_per_channel == 16) {
295 NOTREACHED();
296 return VideoFrameExternalResources();
285 } 297 }
dshwang 2016/07/07 18:11:38 Add error handling code.
286 298
287 // Only YUV software video frames are supported. 299 // Only YUV software video frames are supported.
288 if (!media::IsYuvPlanar(input_frame_format)) { 300 if (!media::IsYuvPlanar(input_frame_format)) {
289 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format); 301 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format);
290 return VideoFrameExternalResources(); 302 return VideoFrameExternalResources();
291 } 303 }
292 304
293 const bool software_compositor = context_provider_ == NULL; 305 const bool software_compositor = context_provider_ == NULL;
294 306
295 ResourceFormat output_resource_format = 307 ResourceFormat output_resource_format =
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 if (lost_resource) { 701 if (lost_resource) {
690 resource_it->clear_refs(); 702 resource_it->clear_refs();
691 updater->DeleteResource(resource_it); 703 updater->DeleteResource(resource_it);
692 return; 704 return;
693 } 705 }
694 706
695 resource_it->remove_ref(); 707 resource_it->remove_ref();
696 } 708 }
697 709
698 } // namespace cc 710 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | media/base/video_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698