| OLD | NEW |
| 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 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 230 } | 230 } |
| 231 #endif | 231 #endif |
| 232 #if defined(HAS_I422TOYUY2ROW_NEON) | 232 #if defined(HAS_I422TOYUY2ROW_NEON) |
| 233 if (TestCpuFlag(kCpuHasNEON)) { | 233 if (TestCpuFlag(kCpuHasNEON)) { |
| 234 I422ToYUY2Row = I422ToYUY2Row_Any_NEON; | 234 I422ToYUY2Row = I422ToYUY2Row_Any_NEON; |
| 235 if (IS_ALIGNED(width, 16)) { | 235 if (IS_ALIGNED(width, 16)) { |
| 236 I422ToYUY2Row = I422ToYUY2Row_NEON; | 236 I422ToYUY2Row = I422ToYUY2Row_NEON; |
| 237 } | 237 } |
| 238 } | 238 } |
| 239 #endif | 239 #endif |
| 240 #if defined(HAS_I422TOYUY2ROW_MSA) |
| 241 if (TestCpuFlag(kCpuHasMSA)) { |
| 242 I422ToYUY2Row = I422ToYUY2Row_Any_MSA; |
| 243 if (IS_ALIGNED(width, 32)) { |
| 244 I422ToYUY2Row = I422ToYUY2Row_MSA; |
| 245 } |
| 246 } |
| 247 #endif |
| 240 | 248 |
| 241 for (y = 0; y < height - 1; y += 2) { | 249 for (y = 0; y < height - 1; y += 2) { |
| 242 I422ToYUY2Row(src_y, src_u, src_v, dst_yuy2, width); | 250 I422ToYUY2Row(src_y, src_u, src_v, dst_yuy2, width); |
| 243 I422ToYUY2Row(src_y + src_stride_y, src_u, src_v, | 251 I422ToYUY2Row(src_y + src_stride_y, src_u, src_v, |
| 244 dst_yuy2 + dst_stride_yuy2, width); | 252 dst_yuy2 + dst_stride_yuy2, width); |
| 245 src_y += src_stride_y * 2; | 253 src_y += src_stride_y * 2; |
| 246 src_u += src_stride_u; | 254 src_u += src_stride_u; |
| 247 src_v += src_stride_v; | 255 src_v += src_stride_v; |
| 248 dst_yuy2 += dst_stride_yuy2 * 2; | 256 dst_yuy2 += dst_stride_yuy2 * 2; |
| 249 } | 257 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 291 } | 299 } |
| 292 #endif | 300 #endif |
| 293 #if defined(HAS_I422TOUYVYROW_NEON) | 301 #if defined(HAS_I422TOUYVYROW_NEON) |
| 294 if (TestCpuFlag(kCpuHasNEON)) { | 302 if (TestCpuFlag(kCpuHasNEON)) { |
| 295 I422ToUYVYRow = I422ToUYVYRow_Any_NEON; | 303 I422ToUYVYRow = I422ToUYVYRow_Any_NEON; |
| 296 if (IS_ALIGNED(width, 16)) { | 304 if (IS_ALIGNED(width, 16)) { |
| 297 I422ToUYVYRow = I422ToUYVYRow_NEON; | 305 I422ToUYVYRow = I422ToUYVYRow_NEON; |
| 298 } | 306 } |
| 299 } | 307 } |
| 300 #endif | 308 #endif |
| 309 #if defined(HAS_I422TOUYVYROW_MSA) |
| 310 if (TestCpuFlag(kCpuHasMSA)) { |
| 311 I422ToUYVYRow = I422ToUYVYRow_Any_MSA; |
| 312 if (IS_ALIGNED(width, 32)) { |
| 313 I422ToUYVYRow = I422ToUYVYRow_MSA; |
| 314 } |
| 315 } |
| 316 #endif |
| 301 | 317 |
| 302 for (y = 0; y < height; ++y) { | 318 for (y = 0; y < height; ++y) { |
| 303 I422ToUYVYRow(src_y, src_u, src_v, dst_uyvy, width); | 319 I422ToUYVYRow(src_y, src_u, src_v, dst_uyvy, width); |
| 304 src_y += src_stride_y; | 320 src_y += src_stride_y; |
| 305 src_u += src_stride_u; | 321 src_u += src_stride_u; |
| 306 src_v += src_stride_v; | 322 src_v += src_stride_v; |
| 307 dst_uyvy += dst_stride_uyvy; | 323 dst_uyvy += dst_stride_uyvy; |
| 308 } | 324 } |
| 309 return 0; | 325 return 0; |
| 310 } | 326 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 338 } | 354 } |
| 339 #endif | 355 #endif |
| 340 #if defined(HAS_I422TOUYVYROW_NEON) | 356 #if defined(HAS_I422TOUYVYROW_NEON) |
| 341 if (TestCpuFlag(kCpuHasNEON)) { | 357 if (TestCpuFlag(kCpuHasNEON)) { |
| 342 I422ToUYVYRow = I422ToUYVYRow_Any_NEON; | 358 I422ToUYVYRow = I422ToUYVYRow_Any_NEON; |
| 343 if (IS_ALIGNED(width, 16)) { | 359 if (IS_ALIGNED(width, 16)) { |
| 344 I422ToUYVYRow = I422ToUYVYRow_NEON; | 360 I422ToUYVYRow = I422ToUYVYRow_NEON; |
| 345 } | 361 } |
| 346 } | 362 } |
| 347 #endif | 363 #endif |
| 364 #if defined(HAS_I422TOUYVYROW_MSA) |
| 365 if (TestCpuFlag(kCpuHasMSA)) { |
| 366 I422ToUYVYRow = I422ToUYVYRow_Any_MSA; |
| 367 if (IS_ALIGNED(width, 32)) { |
| 368 I422ToUYVYRow = I422ToUYVYRow_MSA; |
| 369 } |
| 370 } |
| 371 #endif |
| 348 | 372 |
| 349 for (y = 0; y < height - 1; y += 2) { | 373 for (y = 0; y < height - 1; y += 2) { |
| 350 I422ToUYVYRow(src_y, src_u, src_v, dst_uyvy, width); | 374 I422ToUYVYRow(src_y, src_u, src_v, dst_uyvy, width); |
| 351 I422ToUYVYRow(src_y + src_stride_y, src_u, src_v, | 375 I422ToUYVYRow(src_y + src_stride_y, src_u, src_v, |
| 352 dst_uyvy + dst_stride_uyvy, width); | 376 dst_uyvy + dst_stride_uyvy, width); |
| 353 src_y += src_stride_y * 2; | 377 src_y += src_stride_y * 2; |
| 354 src_u += src_stride_u; | 378 src_u += src_stride_u; |
| 355 src_v += src_stride_v; | 379 src_v += src_stride_v; |
| 356 dst_uyvy += dst_stride_uyvy * 2; | 380 dst_uyvy += dst_stride_uyvy * 2; |
| 357 } | 381 } |
| (...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1107 default: | 1131 default: |
| 1108 return -1; // unknown fourcc - return failure code. | 1132 return -1; // unknown fourcc - return failure code. |
| 1109 } | 1133 } |
| 1110 return r; | 1134 return r; |
| 1111 } | 1135 } |
| 1112 | 1136 |
| 1113 #ifdef __cplusplus | 1137 #ifdef __cplusplus |
| 1114 } // extern "C" | 1138 } // extern "C" |
| 1115 } // namespace libyuv | 1139 } // namespace libyuv |
| 1116 #endif | 1140 #endif |
| OLD | NEW |