1. 27 Jan, 2018 1 commit
  2. 26 Jan, 2018 1 commit
  3. 25 Jan, 2018 1 commit
  4. 24 Jan, 2018 2 commits
  5. 23 Jan, 2018 4 commits
  6. 19 Jan, 2018 2 commits
    • Frank Barchard's avatar
      H010ToAR30 in 1 step with SSSE3 assembly · 09db0c4c
      Frank Barchard authored
      Switch YUV conversion macro to output 16 bits per channel.
      STOREAR30 macro to output AR30.
      
      [ RUN      ] LibYUVConvertTest.TestH420ToARGB
      uniques: B 220, G, 220, R 220
      [       OK ] LibYUVConvertTest.TestH420ToARGB (0 ms)
      [ RUN      ] LibYUVConvertTest.TestH010ToARGB
      uniques: B 256, G, 256, R 256
      [       OK ] LibYUVConvertTest.TestH010ToARGB (0 ms)
      [ RUN      ] LibYUVConvertTest.TestH010ToAR30
      uniques: B 883, G, 883, R 883
      [       OK ] LibYUVConvertTest.TestH010ToAR30 (0 ms)
      
      Bug: libyuv:751
      Test: LibYUVConvertTest.H010ToAR30_Opt
      Change-Id: I902b718e2c8b68ede69625ccafebc6519d5af70d
      Reviewed-on: https://chromium-review.googlesource.com/869511Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Reviewed-by: 's avatarMiguel Casas <mcasas@chromium.org>
      Reviewed-by: 's avatarrichard winterton <rrwinterton@gmail.com>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      09db0c4c
    • Frank Barchard's avatar
      Add LibYUVConvertTest.TestH010ToAR30 unittest · 37f97210
      Frank Barchard authored
      Tests accuracy of H010ToAR30 on grey scale ramp against float
      and computes a histogram to detect number of unique shades for
      each channel.
      
      With 2 step intermediate using 8 bit RGB, the test shows 256
      unique values.
      
      [ RUN      ] LibYUVConvertTest.TestH420ToARGB
      uniques: B 220, G, 220, R 220
      [       OK ] LibYUVConvertTest.TestH420ToARGB (0 ms)
      [ RUN      ] LibYUVConvertTest.TestH010ToARGB
      uniques: B 256, G, 256, R 256
      [       OK ] LibYUVConvertTest.TestH010ToARGB (0 ms)
      [ RUN      ] LibYUVConvertTest.TestH010ToAR30
      uniques: B 256, G, 256, R 256
      [       OK ] LibYUVConvertTest.TestH010ToAR30 (0 ms)
      
      Bug: libyuv:751
      Test  LibYUVConvertTest.TestH010ToAR30 unittest
      
      Change-Id: I6b1e1209247cb00b79b594127b02dae5217dc400
      Reviewed-on: https://chromium-review.googlesource.com/875317Reviewed-by: 's avatarMiguel Casas <mcasas@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      37f97210
  7. 16 Jan, 2018 1 commit
    • Frank Barchard's avatar
      Remove MEMOPREG x64 NaCL macros · ecab5430
      Frank Barchard authored
      MEMOPREG macros are deprecated in row.h
      
      Regular expressions to remove MEMOPREG macros:
      
      MEMOPREG(movd, 0x00, [u_buf], [v_buf], 1, xmm1)                            \
      MEMOPREG\((.*), (.*), (.*), (.*), (.*), (.*)\)
      "\1    \2(%\3,%\4,\5),%%\6            \\n"
      
      MEMOPREG(movdqu,0x00,1,4,1,xmm2)
      MEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*)\)
      "\1    \2(%\3,%\4,\5),%%\6            \\n"
      
      MEMOPREG(movdqu,0x00,1,4,1,xmm2)
      MEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*)\)(.*)(//.*)
      "\1    \2(%\3,%\4,\5),%%\6           \\n"
      
      TBR=braveyao@chromium.org
      
      Bug: libyuv:702
      Test: try bots pass
      Change-Id: If8743abd9af2e8c549d0c7d3d49733a9b0f0ca86
      Reviewed-on: https://chromium-review.googlesource.com/865964Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      ecab5430
  8. 13 Jan, 2018 1 commit
    • Frank Barchard's avatar
      Remove MEMOPMEM x64 NaCL macros · b33e0f97
      Frank Barchard authored
      MEMOPMEM macros are deprecated in row.h
      
      Usage examples
          MEMOPMEM(vmovdqu,ymm0,0x00,0,1,1)          //  vmovdqu %%ymm0,(%0,%1)
          MEMOPMEM(movdqu,xmm2,0x00,1,0,1)
      
      Regular expressions to remove MEMACCESS macros:
      
      MEMOPMEM\((.*),(.*),(.*),(.*),(.*),(.*)\)(.*)(//.*)
      "\1    %%\2,\3(%\4,%\5,\6)\7 \\n"
      
      MEMOPMEM\((.*),(.*),(.*),(.*),(.*),(.*)\)
      "\1    %%\2,\3(%\4,%\5,\6)            \\n"
      
      TBR=braveyao@chromium.org
      Bug: libyuv:702
      Test: try bots pass
      Change-Id: Id8c6963d544d16e39bb6a9a0536babfb7f554b3a
      Reviewed-on: https://chromium-review.googlesource.com/865934Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      b33e0f97
  9. 12 Jan, 2018 4 commits
    • Frank Barchard's avatar
      Remove VMEMOPREG x64 NaCL macros · a875ed17
      Frank Barchard authored
      VMEMOPREG macros are deprecated in row.h
      
      Usage examples
          VMEMOPREG(vpavgb,0x00,0,4,1,ymm0,ymm0)     // vpavgb (%0,%4,1),%%ymm0,%%ymm0
          VMEMOPREG(vpavgb,0x20,0,4,1,ymm1,ymm1)
      
      Regular expressions to remove MEMACCESS macros:
      
      VMEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*),(.*)\)(.*)(//.*)
      "\1    \2(%\3,%\4,\5),%%\6,%%\7      \\n"
      
      VMEMOPREG\((.*),(.*),(.*),(.*),(.*),(.*),(.*)\)
      "\1    \2(%\3,%\4,\5),%%\6,%%\7            \\n"
      
      TBR=braveyao@chromium.org
      
      Bug: libyuv:702
      Test: try bots pass
      Change-Id: I472446606f7fd568fdf33aaacc22d5ed78673dab
      Reviewed-on: https://chromium-review.googlesource.com/865640Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      a875ed17
    • Frank Barchard's avatar
      Remove VEXTOPMEM x64 NaCL macros · 030042a2
      Frank Barchard authored
      VEXTOPMEM macros are deprecated in row.h
      
      Usage examples
          VEXTOPMEM(vextractf128,1,ymm0,0x0,1,2,1) // vextractf128 $1,%%ymm0,(%1,%2,1)
      
      Regular expressions to remove MEMACCESS macros:
      
      VEXTOPMEM\((.*),(.*),(.*),(.*),(.*),(.*),(.*)\)(.*//.*)
      "\1 $\2,%\3,\4(%\5,%\6,\7)        \\n"
      
      Bug: libyuv:702
      Test: try bots pass
      Change-Id: I177edf9813128408e74816672dd25abb03a5e1ca
      Reviewed-on: https://chromium-review.googlesource.com/865283Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      030042a2
    • Frank Barchard's avatar
      Remove MEMACCESS x64 NaCL macros · 5088f001
      Frank Barchard authored
      MEMACCESS macros are deprecated in row.h
      
      Usage examples
          "movdqu    " MEMACCESS(0) ",%%xmm0         \n"
          "movdqu    " MEMACCESS2(0x10,0) ",%%xmm1   \n"
      
      Regular expressions to remove MEMACCESS macros:
      
      " MEMACCESS2\((.*),(.*)\) "(.*)\\n"
      \1(%\2)\3              \\n"
      
      " MEMACCESS\((.*)\) "(.*)\\n"
      (%\1)\2            \\n"
      
      Bug: libyuv:702
      Test: try bots pass
      Change-Id: I42f62d5dede8ef2ea643e78c204371a7659d25e6
      Reviewed-on: https://chromium-review.googlesource.com/862803Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      5088f001
    • Frank Barchard's avatar
      Remove MEMOPARG x64 NaCL macros · e3797d17
      Frank Barchard authored
      MEMOPARG macros are deprecated in row.h
      
        #opcode " " #offset "(%" #base ",%" #index "," #scale "),%" #arg "\n"
      
      Usage examples
          MEMOPARG(movzwl,0x00,1,3,1,k2)             //  movzwl  (%1,%3,1),%k2
      
      Regular expression to remove MEMACCESS macro:
      
      MEMOPARG\((.*),(.*),(.*),(.*),(.*),(.*)\)(.*//.*)
      "\1    \2(%\3,%\4,\5),%\6                \\n"
      
      Bug: libyuv:702
      Test: try bots pass
      Change-Id: I4a5ad2abf5017e651576f4c8c784be1c8dbf5a83
      Reviewed-on: https://chromium-review.googlesource.com/863108Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      e3797d17
  10. 10 Jan, 2018 4 commits
  11. 09 Jan, 2018 1 commit
  12. 08 Jan, 2018 2 commits
  13. 07 Jan, 2018 1 commit
    • Frank Barchard's avatar
      H010ToAR30 optimized to 2 step conversion · 9d2cd6a3
      Frank Barchard authored
      Previously H010ToAR30 was done in a 3 step conversion:
      H010ToH420, H420ToARGB, ARGBToAR30.
      This CL merges the first 2 steps into H010ToARGB, to
      improve performance.
      Caveat - only 10 bit YUV is supported at this time.
      Previously the low level code supported different numbers
      of bits - 9, 10, 12 or 16.
      
      Was 3 step conversion:
      LibYUVConvertTest.H010ToAR30_Any (1263 ms)
      LibYUVConvertTest.H010ToAR30_Unaligned (951 ms)
      LibYUVConvertTest.H010ToAR30_Invert (913 ms)
      LibYUVConvertTest.H010ToAR30_Opt (901 ms)
      
      Now 2 step conversion:
      LibYUVConvertTest.H010ToAR30_Any (853 ms)
      LibYUVConvertTest.H010ToAR30_Unaligned (811 ms)
      LibYUVConvertTest.H010ToAR30_Invert (781 ms)
      LibYUVConvertTest.H010ToAR30_Opt (755 ms)
      
      Bug: libyuv:751
      Test: LibYUVConvertTest.H010ToAR30_Opt
      Change-Id: Ica7574040401cd57145a4827acdf3c0e58346a2a
      Reviewed-on: https://chromium-review.googlesource.com/853288Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Reviewed-by: 's avatarMiguel Casas <mcasas@chromium.org>
      9d2cd6a3
  14. 05 Jan, 2018 2 commits
  15. 04 Jan, 2018 1 commit
  16. 03 Jan, 2018 1 commit
  17. 02 Jan, 2018 4 commits
  18. 28 Dec, 2017 1 commit
  19. 21 Dec, 2017 2 commits
    • Frank Barchard's avatar
      HalfFloat_SSE2 use movd from memory · c67db605
      Frank Barchard authored
      pshufd requires 16 byte aligned memory or a register.
      Use movd to a register to avoid a segfault if memory for float
      is misaligned
      
      Bug: libyuv:759
      Test: 32 bit build of LibYUVPlanarTest.TestHalfFloatPlane_16bit_denormal
      Change-Id: I6fdcc4317453af5acd4700f9d46425bb2f4a205b
      Reviewed-on: https://chromium-review.googlesource.com/840459Reviewed-by: 's avatarMiguel Casas <mcasas@chromium.org>
      Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      c67db605
    • VladimirTechMan's avatar
      Allow enabling libyuv symbols visibility for shared library targets · 56eb5a47
      VladimirTechMan authored
      When developing WebRTC applications with custom video sources, libyuv's
      API is often the required part of the project. For that, application
      developers can link with a separate standalone instance of libyuv.
      However, it is even better to avoid that binary code duplication and
      link against libyuv as a part compiled into the WebRTC library.
      
      When building WebRTC as a static library target, the symbols from libyuv
      are normally accessible to the linker without any extra actions. When
      building WebRTC as a shared library, that does not work as the exported
      symbols are those marked as visible, while libyuv is built with the
      hidden visibility setting by default.
      
      This patch adds an extra flag to enable switching the symbol visibility
      to default when building shared library targets depending on libyuv in
      WebRTC and Chromium projects. By default the flag is not enabled,
      preserving the prior behaviour.
      
      Bug: NONE
      Change-Id: I48893cb9f54b1e1b49a34e14434e67f91d3e5e79
      Reviewed-on: https://chromium-review.googlesource.com/827746Reviewed-by: 's avatarFrank Barchard <fbarchard@chromium.org>
      Commit-Queue: Frank Barchard <fbarchard@chromium.org>
      56eb5a47
  20. 20 Dec, 2017 1 commit
  21. 19 Dec, 2017 1 commit
  22. 15 Dec, 2017 1 commit
  23. 14 Dec, 2017 1 commit