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

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: rebase to land Created 4 years, 2 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 case media::PIXEL_FORMAT_MT21: 80 case media::PIXEL_FORMAT_MT21:
81 case media::PIXEL_FORMAT_YUV420P9: 81 case media::PIXEL_FORMAT_YUV420P9:
82 case media::PIXEL_FORMAT_YUV422P9: 82 case media::PIXEL_FORMAT_YUV422P9:
83 case media::PIXEL_FORMAT_YUV444P9: 83 case media::PIXEL_FORMAT_YUV444P9:
84 case media::PIXEL_FORMAT_YUV420P10: 84 case media::PIXEL_FORMAT_YUV420P10:
85 case media::PIXEL_FORMAT_YUV422P10: 85 case media::PIXEL_FORMAT_YUV422P10:
86 case media::PIXEL_FORMAT_YUV444P10: 86 case media::PIXEL_FORMAT_YUV444P10:
87 case media::PIXEL_FORMAT_YUV420P12: 87 case media::PIXEL_FORMAT_YUV420P12:
88 case media::PIXEL_FORMAT_YUV422P12: 88 case media::PIXEL_FORMAT_YUV422P12:
89 case media::PIXEL_FORMAT_YUV444P12: 89 case media::PIXEL_FORMAT_YUV444P12:
90 case media::PIXEL_FORMAT_Y8:
91 case media::PIXEL_FORMAT_Y16:
90 case media::PIXEL_FORMAT_UNKNOWN: 92 case media::PIXEL_FORMAT_UNKNOWN:
91 break; 93 break;
92 } 94 }
93 return VideoFrameExternalResources::NONE; 95 return VideoFrameExternalResources::NONE;
94 } 96 }
95 97
96 class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient { 98 class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient {
97 public: 99 public:
98 SyncTokenClientImpl(gpu::gles2::GLES2Interface* gl, 100 SyncTokenClientImpl(gpu::gles2::GLES2Interface* gl,
99 const gpu::SyncToken& sync_token) 101 const gpu::SyncToken& sync_token)
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 case media::PIXEL_FORMAT_NV12: 332 case media::PIXEL_FORMAT_NV12:
331 case media::PIXEL_FORMAT_NV21: 333 case media::PIXEL_FORMAT_NV21:
332 case media::PIXEL_FORMAT_UYVY: 334 case media::PIXEL_FORMAT_UYVY:
333 case media::PIXEL_FORMAT_YUY2: 335 case media::PIXEL_FORMAT_YUY2:
334 case media::PIXEL_FORMAT_ARGB: 336 case media::PIXEL_FORMAT_ARGB:
335 case media::PIXEL_FORMAT_XRGB: 337 case media::PIXEL_FORMAT_XRGB:
336 case media::PIXEL_FORMAT_RGB24: 338 case media::PIXEL_FORMAT_RGB24:
337 case media::PIXEL_FORMAT_RGB32: 339 case media::PIXEL_FORMAT_RGB32:
338 case media::PIXEL_FORMAT_MJPEG: 340 case media::PIXEL_FORMAT_MJPEG:
339 case media::PIXEL_FORMAT_MT21: 341 case media::PIXEL_FORMAT_MT21:
342 case media::PIXEL_FORMAT_Y8:
340 bits_per_channel = 8; 343 bits_per_channel = 8;
341 break; 344 break;
342 case media::PIXEL_FORMAT_YUV420P9: 345 case media::PIXEL_FORMAT_YUV420P9:
343 case media::PIXEL_FORMAT_YUV422P9: 346 case media::PIXEL_FORMAT_YUV422P9:
344 case media::PIXEL_FORMAT_YUV444P9: 347 case media::PIXEL_FORMAT_YUV444P9:
345 bits_per_channel = 9; 348 bits_per_channel = 9;
346 break; 349 break;
347 case media::PIXEL_FORMAT_YUV420P10: 350 case media::PIXEL_FORMAT_YUV420P10:
348 case media::PIXEL_FORMAT_YUV422P10: 351 case media::PIXEL_FORMAT_YUV422P10:
349 case media::PIXEL_FORMAT_YUV444P10: 352 case media::PIXEL_FORMAT_YUV444P10:
350 bits_per_channel = 10; 353 bits_per_channel = 10;
351 break; 354 break;
352 case media::PIXEL_FORMAT_YUV420P12: 355 case media::PIXEL_FORMAT_YUV420P12:
353 case media::PIXEL_FORMAT_YUV422P12: 356 case media::PIXEL_FORMAT_YUV422P12:
354 case media::PIXEL_FORMAT_YUV444P12: 357 case media::PIXEL_FORMAT_YUV444P12:
355 bits_per_channel = 12; 358 bits_per_channel = 12;
356 break; 359 break;
360 case media::PIXEL_FORMAT_Y16:
361 bits_per_channel = 16;
362 break;
357 } 363 }
358 364
365 // TODO(dshwang): support PIXEL_FORMAT_Y16. crbug.com/624436
366 DCHECK_NE(bits_per_channel, 16);
367
359 // Only YUV software video frames are supported. 368 // Only YUV software video frames are supported.
360 if (!media::IsYuvPlanar(input_frame_format)) { 369 if (!media::IsYuvPlanar(input_frame_format)) {
361 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format); 370 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format);
362 return VideoFrameExternalResources(); 371 return VideoFrameExternalResources();
363 } 372 }
364 373
365 const bool software_compositor = context_provider_ == NULL; 374 const bool software_compositor = context_provider_ == NULL;
366 375
367 ResourceFormat output_resource_format = 376 ResourceFormat output_resource_format =
368 resource_provider_->YuvResourceFormat(bits_per_channel); 377 resource_provider_->YuvResourceFormat(bits_per_channel);
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 if (lost_resource) { 765 if (lost_resource) {
757 resource_it->clear_refs(); 766 resource_it->clear_refs();
758 updater->DeleteResource(resource_it); 767 updater->DeleteResource(resource_it);
759 return; 768 return;
760 } 769 }
761 770
762 resource_it->remove_ref(); 771 resource_it->remove_ref();
763 } 772 }
764 773
765 } // namespace cc 774 } // 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