Ignore:
Timestamp:
Nov 21, 2017 9:25:11 AM (3 years ago)
Author:
riza
Message:

Close #2065: Update libyuv to fix linker error when building libyuv as dll on Visual Studio 2015.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/third_party/yuv/include/libyuv/row.h

    r5633 r5699  
    3232 
    3333#if defined(__pnacl__) || defined(__CLR_VER) || \ 
    34     (defined(__i386__) && !defined(__SSE2__)) 
     34    (defined(__i386__) && !defined(__SSE__) && !defined(__clang__)) 
    3535#define LIBYUV_DISABLE_X86 
    3636#endif 
     
    265265#endif 
    266266 
     267// The following are available for gcc/clang x86 platforms: 
     268// TODO(fbarchard): Port to Visual C 
     269#if !defined(LIBYUV_DISABLE_X86) && \ 
     270    (defined(__x86_64__) || (defined(__i386__) && !defined(_MSC_VER))) 
     271#define HAS_MERGERGBROW_SSSE3 
     272#define HAS_SPLITRGBROW_SSSE3 
     273#endif 
     274 
     275// The following are available for AVX2 gcc/clang x86 platforms: 
     276// TODO(fbarchard): Port to Visual C 
     277#if !defined(LIBYUV_DISABLE_X86) &&                                       \ 
     278    (defined(__x86_64__) || (defined(__i386__) && !defined(_MSC_VER))) && \ 
     279    (defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) 
     280#define HAS_MERGEUVROW_16_AVX2 
     281#define HAS_MULTIPLYROW_16_AVX2 
     282#endif 
     283 
    267284// The following are available on Neon platforms: 
    268285#if !defined(LIBYUV_DISABLE_NEON) && \ 
     
    324341#define HAS_RGBATOYROW_NEON 
    325342#define HAS_SETROW_NEON 
     343#define HAS_SPLITRGBROW_NEON 
    326344#define HAS_SPLITUVROW_NEON 
    327345#define HAS_UYVYTOARGBROW_NEON 
     
    353371#define HAS_SOBELXYROW_NEON 
    354372#define HAS_SOBELYROW_NEON 
     373#endif 
     374 
     375// The following are available on AArch64 platforms: 
     376#if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__) 
     377#define HAS_SCALESUMSAMPLES_NEON 
    355378#endif 
    356379 
     
    386409 
    387410#if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) 
     411#define HAS_ABGRTOUVROW_MSA 
     412#define HAS_ABGRTOYROW_MSA 
     413#define HAS_ARGB1555TOARGBROW_MSA 
     414#define HAS_ARGB1555TOUVROW_MSA 
     415#define HAS_ARGB1555TOYROW_MSA 
     416#define HAS_ARGB4444TOARGBROW_MSA 
     417#define HAS_ARGBADDROW_MSA 
     418#define HAS_ARGBATTENUATEROW_MSA 
     419#define HAS_ARGBBLENDROW_MSA 
     420#define HAS_ARGBCOLORMATRIXROW_MSA 
     421#define HAS_ARGBEXTRACTALPHAROW_MSA 
     422#define HAS_ARGBGRAYROW_MSA 
    388423#define HAS_ARGBMIRRORROW_MSA 
     424#define HAS_ARGBMULTIPLYROW_MSA 
     425#define HAS_ARGBQUANTIZEROW_MSA 
     426#define HAS_ARGBSEPIAROW_MSA 
     427#define HAS_ARGBSETROW_MSA 
     428#define HAS_ARGBSHADEROW_MSA 
     429#define HAS_ARGBSHUFFLEROW_MSA 
     430#define HAS_ARGBSUBTRACTROW_MSA 
     431#define HAS_ARGBTOARGB1555ROW_MSA 
     432#define HAS_ARGBTOARGB4444ROW_MSA 
     433#define HAS_ARGBTORAWROW_MSA 
     434#define HAS_ARGBTORGB24ROW_MSA 
     435#define HAS_ARGBTORGB565DITHERROW_MSA 
     436#define HAS_ARGBTORGB565ROW_MSA 
     437#define HAS_ARGBTOUV444ROW_MSA 
     438#define HAS_ARGBTOUVJROW_MSA 
     439#define HAS_ARGBTOUVROW_MSA 
     440#define HAS_ARGBTOYJROW_MSA 
     441#define HAS_ARGBTOYROW_MSA 
     442#define HAS_BGRATOUVROW_MSA 
     443#define HAS_BGRATOYROW_MSA 
     444#define HAS_HALFFLOATROW_MSA 
     445#define HAS_I400TOARGBROW_MSA 
     446#define HAS_I422ALPHATOARGBROW_MSA 
     447#define HAS_I422TOARGBROW_MSA 
     448#define HAS_I422TORGB24ROW_MSA 
     449#define HAS_I422TORGBAROW_MSA 
    389450#define HAS_I422TOUYVYROW_MSA 
    390451#define HAS_I422TOYUY2ROW_MSA 
     452#define HAS_I444TOARGBROW_MSA 
     453#define HAS_INTERPOLATEROW_MSA 
     454#define HAS_J400TOARGBROW_MSA 
     455#define HAS_MERGEUVROW_MSA 
    391456#define HAS_MIRRORROW_MSA 
     457#define HAS_MIRRORUVROW_MSA 
     458#define HAS_NV12TOARGBROW_MSA 
     459#define HAS_NV12TORGB565ROW_MSA 
     460#define HAS_NV21TOARGBROW_MSA 
     461#define HAS_RAWTOARGBROW_MSA 
     462#define HAS_RAWTORGB24ROW_MSA 
     463#define HAS_RAWTOUVROW_MSA 
     464#define HAS_RAWTOYROW_MSA 
     465#define HAS_RGB24TOARGBROW_MSA 
     466#define HAS_RGB24TOUVROW_MSA 
     467#define HAS_RGB24TOYROW_MSA 
     468#define HAS_RGB565TOARGBROW_MSA 
     469#define HAS_RGB565TOUVROW_MSA 
     470#define HAS_RGB565TOYROW_MSA 
     471#define HAS_RGBATOUVROW_MSA 
     472#define HAS_RGBATOYROW_MSA 
     473#define HAS_SETROW_MSA 
     474#define HAS_SOBELROW_MSA 
     475#define HAS_SOBELTOPLANEROW_MSA 
     476#define HAS_SOBELXROW_MSA 
     477#define HAS_SOBELXYROW_MSA 
     478#define HAS_SOBELYROW_MSA 
     479#define HAS_SPLITUVROW_MSA 
     480#define HAS_UYVYTOARGBROW_MSA 
    392481#define HAS_UYVYTOUVROW_MSA 
    393482#define HAS_UYVYTOYROW_MSA 
     483#define HAS_YUY2TOARGBROW_MSA 
    394484#define HAS_YUY2TOUV422ROW_MSA 
    395485#define HAS_YUY2TOUVROW_MSA 
    396486#define HAS_YUY2TOYROW_MSA 
    397 #define HAS_ARGB4444TOARGBROW_MSA 
    398 #define HAS_ARGBTOYROW_MSA 
    399 #define HAS_ARGBTOUVROW_MSA 
    400 #define HAS_I422TOARGBROW_MSA 
    401 #define HAS_I422TORGBAROW_MSA 
    402 #define HAS_I422ALPHATOARGBROW_MSA 
    403 #define HAS_I422TORGB24ROW_MSA 
    404 #define HAS_ARGBTORGB24ROW_MSA 
    405 #define HAS_ARGBTORAWROW_MSA 
    406 #define HAS_ARGBTORGB565ROW_MSA 
    407 #define HAS_ARGBTOARGB1555ROW_MSA 
    408 #define HAS_ARGBTOARGB4444ROW_MSA 
    409 #define HAS_ARGBTOUV444ROW_MSA 
    410 #define HAS_ARGBMULTIPLYROW_MSA 
    411 #define HAS_ARGBADDROW_MSA 
    412 #define HAS_ARGBSUBTRACTROW_MSA 
    413 #define HAS_ARGBATTENUATEROW_MSA 
    414 #define HAS_ARGBTORGB565DITHERROW_MSA 
    415 #define HAS_ARGBSHUFFLEROW_MSA 
    416 #define HAS_ARGBSHADEROW_MSA 
    417 #define HAS_ARGBGRAYROW_MSA 
    418 #define HAS_ARGBSEPIAROW_MSA 
    419 #define HAS_ARGB1555TOARGBROW_MSA 
    420 #define HAS_RGB565TOARGBROW_MSA 
    421 #define HAS_RGB24TOARGBROW_MSA 
    422 #define HAS_RAWTOARGBROW_MSA 
    423 #define HAS_ARGB1555TOYROW_MSA 
    424 #define HAS_RGB565TOYROW_MSA 
    425 #define HAS_RGB24TOYROW_MSA 
    426 #define HAS_RAWTOYROW_MSA 
    427 #define HAS_ARGB1555TOUVROW_MSA 
    428 #define HAS_RGB565TOUVROW_MSA 
    429 #define HAS_RGB24TOUVROW_MSA 
    430 #define HAS_RAWTOUVROW_MSA 
    431 #define HAS_NV12TOARGBROW_MSA 
    432 #define HAS_NV12TORGB565ROW_MSA 
    433 #define HAS_NV21TOARGBROW_MSA 
    434 #define HAS_SOBELROW_MSA 
    435 #define HAS_SOBELTOPLANEROW_MSA 
    436 #define HAS_SOBELXYROW_MSA 
    437 #define HAS_ARGBTOYJROW_MSA 
    438 #define HAS_BGRATOYROW_MSA 
    439 #define HAS_ABGRTOYROW_MSA 
    440 #define HAS_RGBATOYROW_MSA 
    441 #define HAS_ARGBTOUVJROW_MSA 
    442 #define HAS_BGRATOUVROW_MSA 
    443 #define HAS_ABGRTOUVROW_MSA 
    444 #define HAS_RGBATOUVROW_MSA 
    445 #define HAS_I444TOARGBROW_MSA 
    446 #define HAS_I400TOARGBROW_MSA 
    447 #define HAS_J400TOARGBROW_MSA 
    448 #define HAS_YUY2TOARGBROW_MSA 
    449 #define HAS_UYVYTOARGBROW_MSA 
    450 #define HAS_INTERPOLATEROW_MSA 
    451 #define HAS_ARGBSETROW_MSA 
    452 #define HAS_RAWTORGB24ROW_MSA 
    453 #define HAS_MERGEUVROW_MSA 
    454487#endif 
    455488 
     
    13461379                       uint8* dst_v, 
    13471380                       int width); 
     1381void MirrorUVRow_MSA(const uint8* src_uv, 
     1382                     uint8* dst_u, 
     1383                     uint8* dst_v, 
     1384                     int width); 
    13481385void MirrorUVRow_C(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width); 
    13491386 
     
    13751412                      uint8* dst_v, 
    13761413                      int width); 
     1414void SplitUVRow_MSA(const uint8* src_uv, uint8* dst_u, uint8* dst_v, int width); 
    13771415void SplitUVRow_Any_SSE2(const uint8* src_uv, 
    13781416                         uint8* dst_u, 
     
    13911429                          uint8* dst_v, 
    13921430                          int width); 
     1431void SplitUVRow_Any_MSA(const uint8* src_uv, 
     1432                        uint8* dst_u, 
     1433                        uint8* dst_v, 
     1434                        int width); 
    13931435 
    13941436void MergeUVRow_C(const uint8* src_u, 
     
    14291471                        int width); 
    14301472 
     1473void SplitRGBRow_C(const uint8* src_rgb, 
     1474                   uint8* dst_r, 
     1475                   uint8* dst_g, 
     1476                   uint8* dst_b, 
     1477                   int width); 
     1478void SplitRGBRow_SSSE3(const uint8* src_rgb, 
     1479                       uint8* dst_r, 
     1480                       uint8* dst_g, 
     1481                       uint8* dst_b, 
     1482                       int width); 
     1483void SplitRGBRow_NEON(const uint8* src_rgb, 
     1484                      uint8* dst_r, 
     1485                      uint8* dst_g, 
     1486                      uint8* dst_b, 
     1487                      int width); 
     1488void SplitRGBRow_Any_SSSE3(const uint8* src_rgb, 
     1489                           uint8* dst_r, 
     1490                           uint8* dst_g, 
     1491                           uint8* dst_b, 
     1492                           int width); 
     1493void SplitRGBRow_Any_NEON(const uint8* src_rgb, 
     1494                          uint8* dst_r, 
     1495                          uint8* dst_g, 
     1496                          uint8* dst_b, 
     1497                          int width); 
     1498 
     1499void MergeRGBRow_C(const uint8* src_r, 
     1500                   const uint8* src_g, 
     1501                   const uint8* src_b, 
     1502                   uint8* dst_rgb, 
     1503                   int width); 
     1504void MergeRGBRow_SSSE3(const uint8* src_r, 
     1505                       const uint8* src_g, 
     1506                       const uint8* src_b, 
     1507                       uint8* dst_rgb, 
     1508                       int width); 
     1509void MergeRGBRow_NEON(const uint8* src_r, 
     1510                      const uint8* src_g, 
     1511                      const uint8* src_b, 
     1512                      uint8* dst_rgb, 
     1513                      int width); 
     1514void MergeRGBRow_Any_SSSE3(const uint8* src_r, 
     1515                           const uint8* src_g, 
     1516                           const uint8* src_b, 
     1517                           uint8* dst_rgb, 
     1518                           int width); 
     1519void MergeRGBRow_Any_NEON(const uint8* src_r, 
     1520                          const uint8* src_g, 
     1521                          const uint8* src_b, 
     1522                          uint8* dst_rgb, 
     1523                          int width); 
     1524 
     1525void MergeUVRow_16_C(const uint16* src_u, 
     1526                     const uint16* src_v, 
     1527                     uint16* dst_uv, 
     1528                     int scale, /* 64 for 10 bit */ 
     1529                     int width); 
     1530void MergeUVRow_16_AVX2(const uint16* src_u, 
     1531                        const uint16* src_v, 
     1532                        uint16* dst_uv, 
     1533                        int scale, 
     1534                        int width); 
     1535 
     1536void MultiplyRow_16_AVX2(const uint16* src_y, 
     1537                         uint16* dst_y, 
     1538                         int scale, 
     1539                         int width); 
     1540void MultiplyRow_16_C(const uint16* src_y, uint16* dst_y, int scale, int width); 
     1541 
    14311542void CopyRow_SSE2(const uint8* src, uint8* dst, int count); 
    14321543void CopyRow_AVX(const uint8* src, uint8* dst, int count); 
     
    14551566void ARGBExtractAlphaRow_AVX2(const uint8* src_argb, uint8* dst_a, int width); 
    14561567void ARGBExtractAlphaRow_NEON(const uint8* src_argb, uint8* dst_a, int width); 
     1568void ARGBExtractAlphaRow_MSA(const uint8* src_argb, uint8* dst_a, int width); 
    14571569void ARGBExtractAlphaRow_Any_SSE2(const uint8* src_argb, 
    14581570                                  uint8* dst_a, 
     
    14641576                                  uint8* dst_a, 
    14651577                                  int width); 
     1578void ARGBExtractAlphaRow_Any_MSA(const uint8* src_argb, 
     1579                                 uint8* dst_a, 
     1580                                 int width); 
    14661581 
    14671582void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); 
     
    14761591 
    14771592void SetRow_C(uint8* dst, uint8 v8, int count); 
     1593void SetRow_MSA(uint8* dst, uint8 v8, int count); 
    14781594void SetRow_X86(uint8* dst, uint8 v8, int count); 
    14791595void SetRow_ERMS(uint8* dst, uint8 v8, int count); 
     
    21232239                       uint8* dst_argb, 
    21242240                       int width); 
     2241void ARGBBlendRow_MSA(const uint8* src_argb, 
     2242                      const uint8* src_argb1, 
     2243                      uint8* dst_argb, 
     2244                      int width); 
    21252245void ARGBBlendRow_C(const uint8* src_argb, 
    21262246                    const uint8* src_argb1, 
     
    28362956                             const int8* matrix_argb, 
    28372957                             int width); 
     2958void ARGBColorMatrixRow_MSA(const uint8* src_argb, 
     2959                            uint8* dst_argb, 
     2960                            const int8* matrix_argb, 
     2961                            int width); 
    28382962 
    28392963void ARGBColorTableRow_C(uint8* dst_argb, const uint8* table_argb, int width); 
     
    28582982                          int interval_offset, 
    28592983                          int width); 
     2984void ARGBQuantizeRow_MSA(uint8* dst_argb, 
     2985                         int scale, 
     2986                         int interval_size, 
     2987                         int interval_offset, 
     2988                         int width); 
    28602989 
    28612990void ARGBShadeRow_C(const uint8* src_argb, 
     
    29913120                    uint8* dst_sobelx, 
    29923121                    int width); 
     3122void SobelXRow_MSA(const uint8* src_y0, 
     3123                   const uint8* src_y1, 
     3124                   const uint8* src_y2, 
     3125                   uint8* dst_sobelx, 
     3126                   int width); 
    29933127void SobelYRow_C(const uint8* src_y0, 
    29943128                 const uint8* src_y1, 
     
    30033137                    uint8* dst_sobely, 
    30043138                    int width); 
     3139void SobelYRow_MSA(const uint8* src_y0, 
     3140                   const uint8* src_y1, 
     3141                   uint8* dst_sobely, 
     3142                   int width); 
    30053143void SobelRow_C(const uint8* src_sobelx, 
    30063144                const uint8* src_sobely, 
     
    31333271                            float scale, 
    31343272                            int width); 
     3273void HalfFloatRow_MSA(const uint16* src, uint16* dst, float scale, int width); 
     3274void HalfFloatRow_Any_MSA(const uint16* src, 
     3275                          uint16* dst, 
     3276                          float scale, 
     3277                          int width); 
    31353278 
    31363279void ARGBLumaColorTableRow_C(const uint8* src_argb, 
     
    31453288                                 uint32 lumacoeff); 
    31463289 
     3290float ScaleMaxSamples_C(const float* src, float* dst, float scale, int width); 
     3291float ScaleMaxSamples_NEON(const float* src, 
     3292                           float* dst, 
     3293                           float scale, 
     3294                           int width); 
     3295float ScaleSumSamples_C(const float* src, float* dst, float scale, int width); 
     3296float ScaleSumSamples_NEON(const float* src, 
     3297                           float* dst, 
     3298                           float scale, 
     3299                           int width); 
     3300void ScaleSamples_C(const float* src, float* dst, float scale, int width); 
     3301void ScaleSamples_NEON(const float* src, float* dst, float scale, int width); 
     3302 
    31473303#ifdef __cplusplus 
    31483304}  // extern "C" 
Note: See TracChangeset for help on using the changeset viewer.