OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |