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

Side by Side Diff: source/convert_from.cc

Issue 2406123002: Remove I411 support, update doc and switch to side by side test (Closed)
Patch Set: bump version, disable a few lint warnings 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 | « source/convert_argb.cc ('k') | source/convert_from_argb.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 /* 1 /*
2 * Copyright 2012 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 return I420ToI4xx(src_y, src_stride_y, 97 return I420ToI4xx(src_y, src_stride_y,
98 src_u, src_stride_u, 98 src_u, src_stride_u,
99 src_v, src_stride_v, 99 src_v, src_stride_v,
100 dst_y, dst_stride_y, 100 dst_y, dst_stride_y,
101 dst_u, dst_stride_u, 101 dst_u, dst_stride_u,
102 dst_v, dst_stride_v, 102 dst_v, dst_stride_v,
103 width, height, 103 width, height,
104 dst_uv_width, dst_uv_height); 104 dst_uv_width, dst_uv_height);
105 } 105 }
106 106
107 // 420 chroma is 1/2 width, 1/2 height
108 // 411 chroma is 1/4 width, 1x height
109 LIBYUV_API
110 int I420ToI411(const uint8* src_y, int src_stride_y,
111 const uint8* src_u, int src_stride_u,
112 const uint8* src_v, int src_stride_v,
113 uint8* dst_y, int dst_stride_y,
114 uint8* dst_u, int dst_stride_u,
115 uint8* dst_v, int dst_stride_v,
116 int width, int height) {
117 const int dst_uv_width = (Abs(width) + 3) >> 2;
118 const int dst_uv_height = Abs(height);
119 return I420ToI4xx(src_y, src_stride_y,
120 src_u, src_stride_u,
121 src_v, src_stride_v,
122 dst_y, dst_stride_y,
123 dst_u, dst_stride_u,
124 dst_v, dst_stride_v,
125 width, height,
126 dst_uv_width, dst_uv_height);
127 }
128
129 // Copy to I400. Source can be I420,422,444,400,NV12,NV21 107 // Copy to I400. Source can be I420,422,444,400,NV12,NV21
130 LIBYUV_API 108 LIBYUV_API
131 int I400Copy(const uint8* src_y, int src_stride_y, 109 int I400Copy(const uint8* src_y, int src_stride_y,
132 uint8* dst_y, int dst_stride_y, 110 uint8* dst_y, int dst_stride_y,
133 int width, int height) { 111 int width, int height) {
134 if (!src_y || !dst_y || 112 if (!src_y || !dst_y ||
135 width <= 0 || height == 0) { 113 width <= 0 || height == 0) {
136 return -1; 114 return -1;
137 } 115 }
138 // Negative height means invert the image. 116 // Negative height means invert the image.
(...skipping 754 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 ARGBToRGB565DitherRow = ARGBToRGB565DitherRow_NEON; 871 ARGBToRGB565DitherRow = ARGBToRGB565DitherRow_NEON;
894 } 872 }
895 } 873 }
896 #endif 874 #endif
897 { 875 {
898 // Allocate a row of argb. 876 // Allocate a row of argb.
899 align_buffer_64(row_argb, width * 4); 877 align_buffer_64(row_argb, width * 4);
900 for (y = 0; y < height; ++y) { 878 for (y = 0; y < height; ++y) {
901 I422ToARGBRow(src_y, src_u, src_v, row_argb, &kYuvI601Constants, width); 879 I422ToARGBRow(src_y, src_u, src_v, row_argb, &kYuvI601Constants, width);
902 ARGBToRGB565DitherRow(row_argb, dst_rgb565, 880 ARGBToRGB565DitherRow(row_argb, dst_rgb565,
903 *(uint32*)(dither4x4 + ((y & 3) << 2)), width); 881 *(uint32*)(dither4x4 + ((y & 3) << 2)), width); // NOLINT
904 dst_rgb565 += dst_stride_rgb565; 882 dst_rgb565 += dst_stride_rgb565;
905 src_y += src_stride_y; 883 src_y += src_stride_y;
906 if (y & 1) { 884 if (y & 1) {
907 src_u += src_stride_u; 885 src_u += src_stride_u;
908 src_v += src_stride_v; 886 src_v += src_stride_v;
909 } 887 }
910 } 888 }
911 free_aligned_buffer_64(row_argb); 889 free_aligned_buffer_64(row_argb);
912 } 890 }
913 return 0; 891 return 0;
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 } 1084 }
1107 r = I420ToI444(y, y_stride, 1085 r = I420ToI444(y, y_stride,
1108 u, u_stride, 1086 u, u_stride,
1109 v, v_stride, 1087 v, v_stride,
1110 dst_sample, width, 1088 dst_sample, width,
1111 dst_u, width, 1089 dst_u, width,
1112 dst_v, width, 1090 dst_v, width,
1113 width, height); 1091 width, height);
1114 break; 1092 break;
1115 } 1093 }
1116 case FOURCC_I411: {
1117 int quarterwidth = (width + 3) / 4;
1118 uint8* dst_u = dst_sample + width * height;
1119 uint8* dst_v = dst_u + quarterwidth * height;
1120 r = I420ToI411(y, y_stride,
1121 u, u_stride,
1122 v, v_stride,
1123 dst_sample, width,
1124 dst_u, quarterwidth,
1125 dst_v, quarterwidth,
1126 width, height);
1127 break;
1128 }
1129
1130 // Formats not supported - MJPG, biplanar, some rgb formats. 1094 // Formats not supported - MJPG, biplanar, some rgb formats.
1131 default: 1095 default:
1132 return -1; // unknown fourcc - return failure code. 1096 return -1; // unknown fourcc - return failure code.
1133 } 1097 }
1134 return r; 1098 return r;
1135 } 1099 }
1136 1100
1137 #ifdef __cplusplus 1101 #ifdef __cplusplus
1138 } // extern "C" 1102 } // extern "C"
1139 } // namespace libyuv 1103 } // namespace libyuv
1140 #endif 1104 #endif
OLDNEW
« no previous file with comments | « source/convert_argb.cc ('k') | source/convert_from_argb.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698