| 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 1334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1345 } | 1345 } |
| 1346 #endif | 1346 #endif |
| 1347 #if defined(HAS_ARGBTOUVJROW_NEON) | 1347 #if defined(HAS_ARGBTOUVJROW_NEON) |
| 1348 if (TestCpuFlag(kCpuHasNEON)) { | 1348 if (TestCpuFlag(kCpuHasNEON)) { |
| 1349 ARGBToUVJRow = ARGBToUVJRow_Any_NEON; | 1349 ARGBToUVJRow = ARGBToUVJRow_Any_NEON; |
| 1350 if (IS_ALIGNED(width, 16)) { | 1350 if (IS_ALIGNED(width, 16)) { |
| 1351 ARGBToUVJRow = ARGBToUVJRow_NEON; | 1351 ARGBToUVJRow = ARGBToUVJRow_NEON; |
| 1352 } | 1352 } |
| 1353 } | 1353 } |
| 1354 #endif | 1354 #endif |
| 1355 #if defined(HAS_ARGBTOYJROW_MSA) |
| 1356 if (TestCpuFlag(kCpuHasMSA)) { |
| 1357 ARGBToYJRow = ARGBToYJRow_Any_MSA; |
| 1358 if (IS_ALIGNED(width, 16)) { |
| 1359 ARGBToYJRow = ARGBToYJRow_MSA; |
| 1360 } |
| 1361 } |
| 1362 #endif |
| 1363 #if defined(HAS_ARGBTOUVJROW_MSA) |
| 1364 if (TestCpuFlag(kCpuHasMSA)) { |
| 1365 ARGBToUVJRow = ARGBToUVJRow_Any_MSA; |
| 1366 if (IS_ALIGNED(width, 32)) { |
| 1367 ARGBToUVJRow = ARGBToUVJRow_MSA; |
| 1368 } |
| 1369 } |
| 1370 #endif |
| 1355 | 1371 |
| 1356 for (y = 0; y < height - 1; y += 2) { | 1372 for (y = 0; y < height - 1; y += 2) { |
| 1357 ARGBToUVJRow(src_argb, src_stride_argb, dst_u, dst_v, width); | 1373 ARGBToUVJRow(src_argb, src_stride_argb, dst_u, dst_v, width); |
| 1358 ARGBToYJRow(src_argb, dst_yj, width); | 1374 ARGBToYJRow(src_argb, dst_yj, width); |
| 1359 ARGBToYJRow(src_argb + src_stride_argb, dst_yj + dst_stride_yj, width); | 1375 ARGBToYJRow(src_argb + src_stride_argb, dst_yj + dst_stride_yj, width); |
| 1360 src_argb += src_stride_argb * 2; | 1376 src_argb += src_stride_argb * 2; |
| 1361 dst_yj += dst_stride_yj * 2; | 1377 dst_yj += dst_stride_yj * 2; |
| 1362 dst_u += dst_stride_u; | 1378 dst_u += dst_stride_u; |
| 1363 dst_v += dst_stride_v; | 1379 dst_v += dst_stride_v; |
| 1364 } | 1380 } |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1429 } | 1445 } |
| 1430 #endif | 1446 #endif |
| 1431 #if defined(HAS_ARGBTOUVJROW_NEON) | 1447 #if defined(HAS_ARGBTOUVJROW_NEON) |
| 1432 if (TestCpuFlag(kCpuHasNEON)) { | 1448 if (TestCpuFlag(kCpuHasNEON)) { |
| 1433 ARGBToUVJRow = ARGBToUVJRow_Any_NEON; | 1449 ARGBToUVJRow = ARGBToUVJRow_Any_NEON; |
| 1434 if (IS_ALIGNED(width, 16)) { | 1450 if (IS_ALIGNED(width, 16)) { |
| 1435 ARGBToUVJRow = ARGBToUVJRow_NEON; | 1451 ARGBToUVJRow = ARGBToUVJRow_NEON; |
| 1436 } | 1452 } |
| 1437 } | 1453 } |
| 1438 #endif | 1454 #endif |
| 1455 #if defined(HAS_ARGBTOYJROW_MSA) |
| 1456 if (TestCpuFlag(kCpuHasMSA)) { |
| 1457 ARGBToYJRow = ARGBToYJRow_Any_MSA; |
| 1458 if (IS_ALIGNED(width, 16)) { |
| 1459 ARGBToYJRow = ARGBToYJRow_MSA; |
| 1460 } |
| 1461 } |
| 1462 #endif |
| 1463 #if defined(HAS_ARGBTOUVJROW_MSA) |
| 1464 if (TestCpuFlag(kCpuHasMSA)) { |
| 1465 ARGBToUVJRow = ARGBToUVJRow_Any_MSA; |
| 1466 if (IS_ALIGNED(width, 32)) { |
| 1467 ARGBToUVJRow = ARGBToUVJRow_MSA; |
| 1468 } |
| 1469 } |
| 1470 #endif |
| 1439 | 1471 |
| 1440 for (y = 0; y < height; ++y) { | 1472 for (y = 0; y < height; ++y) { |
| 1441 ARGBToUVJRow(src_argb, 0, dst_u, dst_v, width); | 1473 ARGBToUVJRow(src_argb, 0, dst_u, dst_v, width); |
| 1442 ARGBToYJRow(src_argb, dst_yj, width); | 1474 ARGBToYJRow(src_argb, dst_yj, width); |
| 1443 src_argb += src_stride_argb; | 1475 src_argb += src_stride_argb; |
| 1444 dst_yj += dst_stride_yj; | 1476 dst_yj += dst_stride_yj; |
| 1445 dst_u += dst_stride_u; | 1477 dst_u += dst_stride_u; |
| 1446 dst_v += dst_stride_v; | 1478 dst_v += dst_stride_v; |
| 1447 } | 1479 } |
| 1448 return 0; | 1480 return 0; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1490 } | 1522 } |
| 1491 #endif | 1523 #endif |
| 1492 #if defined(HAS_ARGBTOYJROW_NEON) | 1524 #if defined(HAS_ARGBTOYJROW_NEON) |
| 1493 if (TestCpuFlag(kCpuHasNEON)) { | 1525 if (TestCpuFlag(kCpuHasNEON)) { |
| 1494 ARGBToYJRow = ARGBToYJRow_Any_NEON; | 1526 ARGBToYJRow = ARGBToYJRow_Any_NEON; |
| 1495 if (IS_ALIGNED(width, 8)) { | 1527 if (IS_ALIGNED(width, 8)) { |
| 1496 ARGBToYJRow = ARGBToYJRow_NEON; | 1528 ARGBToYJRow = ARGBToYJRow_NEON; |
| 1497 } | 1529 } |
| 1498 } | 1530 } |
| 1499 #endif | 1531 #endif |
| 1532 #if defined(HAS_ARGBTOYJROW_MSA) |
| 1533 if (TestCpuFlag(kCpuHasMSA)) { |
| 1534 ARGBToYJRow = ARGBToYJRow_Any_MSA; |
| 1535 if (IS_ALIGNED(width, 16)) { |
| 1536 ARGBToYJRow = ARGBToYJRow_MSA; |
| 1537 } |
| 1538 } |
| 1539 #endif |
| 1500 | 1540 |
| 1501 for (y = 0; y < height; ++y) { | 1541 for (y = 0; y < height; ++y) { |
| 1502 ARGBToYJRow(src_argb, dst_yj, width); | 1542 ARGBToYJRow(src_argb, dst_yj, width); |
| 1503 src_argb += src_stride_argb; | 1543 src_argb += src_stride_argb; |
| 1504 dst_yj += dst_stride_yj; | 1544 dst_yj += dst_stride_yj; |
| 1505 } | 1545 } |
| 1506 return 0; | 1546 return 0; |
| 1507 } | 1547 } |
| 1508 | 1548 |
| 1509 #ifdef __cplusplus | 1549 #ifdef __cplusplus |
| 1510 } // extern "C" | 1550 } // extern "C" |
| 1511 } // namespace libyuv | 1551 } // namespace libyuv |
| 1512 #endif | 1552 #endif |
| OLD | NEW |