OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2011 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 } | 85 } |
86 #endif | 86 #endif |
87 #if defined(HAS_I422TOARGBROW_NEON) | 87 #if defined(HAS_I422TOARGBROW_NEON) |
88 if (TestCpuFlag(kCpuHasNEON)) { | 88 if (TestCpuFlag(kCpuHasNEON)) { |
89 I422ToARGBRow = I422ToARGBRow_Any_NEON; | 89 I422ToARGBRow = I422ToARGBRow_Any_NEON; |
90 if (IS_ALIGNED(width, 8)) { | 90 if (IS_ALIGNED(width, 8)) { |
91 I422ToARGBRow = I422ToARGBRow_NEON; | 91 I422ToARGBRow = I422ToARGBRow_NEON; |
92 } | 92 } |
93 } | 93 } |
94 #endif | 94 #endif |
95 #if defined(HAS_I422TOARGBROW_MIPS_DSPR2) | 95 #if defined(HAS_I422TOARGBROW_DSPR2) |
96 if (TestCpuFlag(kCpuHasMIPS_DSPR2) && IS_ALIGNED(width, 4) && | 96 if (TestCpuFlag(kCpuHasDSPR2) && IS_ALIGNED(width, 4) && |
97 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && | 97 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && |
98 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && | 98 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && |
99 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && | 99 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && |
100 IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) { | 100 IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) { |
101 I422ToARGBRow = I422ToARGBRow_MIPS_DSPR2; | 101 I422ToARGBRow = I422ToARGBRow_DSPR2; |
102 } | 102 } |
103 #endif | 103 #endif |
104 | 104 |
105 for (y = 0; y < height; ++y) { | 105 for (y = 0; y < height; ++y) { |
106 I422ToARGBRow(src_y, src_u, src_v, dst_argb, yuvconstants, width); | 106 I422ToARGBRow(src_y, src_u, src_v, dst_argb, yuvconstants, width); |
107 dst_argb += dst_stride_argb; | 107 dst_argb += dst_stride_argb; |
108 src_y += src_stride_y; | 108 src_y += src_stride_y; |
109 if (y & 1) { | 109 if (y & 1) { |
110 src_u += src_stride_u; | 110 src_u += src_stride_u; |
111 src_v += src_stride_v; | 111 src_v += src_stride_v; |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 } | 255 } |
256 #endif | 256 #endif |
257 #if defined(HAS_I422TOARGBROW_NEON) | 257 #if defined(HAS_I422TOARGBROW_NEON) |
258 if (TestCpuFlag(kCpuHasNEON)) { | 258 if (TestCpuFlag(kCpuHasNEON)) { |
259 I422ToARGBRow = I422ToARGBRow_Any_NEON; | 259 I422ToARGBRow = I422ToARGBRow_Any_NEON; |
260 if (IS_ALIGNED(width, 8)) { | 260 if (IS_ALIGNED(width, 8)) { |
261 I422ToARGBRow = I422ToARGBRow_NEON; | 261 I422ToARGBRow = I422ToARGBRow_NEON; |
262 } | 262 } |
263 } | 263 } |
264 #endif | 264 #endif |
265 #if defined(HAS_I422TOARGBROW_MIPS_DSPR2) | 265 #if defined(HAS_I422TOARGBROW_DSPR2) |
266 if (TestCpuFlag(kCpuHasMIPS_DSPR2) && IS_ALIGNED(width, 4) && | 266 if (TestCpuFlag(kCpuHasDSPR2) && IS_ALIGNED(width, 4) && |
267 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && | 267 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && |
268 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && | 268 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && |
269 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && | 269 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && |
270 IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) { | 270 IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) { |
271 I422ToARGBRow = I422ToARGBRow_MIPS_DSPR2; | 271 I422ToARGBRow = I422ToARGBRow_DSPR2; |
272 } | 272 } |
273 #endif | 273 #endif |
274 | 274 |
275 for (y = 0; y < height; ++y) { | 275 for (y = 0; y < height; ++y) { |
276 I422ToARGBRow(src_y, src_u, src_v, dst_argb, yuvconstants, width); | 276 I422ToARGBRow(src_y, src_u, src_v, dst_argb, yuvconstants, width); |
277 dst_argb += dst_stride_argb; | 277 dst_argb += dst_stride_argb; |
278 src_y += src_stride_y; | 278 src_y += src_stride_y; |
279 src_u += src_stride_u; | 279 src_u += src_stride_u; |
280 src_v += src_stride_v; | 280 src_v += src_stride_v; |
281 } | 281 } |
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 } | 600 } |
601 #endif | 601 #endif |
602 #if defined(HAS_I422ALPHATOARGBROW_NEON) | 602 #if defined(HAS_I422ALPHATOARGBROW_NEON) |
603 if (TestCpuFlag(kCpuHasNEON)) { | 603 if (TestCpuFlag(kCpuHasNEON)) { |
604 I422AlphaToARGBRow = I422AlphaToARGBRow_Any_NEON; | 604 I422AlphaToARGBRow = I422AlphaToARGBRow_Any_NEON; |
605 if (IS_ALIGNED(width, 8)) { | 605 if (IS_ALIGNED(width, 8)) { |
606 I422AlphaToARGBRow = I422AlphaToARGBRow_NEON; | 606 I422AlphaToARGBRow = I422AlphaToARGBRow_NEON; |
607 } | 607 } |
608 } | 608 } |
609 #endif | 609 #endif |
610 #if defined(HAS_I422ALPHATOARGBROW_MIPS_DSPR2) | 610 #if defined(HAS_I422ALPHATOARGBROW_DSPR2) |
611 if (TestCpuFlag(kCpuHasMIPS_DSPR2) && IS_ALIGNED(width, 4) && | 611 if (TestCpuFlag(kCpuHasDSPR2) && IS_ALIGNED(width, 4) && |
612 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && | 612 IS_ALIGNED(src_y, 4) && IS_ALIGNED(src_stride_y, 4) && |
613 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && | 613 IS_ALIGNED(src_u, 2) && IS_ALIGNED(src_stride_u, 2) && |
614 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && | 614 IS_ALIGNED(src_v, 2) && IS_ALIGNED(src_stride_v, 2) && |
615 IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) { | 615 IS_ALIGNED(dst_argb, 4) && IS_ALIGNED(dst_stride_argb, 4)) { |
616 I422AlphaToARGBRow = I422AlphaToARGBRow_MIPS_DSPR2; | 616 I422AlphaToARGBRow = I422AlphaToARGBRow_DSPR2; |
617 } | 617 } |
618 #endif | 618 #endif |
619 #if defined(HAS_ARGBATTENUATEROW_SSSE3) | 619 #if defined(HAS_ARGBATTENUATEROW_SSSE3) |
620 if (TestCpuFlag(kCpuHasSSSE3)) { | 620 if (TestCpuFlag(kCpuHasSSSE3)) { |
621 ARGBAttenuateRow = ARGBAttenuateRow_Any_SSSE3; | 621 ARGBAttenuateRow = ARGBAttenuateRow_Any_SSSE3; |
622 if (IS_ALIGNED(width, 4)) { | 622 if (IS_ALIGNED(width, 4)) { |
623 ARGBAttenuateRow = ARGBAttenuateRow_SSSE3; | 623 ARGBAttenuateRow = ARGBAttenuateRow_SSSE3; |
624 } | 624 } |
625 } | 625 } |
626 #endif | 626 #endif |
(...skipping 819 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1446 src_uyvy += src_stride_uyvy; | 1446 src_uyvy += src_stride_uyvy; |
1447 dst_argb += dst_stride_argb; | 1447 dst_argb += dst_stride_argb; |
1448 } | 1448 } |
1449 return 0; | 1449 return 0; |
1450 } | 1450 } |
1451 | 1451 |
1452 #ifdef __cplusplus | 1452 #ifdef __cplusplus |
1453 } // extern "C" | 1453 } // extern "C" |
1454 } // namespace libyuv | 1454 } // namespace libyuv |
1455 #endif | 1455 #endif |
OLD | NEW |