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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 case media::PIXEL_FORMAT_RGB24: | 77 case media::PIXEL_FORMAT_RGB24: |
78 case media::PIXEL_FORMAT_RGB32: | 78 case media::PIXEL_FORMAT_RGB32: |
79 case media::PIXEL_FORMAT_MJPEG: | 79 case media::PIXEL_FORMAT_MJPEG: |
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_Y8: |
| 88 case media::PIXEL_FORMAT_Y16: |
87 case media::PIXEL_FORMAT_UNKNOWN: | 89 case media::PIXEL_FORMAT_UNKNOWN: |
88 break; | 90 break; |
89 } | 91 } |
90 return VideoFrameExternalResources::NONE; | 92 return VideoFrameExternalResources::NONE; |
91 } | 93 } |
92 | 94 |
93 class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient { | 95 class SyncTokenClientImpl : public media::VideoFrame::SyncTokenClient { |
94 public: | 96 public: |
95 SyncTokenClientImpl(gpu::gles2::GLES2Interface* gl, | 97 SyncTokenClientImpl(gpu::gles2::GLES2Interface* gl, |
96 const gpu::SyncToken& sync_token) | 98 const gpu::SyncToken& sync_token) |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 case media::PIXEL_FORMAT_NV12: | 317 case media::PIXEL_FORMAT_NV12: |
316 case media::PIXEL_FORMAT_NV21: | 318 case media::PIXEL_FORMAT_NV21: |
317 case media::PIXEL_FORMAT_UYVY: | 319 case media::PIXEL_FORMAT_UYVY: |
318 case media::PIXEL_FORMAT_YUY2: | 320 case media::PIXEL_FORMAT_YUY2: |
319 case media::PIXEL_FORMAT_ARGB: | 321 case media::PIXEL_FORMAT_ARGB: |
320 case media::PIXEL_FORMAT_XRGB: | 322 case media::PIXEL_FORMAT_XRGB: |
321 case media::PIXEL_FORMAT_RGB24: | 323 case media::PIXEL_FORMAT_RGB24: |
322 case media::PIXEL_FORMAT_RGB32: | 324 case media::PIXEL_FORMAT_RGB32: |
323 case media::PIXEL_FORMAT_MJPEG: | 325 case media::PIXEL_FORMAT_MJPEG: |
324 case media::PIXEL_FORMAT_MT21: | 326 case media::PIXEL_FORMAT_MT21: |
| 327 case media::PIXEL_FORMAT_Y8: |
325 bits_per_channel = 8; | 328 bits_per_channel = 8; |
326 break; | 329 break; |
327 case media::PIXEL_FORMAT_YUV420P9: | 330 case media::PIXEL_FORMAT_YUV420P9: |
328 case media::PIXEL_FORMAT_YUV422P9: | 331 case media::PIXEL_FORMAT_YUV422P9: |
329 case media::PIXEL_FORMAT_YUV444P9: | 332 case media::PIXEL_FORMAT_YUV444P9: |
330 bits_per_channel = 9; | 333 bits_per_channel = 9; |
331 break; | 334 break; |
332 case media::PIXEL_FORMAT_YUV420P10: | 335 case media::PIXEL_FORMAT_YUV420P10: |
333 case media::PIXEL_FORMAT_YUV422P10: | 336 case media::PIXEL_FORMAT_YUV422P10: |
334 case media::PIXEL_FORMAT_YUV444P10: | 337 case media::PIXEL_FORMAT_YUV444P10: |
335 bits_per_channel = 10; | 338 bits_per_channel = 10; |
336 break; | 339 break; |
| 340 case media::PIXEL_FORMAT_Y16: |
| 341 bits_per_channel = 16; |
| 342 break; |
| 343 } |
| 344 |
| 345 // TODO(dshwang): support PIXEL_FORMAT_Y16. crbug.com/624436 |
| 346 if (bits_per_channel == 16) { |
| 347 NOTREACHED(); |
| 348 return VideoFrameExternalResources(); |
337 } | 349 } |
338 | 350 |
339 // Only YUV software video frames are supported. | 351 // Only YUV software video frames are supported. |
340 if (!media::IsYuvPlanar(input_frame_format)) { | 352 if (!media::IsYuvPlanar(input_frame_format)) { |
341 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format); | 353 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format); |
342 return VideoFrameExternalResources(); | 354 return VideoFrameExternalResources(); |
343 } | 355 } |
344 | 356 |
345 const bool software_compositor = context_provider_ == NULL; | 357 const bool software_compositor = context_provider_ == NULL; |
346 | 358 |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 if (lost_resource) { | 737 if (lost_resource) { |
726 resource_it->clear_refs(); | 738 resource_it->clear_refs(); |
727 updater->DeleteResource(resource_it); | 739 updater->DeleteResource(resource_it); |
728 return; | 740 return; |
729 } | 741 } |
730 | 742 |
731 resource_it->remove_ref(); | 743 resource_it->remove_ref(); |
732 } | 744 } |
733 | 745 |
734 } // namespace cc | 746 } // namespace cc |
OLD | NEW |