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

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

Issue 2571163002: Add PIXEL_FORMAT_I422. (Closed)
Patch Set: move switch cases to align with the enum value order Created 4 years 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
« no previous file with comments | « cc/resources/video_resource_updater.cc ('k') | media/base/video_frame_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #include <climits> 8 #include <climits>
9 9
10 #include "base/atomic_sequence_num.h" 10 #include "base/atomic_sequence_num.h"
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 case PIXEL_FORMAT_YUV422P9: 116 case PIXEL_FORMAT_YUV422P9:
117 case PIXEL_FORMAT_YUV444P9: 117 case PIXEL_FORMAT_YUV444P9:
118 case PIXEL_FORMAT_YUV420P10: 118 case PIXEL_FORMAT_YUV420P10:
119 case PIXEL_FORMAT_YUV422P10: 119 case PIXEL_FORMAT_YUV422P10:
120 case PIXEL_FORMAT_YUV444P10: 120 case PIXEL_FORMAT_YUV444P10:
121 case PIXEL_FORMAT_YUV420P12: 121 case PIXEL_FORMAT_YUV420P12:
122 case PIXEL_FORMAT_YUV422P12: 122 case PIXEL_FORMAT_YUV422P12:
123 case PIXEL_FORMAT_YUV444P12: 123 case PIXEL_FORMAT_YUV444P12:
124 case PIXEL_FORMAT_YV12A: 124 case PIXEL_FORMAT_YV12A:
125 case PIXEL_FORMAT_UYVY: 125 case PIXEL_FORMAT_UYVY:
126 case PIXEL_FORMAT_I422:
126 return true; 127 return true;
127 case PIXEL_FORMAT_UNKNOWN: 128 case PIXEL_FORMAT_UNKNOWN:
128 break; 129 break;
129 } 130 }
130 NOTREACHED() << "Unsupported video frame format: " << format; 131 NOTREACHED() << "Unsupported video frame format: " << format;
131 return false; 132 return false;
132 } 133 }
133 134
134 // static 135 // static
135 bool VideoFrame::IsValidConfig(VideoPixelFormat format, 136 bool VideoFrame::IsValidConfig(VideoPixelFormat format,
(...skipping 14 matching lines...) Expand all
150 natural_size.width() > limits::kMaxDimension || 151 natural_size.width() > limits::kMaxDimension ||
151 natural_size.height() > limits::kMaxDimension) 152 natural_size.height() > limits::kMaxDimension)
152 return false; 153 return false;
153 154
154 // TODO(mcasas): Remove parameter |storage_type| when the opaque storage types 155 // TODO(mcasas): Remove parameter |storage_type| when the opaque storage types
155 // comply with the checks below. Right now we skip them. 156 // comply with the checks below. Right now we skip them.
156 if (!IsStorageTypeMappable(storage_type)) 157 if (!IsStorageTypeMappable(storage_type))
157 return true; 158 return true;
158 159
159 // Make sure new formats are properly accounted for in the method. 160 // Make sure new formats are properly accounted for in the method.
160 static_assert(PIXEL_FORMAT_MAX == 26, 161 static_assert(PIXEL_FORMAT_MAX == 27,
161 "Added pixel format, please review IsValidConfig()"); 162 "Added pixel format, please review IsValidConfig()");
162 163
163 if (format == PIXEL_FORMAT_UNKNOWN) { 164 if (format == PIXEL_FORMAT_UNKNOWN) {
164 return coded_size.IsEmpty() && visible_rect.IsEmpty() && 165 return coded_size.IsEmpty() && visible_rect.IsEmpty() &&
165 natural_size.IsEmpty(); 166 natural_size.IsEmpty();
166 } 167 }
167 168
168 // Check that software-allocated buffer formats are not empty. 169 // Check that software-allocated buffer formats are not empty.
169 return !coded_size.IsEmpty() && !visible_rect.IsEmpty() && 170 return !coded_size.IsEmpty() && !visible_rect.IsEmpty() &&
170 !natural_size.IsEmpty(); 171 !natural_size.IsEmpty();
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 case PIXEL_FORMAT_YV24: 521 case PIXEL_FORMAT_YV24:
521 case PIXEL_FORMAT_YUV420P9: 522 case PIXEL_FORMAT_YUV420P9:
522 case PIXEL_FORMAT_YUV422P9: 523 case PIXEL_FORMAT_YUV422P9:
523 case PIXEL_FORMAT_YUV444P9: 524 case PIXEL_FORMAT_YUV444P9:
524 case PIXEL_FORMAT_YUV420P10: 525 case PIXEL_FORMAT_YUV420P10:
525 case PIXEL_FORMAT_YUV422P10: 526 case PIXEL_FORMAT_YUV422P10:
526 case PIXEL_FORMAT_YUV444P10: 527 case PIXEL_FORMAT_YUV444P10:
527 case PIXEL_FORMAT_YUV420P12: 528 case PIXEL_FORMAT_YUV420P12:
528 case PIXEL_FORMAT_YUV422P12: 529 case PIXEL_FORMAT_YUV422P12:
529 case PIXEL_FORMAT_YUV444P12: 530 case PIXEL_FORMAT_YUV444P12:
531 case PIXEL_FORMAT_I422:
530 return 3; 532 return 3;
531 case PIXEL_FORMAT_YV12A: 533 case PIXEL_FORMAT_YV12A:
532 return 4; 534 return 4;
533 case PIXEL_FORMAT_UNKNOWN: 535 case PIXEL_FORMAT_UNKNOWN:
534 break; 536 break;
535 } 537 }
536 NOTREACHED() << "Unsupported video frame format: " << format; 538 NOTREACHED() << "Unsupported video frame format: " << format;
537 return 0; 539 return 0;
538 } 540 }
539 541
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
1022 case kVPlane: 1024 case kVPlane:
1023 switch (format) { 1025 switch (format) {
1024 case PIXEL_FORMAT_YV24: 1026 case PIXEL_FORMAT_YV24:
1025 case PIXEL_FORMAT_YUV444P9: 1027 case PIXEL_FORMAT_YUV444P9:
1026 case PIXEL_FORMAT_YUV444P10: 1028 case PIXEL_FORMAT_YUV444P10:
1027 case PIXEL_FORMAT_YUV444P12: 1029 case PIXEL_FORMAT_YUV444P12:
1028 case PIXEL_FORMAT_Y16: 1030 case PIXEL_FORMAT_Y16:
1029 return gfx::Size(1, 1); 1031 return gfx::Size(1, 1);
1030 1032
1031 case PIXEL_FORMAT_YV16: 1033 case PIXEL_FORMAT_YV16:
1034 case PIXEL_FORMAT_I422:
1032 case PIXEL_FORMAT_YUV422P9: 1035 case PIXEL_FORMAT_YUV422P9:
1033 case PIXEL_FORMAT_YUV422P10: 1036 case PIXEL_FORMAT_YUV422P10:
1034 case PIXEL_FORMAT_YUV422P12: 1037 case PIXEL_FORMAT_YUV422P12:
1035 return gfx::Size(2, 1); 1038 return gfx::Size(2, 1);
1036 1039
1037 case PIXEL_FORMAT_YV12: 1040 case PIXEL_FORMAT_YV12:
1038 case PIXEL_FORMAT_I420: 1041 case PIXEL_FORMAT_I420:
1039 case PIXEL_FORMAT_YV12A: 1042 case PIXEL_FORMAT_YV12A:
1040 case PIXEL_FORMAT_NV12: 1043 case PIXEL_FORMAT_NV12:
1041 case PIXEL_FORMAT_NV21: 1044 case PIXEL_FORMAT_NV21:
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1090 static const int bytes_per_element[] = {1, 2}; 1093 static const int bytes_per_element[] = {1, 2};
1091 DCHECK_LT(plane, arraysize(bytes_per_element)); 1094 DCHECK_LT(plane, arraysize(bytes_per_element));
1092 return bytes_per_element[plane]; 1095 return bytes_per_element[plane];
1093 } 1096 }
1094 case PIXEL_FORMAT_YV12: 1097 case PIXEL_FORMAT_YV12:
1095 case PIXEL_FORMAT_I420: 1098 case PIXEL_FORMAT_I420:
1096 case PIXEL_FORMAT_YV16: 1099 case PIXEL_FORMAT_YV16:
1097 case PIXEL_FORMAT_YV12A: 1100 case PIXEL_FORMAT_YV12A:
1098 case PIXEL_FORMAT_YV24: 1101 case PIXEL_FORMAT_YV24:
1099 case PIXEL_FORMAT_Y8: 1102 case PIXEL_FORMAT_Y8:
1103 case PIXEL_FORMAT_I422:
1100 return 1; 1104 return 1;
1101 case PIXEL_FORMAT_MJPEG: 1105 case PIXEL_FORMAT_MJPEG:
1102 return 0; 1106 return 0;
1103 case PIXEL_FORMAT_UNKNOWN: 1107 case PIXEL_FORMAT_UNKNOWN:
1104 break; 1108 break;
1105 } 1109 }
1106 NOTREACHED(); 1110 NOTREACHED();
1107 return 0; 1111 return 0;
1108 } 1112 }
1109 1113
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1148 if (zero_initialize_memory) 1152 if (zero_initialize_memory)
1149 memset(data, 0, data_size); 1153 memset(data, 0, data_size);
1150 1154
1151 for (size_t plane = 0; plane < NumPlanes(format_); ++plane) 1155 for (size_t plane = 0; plane < NumPlanes(format_); ++plane)
1152 data_[plane] = data + offset[plane]; 1156 data_[plane] = data + offset[plane];
1153 1157
1154 AddDestructionObserver(base::Bind(&base::AlignedFree, data)); 1158 AddDestructionObserver(base::Bind(&base::AlignedFree, data));
1155 } 1159 }
1156 1160
1157 } // namespace media 1161 } // namespace media
OLDNEW
« no previous file with comments | « cc/resources/video_resource_updater.cc ('k') | media/base/video_frame_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698