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

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

Issue 2370453003: 12-bit vp9 video support (Closed)
Patch Set: typO Created 4 years, 2 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
« no previous file with comments | « content/browser/media/media_browsertest.cc ('k') | media/base/video_types.h » ('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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 natural_size.width() > limits::kMaxDimension || 114 natural_size.width() > limits::kMaxDimension ||
115 natural_size.height() > limits::kMaxDimension) 115 natural_size.height() > limits::kMaxDimension)
116 return false; 116 return false;
117 117
118 // TODO(mcasas): Remove parameter |storage_type| when the opaque storage types 118 // TODO(mcasas): Remove parameter |storage_type| when the opaque storage types
119 // comply with the checks below. Right now we skip them. 119 // comply with the checks below. Right now we skip them.
120 if (!IsStorageTypeMappable(storage_type)) 120 if (!IsStorageTypeMappable(storage_type))
121 return true; 121 return true;
122 122
123 // Make sure new formats are properly accounted for in the method. 123 // Make sure new formats are properly accounted for in the method.
124 static_assert(PIXEL_FORMAT_MAX == 21, 124 static_assert(PIXEL_FORMAT_MAX == 24,
125 "Added pixel format, please review IsValidConfig()"); 125 "Added pixel format, please review IsValidConfig()");
126 126
127 if (format == PIXEL_FORMAT_UNKNOWN) { 127 if (format == PIXEL_FORMAT_UNKNOWN) {
128 return coded_size.IsEmpty() && visible_rect.IsEmpty() && 128 return coded_size.IsEmpty() && visible_rect.IsEmpty() &&
129 natural_size.IsEmpty(); 129 natural_size.IsEmpty();
130 } 130 }
131 131
132 // Check that software-allocated buffer formats are not empty. 132 // Check that software-allocated buffer formats are not empty.
133 return !coded_size.IsEmpty() && !visible_rect.IsEmpty() && 133 return !coded_size.IsEmpty() && !visible_rect.IsEmpty() &&
134 !natural_size.IsEmpty(); 134 !natural_size.IsEmpty();
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 case PIXEL_FORMAT_I420: 517 case PIXEL_FORMAT_I420:
518 case PIXEL_FORMAT_YV12: 518 case PIXEL_FORMAT_YV12:
519 case PIXEL_FORMAT_YV16: 519 case PIXEL_FORMAT_YV16:
520 case PIXEL_FORMAT_YV24: 520 case PIXEL_FORMAT_YV24:
521 case PIXEL_FORMAT_YUV420P9: 521 case PIXEL_FORMAT_YUV420P9:
522 case PIXEL_FORMAT_YUV422P9: 522 case PIXEL_FORMAT_YUV422P9:
523 case PIXEL_FORMAT_YUV444P9: 523 case PIXEL_FORMAT_YUV444P9:
524 case PIXEL_FORMAT_YUV420P10: 524 case PIXEL_FORMAT_YUV420P10:
525 case PIXEL_FORMAT_YUV422P10: 525 case PIXEL_FORMAT_YUV422P10:
526 case PIXEL_FORMAT_YUV444P10: 526 case PIXEL_FORMAT_YUV444P10:
527 case PIXEL_FORMAT_YUV420P12:
528 case PIXEL_FORMAT_YUV422P12:
529 case PIXEL_FORMAT_YUV444P12:
527 return 3; 530 return 3;
528 case PIXEL_FORMAT_YV12A: 531 case PIXEL_FORMAT_YV12A:
529 return 4; 532 return 4;
530 case PIXEL_FORMAT_UNKNOWN: 533 case PIXEL_FORMAT_UNKNOWN:
531 break; 534 break;
532 } 535 }
533 NOTREACHED() << "Unsupported video frame format: " << format; 536 NOTREACHED() << "Unsupported video frame format: " << format;
534 return 0; 537 return 0;
535 } 538 }
536 539
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
1007 case kYPlane: // and kARGBPlane: 1010 case kYPlane: // and kARGBPlane:
1008 case kAPlane: 1011 case kAPlane:
1009 return gfx::Size(1, 1); 1012 return gfx::Size(1, 1);
1010 1013
1011 case kUPlane: // and kUVPlane: 1014 case kUPlane: // and kUVPlane:
1012 case kVPlane: 1015 case kVPlane:
1013 switch (format) { 1016 switch (format) {
1014 case PIXEL_FORMAT_YV24: 1017 case PIXEL_FORMAT_YV24:
1015 case PIXEL_FORMAT_YUV444P9: 1018 case PIXEL_FORMAT_YUV444P9:
1016 case PIXEL_FORMAT_YUV444P10: 1019 case PIXEL_FORMAT_YUV444P10:
1020 case PIXEL_FORMAT_YUV444P12:
1017 return gfx::Size(1, 1); 1021 return gfx::Size(1, 1);
1018 1022
1019 case PIXEL_FORMAT_YV16: 1023 case PIXEL_FORMAT_YV16:
1020 case PIXEL_FORMAT_YUV422P9: 1024 case PIXEL_FORMAT_YUV422P9:
1021 case PIXEL_FORMAT_YUV422P10: 1025 case PIXEL_FORMAT_YUV422P10:
1026 case PIXEL_FORMAT_YUV422P12:
1022 return gfx::Size(2, 1); 1027 return gfx::Size(2, 1);
1023 1028
1024 case PIXEL_FORMAT_YV12: 1029 case PIXEL_FORMAT_YV12:
1025 case PIXEL_FORMAT_I420: 1030 case PIXEL_FORMAT_I420:
1026 case PIXEL_FORMAT_YV12A: 1031 case PIXEL_FORMAT_YV12A:
1027 case PIXEL_FORMAT_NV12: 1032 case PIXEL_FORMAT_NV12:
1028 case PIXEL_FORMAT_NV21: 1033 case PIXEL_FORMAT_NV21:
1029 case PIXEL_FORMAT_MT21: 1034 case PIXEL_FORMAT_MT21:
1030 case PIXEL_FORMAT_YUV420P9: 1035 case PIXEL_FORMAT_YUV420P9:
1031 case PIXEL_FORMAT_YUV420P10: 1036 case PIXEL_FORMAT_YUV420P10:
1037 case PIXEL_FORMAT_YUV420P12:
1032 return gfx::Size(2, 2); 1038 return gfx::Size(2, 2);
1033 1039
1034 case PIXEL_FORMAT_UNKNOWN: 1040 case PIXEL_FORMAT_UNKNOWN:
1035 case PIXEL_FORMAT_UYVY: 1041 case PIXEL_FORMAT_UYVY:
1036 case PIXEL_FORMAT_YUY2: 1042 case PIXEL_FORMAT_YUY2:
1037 case PIXEL_FORMAT_ARGB: 1043 case PIXEL_FORMAT_ARGB:
1038 case PIXEL_FORMAT_XRGB: 1044 case PIXEL_FORMAT_XRGB:
1039 case PIXEL_FORMAT_RGB24: 1045 case PIXEL_FORMAT_RGB24:
1040 case PIXEL_FORMAT_RGB32: 1046 case PIXEL_FORMAT_RGB32:
1041 case PIXEL_FORMAT_MJPEG: 1047 case PIXEL_FORMAT_MJPEG:
(...skipping 15 matching lines...) Expand all
1057 case PIXEL_FORMAT_RGB24: 1063 case PIXEL_FORMAT_RGB24:
1058 return 3; 1064 return 3;
1059 case PIXEL_FORMAT_UYVY: 1065 case PIXEL_FORMAT_UYVY:
1060 case PIXEL_FORMAT_YUY2: 1066 case PIXEL_FORMAT_YUY2:
1061 case PIXEL_FORMAT_YUV420P9: 1067 case PIXEL_FORMAT_YUV420P9:
1062 case PIXEL_FORMAT_YUV422P9: 1068 case PIXEL_FORMAT_YUV422P9:
1063 case PIXEL_FORMAT_YUV444P9: 1069 case PIXEL_FORMAT_YUV444P9:
1064 case PIXEL_FORMAT_YUV420P10: 1070 case PIXEL_FORMAT_YUV420P10:
1065 case PIXEL_FORMAT_YUV422P10: 1071 case PIXEL_FORMAT_YUV422P10:
1066 case PIXEL_FORMAT_YUV444P10: 1072 case PIXEL_FORMAT_YUV444P10:
1073 case PIXEL_FORMAT_YUV420P12:
1074 case PIXEL_FORMAT_YUV422P12:
1075 case PIXEL_FORMAT_YUV444P12:
1067 return 2; 1076 return 2;
1068 case PIXEL_FORMAT_NV12: 1077 case PIXEL_FORMAT_NV12:
1069 case PIXEL_FORMAT_NV21: 1078 case PIXEL_FORMAT_NV21:
1070 case PIXEL_FORMAT_MT21: { 1079 case PIXEL_FORMAT_MT21: {
1071 static const int bytes_per_element[] = {1, 2}; 1080 static const int bytes_per_element[] = {1, 2};
1072 DCHECK_LT(plane, arraysize(bytes_per_element)); 1081 DCHECK_LT(plane, arraysize(bytes_per_element));
1073 return bytes_per_element[plane]; 1082 return bytes_per_element[plane];
1074 } 1083 }
1075 case PIXEL_FORMAT_YV12: 1084 case PIXEL_FORMAT_YV12:
1076 case PIXEL_FORMAT_I420: 1085 case PIXEL_FORMAT_I420:
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 if (zero_initialize_memory) 1137 if (zero_initialize_memory)
1129 memset(data, 0, data_size); 1138 memset(data, 0, data_size);
1130 1139
1131 for (size_t plane = 0; plane < NumPlanes(format_); ++plane) 1140 for (size_t plane = 0; plane < NumPlanes(format_); ++plane)
1132 data_[plane] = data + offset[plane]; 1141 data_[plane] = data + offset[plane];
1133 1142
1134 AddDestructionObserver(base::Bind(&base::AlignedFree, data)); 1143 AddDestructionObserver(base::Bind(&base::AlignedFree, data));
1135 } 1144 }
1136 1145
1137 } // namespace media 1146 } // namespace media
OLDNEW
« no previous file with comments | « content/browser/media/media_browsertest.cc ('k') | media/base/video_types.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698