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 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
491 } | 491 } |
492 #endif | 492 #endif |
493 #if defined(HAS_I422TORGBAROW_NEON) | 493 #if defined(HAS_I422TORGBAROW_NEON) |
494 if (TestCpuFlag(kCpuHasNEON)) { | 494 if (TestCpuFlag(kCpuHasNEON)) { |
495 I422ToRGBARow = I422ToRGBARow_Any_NEON; | 495 I422ToRGBARow = I422ToRGBARow_Any_NEON; |
496 if (IS_ALIGNED(width, 8)) { | 496 if (IS_ALIGNED(width, 8)) { |
497 I422ToRGBARow = I422ToRGBARow_NEON; | 497 I422ToRGBARow = I422ToRGBARow_NEON; |
498 } | 498 } |
499 } | 499 } |
500 #endif | 500 #endif |
501 #if defined(HAS_I422TORGBAROW_MIPS_DSPR2) | 501 #if defined(HAS_I422TORGBAROW_DSPR2) |
502 if (TestCpuFlag(kCpuHasMIPS_DSPR2) && IS_ALIGNED(width, 4) && | 502 if (TestCpuFlag(kCpuHasDSPR2) && IS_ALIGNED(width, 4) && |
503 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && | 503 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && |
504 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && | 504 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && |
505 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && | 505 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && |
506 IS_ALIGNED(dst_rgba, 4) && IS_ALIGNED(dst_stride_rgba, 4)) { | 506 IS_ALIGNED(dst_rgba, 4) && IS_ALIGNED(dst_stride_rgba, 4)) { |
507 I422ToRGBARow = I422ToRGBARow_MIPS_DSPR2; | 507 I422ToRGBARow = I422ToRGBARow_DSPR2; |
508 } | 508 } |
509 #endif | 509 #endif |
510 | 510 |
511 for (y = 0; y < height; ++y) { | 511 for (y = 0; y < height; ++y) { |
512 I422ToRGBARow(src_y, src_u, src_v, dst_rgba, yuvconstants, width); | 512 I422ToRGBARow(src_y, src_u, src_v, dst_rgba, yuvconstants, width); |
513 dst_rgba += dst_stride_rgba; | 513 dst_rgba += dst_stride_rgba; |
514 src_y += src_stride_y; | 514 src_y += src_stride_y; |
515 if (y & 1) { | 515 if (y & 1) { |
516 src_u += src_stride_u; | 516 src_u += src_stride_u; |
517 src_v += src_stride_v; | 517 src_v += src_stride_v; |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
881 } | 881 } |
882 #endif | 882 #endif |
883 #if defined(HAS_I422TOARGBROW_NEON) | 883 #if defined(HAS_I422TOARGBROW_NEON) |
884 if (TestCpuFlag(kCpuHasNEON)) { | 884 if (TestCpuFlag(kCpuHasNEON)) { |
885 I422ToARGBRow = I422ToARGBRow_Any_NEON; | 885 I422ToARGBRow = I422ToARGBRow_Any_NEON; |
886 if (IS_ALIGNED(width, 8)) { | 886 if (IS_ALIGNED(width, 8)) { |
887 I422ToARGBRow = I422ToARGBRow_NEON; | 887 I422ToARGBRow = I422ToARGBRow_NEON; |
888 } | 888 } |
889 } | 889 } |
890 #endif | 890 #endif |
891 #if defined(HAS_I422TOARGBROW_MIPS_DSPR2) | 891 #if defined(HAS_I422TOARGBROW_DSPR2) |
892 if (TestCpuFlag(kCpuHasMIPS_DSPR2) && IS_ALIGNED(width, 4) && | 892 if (TestCpuFlag(kCpuHasDSPR2) && IS_ALIGNED(width, 4) && |
893 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && | 893 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && |
894 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && | 894 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && |
895 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2)) { | 895 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2)) { |
896 I422ToARGBRow = I422ToARGBRow_MIPS_DSPR2; | 896 I422ToARGBRow = I422ToARGBRow_DSPR2; |
897 } | 897 } |
898 #endif | 898 #endif |
899 #if defined(HAS_ARGBTORGB565DITHERROW_SSE2) | 899 #if defined(HAS_ARGBTORGB565DITHERROW_SSE2) |
900 if (TestCpuFlag(kCpuHasSSE2)) { | 900 if (TestCpuFlag(kCpuHasSSE2)) { |
901 ARGBToRGB565DitherRow = ARGBToRGB565DitherRow_Any_SSE2; | 901 ARGBToRGB565DitherRow = ARGBToRGB565DitherRow_Any_SSE2; |
902 if (IS_ALIGNED(width, 4)) { | 902 if (IS_ALIGNED(width, 4)) { |
903 ARGBToRGB565DitherRow = ARGBToRGB565DitherRow_SSE2; | 903 ARGBToRGB565DitherRow = ARGBToRGB565DitherRow_SSE2; |
904 } | 904 } |
905 } | 905 } |
906 #endif | 906 #endif |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1158 default: | 1158 default: |
1159 return -1; // unknown fourcc - return failure code. | 1159 return -1; // unknown fourcc - return failure code. |
1160 } | 1160 } |
1161 return r; | 1161 return r; |
1162 } | 1162 } |
1163 | 1163 |
1164 #ifdef __cplusplus | 1164 #ifdef __cplusplus |
1165 } // extern "C" | 1165 } // extern "C" |
1166 } // namespace libyuv | 1166 } // namespace libyuv |
1167 #endif | 1167 #endif |
OLD | NEW |