Changeset 5699 for pjproject/trunk/third_party/yuv/source/row_any.cc
- Timestamp:
- Nov 21, 2017 9:25:11 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/third_party/yuv/source/row_any.cc
r5633 r5699 85 85 SS(r, DUVSHIFT) * BPP); \ 86 86 } 87 88 // Merge functions. 89 #ifdef HAS_MERGERGBROW_SSSE3 90 ANY31(MergeRGBRow_Any_SSSE3, MergeRGBRow_SSSE3, 0, 0, 3, 15) 91 #endif 92 #ifdef HAS_MERGERGBROW_NEON 93 ANY31(MergeRGBRow_Any_NEON, MergeRGBRow_NEON, 0, 0, 3, 15) 94 #endif 87 95 #ifdef HAS_I422TOYUY2ROW_SSE2 88 96 ANY31(I422ToYUY2Row_Any_SSE2, I422ToYUY2Row_SSE2, 1, 1, 4, 15) … … 622 630 ANY11(ARGBExtractAlphaRow_Any_NEON, ARGBExtractAlphaRow_NEON, 0, 4, 1, 15) 623 631 #endif 632 #ifdef HAS_ARGBEXTRACTALPHAROW_MSA 633 ANY11(ARGBExtractAlphaRow_Any_MSA, ARGBExtractAlphaRow_MSA, 0, 4, 1, 15) 634 #endif 624 635 #undef ANY11 625 636 … … 746 757 ANY11P16(HalfFloatRow_Any_NEON, HalfFloatRow_NEON, float, 2, 2, 7) 747 758 ANY11P16(HalfFloat1Row_Any_NEON, HalfFloat1Row_NEON, float, 2, 2, 7) 759 #endif 760 #ifdef HAS_HALFFLOATROW_MSA 761 ANY11P16(HalfFloatRow_Any_MSA, HalfFloatRow_MSA, float, 2, 2, 31) 748 762 #endif 749 763 #undef ANY11P16 … … 912 926 ANY12(SplitUVRow_Any_DSPR2, SplitUVRow_DSPR2, 0, 2, 0, 15) 913 927 #endif 928 #ifdef HAS_SPLITUVROW_MSA 929 ANY12(SplitUVRow_Any_MSA, SplitUVRow_MSA, 0, 2, 0, 31) 930 #endif 914 931 #ifdef HAS_ARGBTOUV444ROW_SSSE3 915 932 ANY12(ARGBToUV444Row_Any_SSSE3, ARGBToUV444Row_SSSE3, 0, 4, 0, 15) … … 934 951 #endif 935 952 #undef ANY12 953 954 // Any 1 to 3. Outputs RGB planes. 955 #define ANY13(NAMEANY, ANY_SIMD, BPP, MASK) \ 956 void NAMEANY(const uint8* src_ptr, uint8* dst_r, uint8* dst_g, uint8* dst_b, \ 957 int width) { \ 958 SIMD_ALIGNED(uint8 temp[16 * 6]); \ 959 memset(temp, 0, 16 * 3); /* for msan */ \ 960 int r = width & MASK; \ 961 int n = width & ~MASK; \ 962 if (n > 0) { \ 963 ANY_SIMD(src_ptr, dst_r, dst_g, dst_b, n); \ 964 } \ 965 memcpy(temp, src_ptr + n * BPP, r * BPP); \ 966 ANY_SIMD(temp, temp + 16 * 3, temp + 16 * 4, temp + 16 * 5, MASK + 1); \ 967 memcpy(dst_r + n, temp + 16 * 3, r); \ 968 memcpy(dst_g + n, temp + 16 * 4, r); \ 969 memcpy(dst_b + n, temp + 16 * 5, r); \ 970 } 971 972 #ifdef HAS_SPLITRGBROW_SSSE3 973 ANY13(SplitRGBRow_Any_SSSE3, SplitRGBRow_SSSE3, 3, 15) 974 #endif 975 #ifdef HAS_SPLITRGBROW_NEON 976 ANY13(SplitRGBRow_Any_NEON, SplitRGBRow_NEON, 3, 15) 977 #endif 936 978 937 979 // Any 1 to 2 with source stride (2 rows of source). Outputs UV planes.
Note: See TracChangeset
for help on using the changeset viewer.