| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "media/base/video_frame.h" | 5 #include "media/base/video_frame.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 return gfx::Size(1, 1); | 82 return gfx::Size(1, 1); |
| 83 | 83 |
| 84 case PIXEL_FORMAT_YV16: | 84 case PIXEL_FORMAT_YV16: |
| 85 return gfx::Size(2, 1); | 85 return gfx::Size(2, 1); |
| 86 | 86 |
| 87 case PIXEL_FORMAT_YV12: | 87 case PIXEL_FORMAT_YV12: |
| 88 case PIXEL_FORMAT_I420: | 88 case PIXEL_FORMAT_I420: |
| 89 case PIXEL_FORMAT_YV12A: | 89 case PIXEL_FORMAT_YV12A: |
| 90 case PIXEL_FORMAT_NV12: | 90 case PIXEL_FORMAT_NV12: |
| 91 case PIXEL_FORMAT_NV21: | 91 case PIXEL_FORMAT_NV21: |
| 92 case PIXEL_FORMAT_MT21: |
| 92 return gfx::Size(2, 2); | 93 return gfx::Size(2, 2); |
| 93 | 94 |
| 94 case PIXEL_FORMAT_UNKNOWN: | 95 case PIXEL_FORMAT_UNKNOWN: |
| 95 case PIXEL_FORMAT_UYVY: | 96 case PIXEL_FORMAT_UYVY: |
| 96 case PIXEL_FORMAT_YUY2: | 97 case PIXEL_FORMAT_YUY2: |
| 97 case PIXEL_FORMAT_ARGB: | 98 case PIXEL_FORMAT_ARGB: |
| 98 case PIXEL_FORMAT_XRGB: | 99 case PIXEL_FORMAT_XRGB: |
| 99 case PIXEL_FORMAT_RGB24: | 100 case PIXEL_FORMAT_RGB24: |
| 100 case PIXEL_FORMAT_RGB32: | 101 case PIXEL_FORMAT_RGB32: |
| 101 case PIXEL_FORMAT_MJPEG: | 102 case PIXEL_FORMAT_MJPEG: |
| (...skipping 24 matching lines...) Expand all Loading... |
| 126 case PIXEL_FORMAT_ARGB: | 127 case PIXEL_FORMAT_ARGB: |
| 127 case PIXEL_FORMAT_XRGB: | 128 case PIXEL_FORMAT_XRGB: |
| 128 case PIXEL_FORMAT_RGB32: | 129 case PIXEL_FORMAT_RGB32: |
| 129 return 4; | 130 return 4; |
| 130 case PIXEL_FORMAT_RGB24: | 131 case PIXEL_FORMAT_RGB24: |
| 131 return 3; | 132 return 3; |
| 132 case PIXEL_FORMAT_UYVY: | 133 case PIXEL_FORMAT_UYVY: |
| 133 case PIXEL_FORMAT_YUY2: | 134 case PIXEL_FORMAT_YUY2: |
| 134 return 2; | 135 return 2; |
| 135 case PIXEL_FORMAT_NV12: | 136 case PIXEL_FORMAT_NV12: |
| 136 case PIXEL_FORMAT_NV21: { | 137 case PIXEL_FORMAT_NV21: |
| 138 case PIXEL_FORMAT_MT21: { |
| 137 static const int bytes_per_element[] = {1, 2}; | 139 static const int bytes_per_element[] = {1, 2}; |
| 138 DCHECK_LT(plane, arraysize(bytes_per_element)); | 140 DCHECK_LT(plane, arraysize(bytes_per_element)); |
| 139 return bytes_per_element[plane]; | 141 return bytes_per_element[plane]; |
| 140 } | 142 } |
| 141 case PIXEL_FORMAT_YV12: | 143 case PIXEL_FORMAT_YV12: |
| 142 case PIXEL_FORMAT_I420: | 144 case PIXEL_FORMAT_I420: |
| 143 case PIXEL_FORMAT_YV16: | 145 case PIXEL_FORMAT_YV16: |
| 144 case PIXEL_FORMAT_YV12A: | 146 case PIXEL_FORMAT_YV12A: |
| 145 case PIXEL_FORMAT_YV24: | 147 case PIXEL_FORMAT_YV24: |
| 146 return 1; | 148 return 1; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 170 natural_size.width() > limits::kMaxDimension || | 172 natural_size.width() > limits::kMaxDimension || |
| 171 natural_size.height() > limits::kMaxDimension) | 173 natural_size.height() > limits::kMaxDimension) |
| 172 return false; | 174 return false; |
| 173 | 175 |
| 174 // TODO(mcasas): Remove parameter |storage_type| when the opaque storage types | 176 // TODO(mcasas): Remove parameter |storage_type| when the opaque storage types |
| 175 // comply with the checks below. Right now we skip them. | 177 // comply with the checks below. Right now we skip them. |
| 176 if (!IsStorageTypeMappable(storage_type)) | 178 if (!IsStorageTypeMappable(storage_type)) |
| 177 return true; | 179 return true; |
| 178 | 180 |
| 179 // Make sure new formats are properly accounted for in the method. | 181 // Make sure new formats are properly accounted for in the method. |
| 180 static_assert(PIXEL_FORMAT_MAX == 14, | 182 static_assert(PIXEL_FORMAT_MAX == 15, |
| 181 "Added pixel format, please review IsValidConfig()"); | 183 "Added pixel format, please review IsValidConfig()"); |
| 182 | 184 |
| 183 if (format == PIXEL_FORMAT_UNKNOWN) { | 185 if (format == PIXEL_FORMAT_UNKNOWN) { |
| 184 return coded_size.IsEmpty() && visible_rect.IsEmpty() && | 186 return coded_size.IsEmpty() && visible_rect.IsEmpty() && |
| 185 natural_size.IsEmpty(); | 187 natural_size.IsEmpty(); |
| 186 } | 188 } |
| 187 | 189 |
| 188 // Check that software-allocated buffer formats are not empty. | 190 // Check that software-allocated buffer formats are not empty. |
| 189 return !coded_size.IsEmpty() && !visible_rect.IsEmpty() && | 191 return !coded_size.IsEmpty() && !visible_rect.IsEmpty() && |
| 190 !natural_size.IsEmpty(); | 192 !natural_size.IsEmpty(); |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 case PIXEL_FORMAT_UYVY: | 523 case PIXEL_FORMAT_UYVY: |
| 522 case PIXEL_FORMAT_YUY2: | 524 case PIXEL_FORMAT_YUY2: |
| 523 case PIXEL_FORMAT_ARGB: | 525 case PIXEL_FORMAT_ARGB: |
| 524 case PIXEL_FORMAT_XRGB: | 526 case PIXEL_FORMAT_XRGB: |
| 525 case PIXEL_FORMAT_RGB24: | 527 case PIXEL_FORMAT_RGB24: |
| 526 case PIXEL_FORMAT_RGB32: | 528 case PIXEL_FORMAT_RGB32: |
| 527 case PIXEL_FORMAT_MJPEG: | 529 case PIXEL_FORMAT_MJPEG: |
| 528 return 1; | 530 return 1; |
| 529 case PIXEL_FORMAT_NV12: | 531 case PIXEL_FORMAT_NV12: |
| 530 case PIXEL_FORMAT_NV21: | 532 case PIXEL_FORMAT_NV21: |
| 533 case PIXEL_FORMAT_MT21: |
| 531 return 2; | 534 return 2; |
| 532 case PIXEL_FORMAT_I420: | 535 case PIXEL_FORMAT_I420: |
| 533 case PIXEL_FORMAT_YV12: | 536 case PIXEL_FORMAT_YV12: |
| 534 case PIXEL_FORMAT_YV16: | 537 case PIXEL_FORMAT_YV16: |
| 535 case PIXEL_FORMAT_YV24: | 538 case PIXEL_FORMAT_YV24: |
| 536 return 3; | 539 return 3; |
| 537 case PIXEL_FORMAT_YV12A: | 540 case PIXEL_FORMAT_YV12A: |
| 538 return 4; | 541 return 4; |
| 539 case PIXEL_FORMAT_UNKNOWN: | 542 case PIXEL_FORMAT_UNKNOWN: |
| 540 break; | 543 break; |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 952 if (zero_initialize_memory) | 955 if (zero_initialize_memory) |
| 953 memset(data, 0, data_size); | 956 memset(data, 0, data_size); |
| 954 | 957 |
| 955 for (size_t plane = 0; plane < NumPlanes(format_); ++plane) | 958 for (size_t plane = 0; plane < NumPlanes(format_); ++plane) |
| 956 data_[plane] = data + offset[plane]; | 959 data_[plane] = data + offset[plane]; |
| 957 | 960 |
| 958 AddDestructionObserver(base::Bind(&base::AlignedFree, data)); | 961 AddDestructionObserver(base::Bind(&base::AlignedFree, data)); |
| 959 } | 962 } |
| 960 | 963 |
| 961 } // namespace media | 964 } // namespace media |
| OLD | NEW |