Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: media/base/video_frame.cc

Issue 1326153002: Add PIXEL_FORMAT_MT21. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/video_capture_device_client_unittest.cc ('k') | media/base/video_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698