| 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 |