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 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
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 Loading... | |
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: | |
hubbe
2016/07/06 17:39:00
The code below doesn't support bits_per_channel hi
dshwang
2016/07/06 17:45:18
yes, I know. It will be handled in the next CL; ht
Ken Russell (switch to Gerrit)
2016/07/06 18:24:42
Is it wise to land this patch without the next CL?
dshwang
2016/07/07 12:41:08
It doesn't break any code, because any video decod
hubbe
2016/07/07 17:51:39
You need to do the proper error handling.
Always a
dshwang
2016/07/07 18:11:38
Ok, I understand. Done.
| |
289 bits_per_channel = 16; | |
290 break; | |
285 } | 291 } |
286 | 292 |
287 // Only YUV software video frames are supported. | 293 // Only YUV software video frames are supported. |
288 if (!media::IsYuvPlanar(input_frame_format)) { | 294 if (!media::IsYuvPlanar(input_frame_format)) { |
289 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format); | 295 NOTREACHED() << media::VideoPixelFormatToString(input_frame_format); |
290 return VideoFrameExternalResources(); | 296 return VideoFrameExternalResources(); |
291 } | 297 } |
292 | 298 |
293 const bool software_compositor = context_provider_ == NULL; | 299 const bool software_compositor = context_provider_ == NULL; |
294 | 300 |
(...skipping 394 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
689 if (lost_resource) { | 695 if (lost_resource) { |
690 resource_it->clear_refs(); | 696 resource_it->clear_refs(); |
691 updater->DeleteResource(resource_it); | 697 updater->DeleteResource(resource_it); |
692 return; | 698 return; |
693 } | 699 } |
694 | 700 |
695 resource_it->remove_ref(); | 701 resource_it->remove_ref(); |
696 } | 702 } |
697 | 703 |
698 } // namespace cc | 704 } // namespace cc |
OLD | NEW |