2431 Commits

Author SHA1 Message Date
James Zern
0200037a5a row_any,ANYDETILE: fix -Wmemset-elt-size warning
under gcc 12.2.0 using -Wall:

source/row_any.cc: In function ‘void libyuv::DetileRow_16_Any_SSE2(const
                       uint16_t*, ptrdiff_t, uint16_t*, int)’:
source/row_any.cc:2287:11: warning: ‘memset’ used with length equal to
number of elements without multiplication by element size
[-Wmemset-elt-size]
 2287 |     memset(temp, 0, 16 * BPP); /* for msan */
      |     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
source/row_any.cc:2308:1: note: in expansion of macro ‘ANYDETILE’
 2308 | ANYDETILE(DetileRow_16_Any_SSE2, DetileRow_16_SSE2, uint16_t, 2, 15)

This increases the memset to the full buffer size, which may not be
strictly necessary.

Change-Id: Iea2fc649990ee84ea9aa8020d6f6b25e012b18fb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4406599
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-04-08 19:01:02 +00:00
Darren Hsieh
e8af6cb2e4 Add RAWToARGBRow_RVV,RAWToRGBARow_RVV,RAWToRGB24Row_RVV
* Run on SiFive internal FPGA:

RAWToARGB_Opt (~2x vs scalar)

RAWToRGBA_Opt (~2x vs scalar)

RAWToRGB24_Opt (~1.5x vs scalar)

LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=10

Change-Id: I21a13d646589ea2aa3822cb9225f5191068c285b
Signed-off-by: Darren Hsieh <darren.hsieh@sifive.com>
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4408357
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-04-07 18:45:08 +00:00
Bruce Lai
0b3ac31e4d Enable cross_build gtest in CMake build flow
Signed-off-by: Bruce Lai <bruce.lai@sifive.com>
Change-Id: Ibdc742040940ee6c6402de103759f979f9429419
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4401739
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-04-07 07:31:31 +00:00
Darren Hsieh
aa47d668d8 Add riscv cpu info detection.
* Supports:

 * The standard single-letter Vector detection.

 * Vector fp16 detection.

Signed-off-by: Darren Hsieh <darren.hsieh@sifive.com>
Change-Id: Ia7ee1bd8ec1a990f1b2b1700805942e99c0aa87b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4401738
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-04-06 15:58:29 +00:00
Wan-Teh Chang
ec48e4328e Add assertions for the Clang static analyzer
The Clang static analyzer (scan-build) in LLVM 14 warns about
array index out of bounds in scaletbl[boxwidth - minboxwidth] in
ScaleAddCols2_C() and ScaleAddCols2_16_C(). The scaletbl array has two
elements. It's not clear the index boxwidth - minboxwidth is either 0 or
1.

Change-Id: I072476e86950154beffe6b1a89915755118b3cbd
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4403882
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Wan-Teh Chang <wtc@google.com>
2023-04-05 21:58:22 +00:00
Frank Barchard
464c51a035 AArch32 YUVTORGB_SETUP use load and dup to avoid modifying pointer
- Allows code to be optimized with clang 17 -flto-thin
- Bump version number to 1864 to allow detection of fix
- Apply clang format to standardize formatting; No impact on code generated

Bug: chromium:1424089
Change-Id: Ib745836b27915a5e4cb1d7d928ee52659360612b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4370052
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2023-03-24 19:32:30 +00:00
Frank Barchard
1a971f8cc3 clang 17 -flto-thin bug fix for Neon YUVtoRGB and ARGBToRGB565Dither
- YUV to RGB AArch32 kRGBCoeffBias rewind pointer
- ARGBToRGB565Dither declare width and source pointers as modified


Bug: chromium:1424089
Change-Id: I987180652331bab16ce27d8d166399a687ee890e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4370099
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-03-24 10:59:40 +00:00
Frank Barchard
3f219a3501 GCC warning fix for MT2T
- Fix redundent assignment compile warning in GCC
- Apply clang-format
- Bump version to 1863

Bug: libyuv:955
Change-Id: If2b6588cd5a7f068a1745fe7763e90caa7277101
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4344729
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2023-03-16 06:57:20 +00:00
Justin Green
76468711d5 M2T2 Unpack fixes
Fix the algorithm for unpacking the lower 2 bits of M2T2 pixels.

Bug: b:258474032
Change-Id: Iea1d63f26e3f127a70ead26bc04ea3d939e793e3
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4337978
Commit-Queue: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-03-14 14:59:26 +00:00
Frank Barchard
f9b23b9cc0 Transpose 4x4 for SSE2 and AVX2
Skylake Xeon
AVX2 Transpose4x4_Opt (290 ms)
SSE2 Transpose4x4_Opt (302 ms)
C    Transpose4x4_Opt (522 ms)

AMD Zen2
AVX2 Transpose4x4_Opt (136 ms)
SSE2 Transpose4x4_Opt (137 ms)
C    Transpose4x4_Opt (431 ms)

Bug: None
Change-Id: I4997dbd5c5387c22bfd6c5960b421504e4bc8a2a
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4292946
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-03-03 17:46:23 +00:00
Mirko Bonadei
e66f436560 Roll chromium_revision 504c069755..d4adab061f (1074965:1109888)
Change log: 504c069755..d4adab061f
Full diff: 504c069755..d4adab061f

Changed dependencies:
* src/base: f80120ff32..d0fee1a372
* src/build: fe1231e1da..60a5c0d8b7
* src/buildtools: 3c8fef071e..d1127a2c8d
* src/buildtools/clang_format/script: 8b525d2747..f97059df7f
* src/buildtools/third_party/libc++/trunk: cd0a050474..e136ec5032
* src/buildtools/third_party/libc++abi/trunk: 1a32724f72..ff8e691cbc
* src/buildtools/third_party/libunwind/trunk: 5870472fdd..c5e861c7b4
* src/ios: 866ec86ecb..09f48d9955
* src/testing: b4dc828e84..ce7bc51b4d
* src/third_party: 73f7282fa2..7cfb60d8ce
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/f0518d4511..ca1690e221
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/4efb51be85..9c6c41afcf
* src/third_party/depot_tools: 2fc7e1ffd5..eee53367c1
* src/third_party/freetype/src: 1c44de209c..3f01161ff2
* src/third_party/icu: 1b7d391f05..1e49ac26dd
* src/third_party/libjpeg_turbo: ed683925e4..0b6e6a1522
* src/third_party/nasm: 0873b2bae6..7fc833e889
* src/tools: a20d904d02..fce3426afe
DEPS diff: 504c069755..d4adab061f/DEPS

Clang version changed llvmorg-16-init-10736-ged9638c4:llvmorg-17-init-2387-g68e81d7e
Details: 504c069755..d4adab061f/tools/clang/scripts/update.py

TBR=fbarchard@google.com
BUG=None

Change-Id: Id8da564809809b47a7c91e3e35afdaf3d45586e7
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4291070
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
2023-02-27 10:19:18 +00:00
Frank Barchard
88b050f337 MergeUV AVX512BW use assembly
- Convert MergeUVRow_AVX512BW to assembly
- Enable MergeUVRow_AVX512BW for Windows with clangcl
- MergeUVRow_AVX2 use vpmovzxbw and vpsllw
- MergeUVRow_16_AVX2 use vpmovzxbw and vpsllw with different shift for U and V

AMD Zen 4 640x360 100000 iterations
Was
AVX512 MergeUVPlane_Opt (884 ms)
AVX2   MergeUVPlane_Opt (945 ms)
AVX2   MergeUVPlane_16_Opt (2167 ms)

Now
AVX512 MergeUVPlane_Opt (865 ms)
AVX2   MergeUVPlane_Opt (943 ms)
SSE2   MergeUVPlane_Opt (973 ms)
AVX2   MergeUVPlane_16_Opt (2102 ms)

Bug: None
Change-Id: I658ada2a75d44c3f93be8bd3ed96f83d5fa2ab8d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4271230
Reviewed-by: Fritz Koenig <frkoenig@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2023-02-22 21:19:08 +00:00
Frank Barchard
2bdc210be9 MergeUV_AVX512BW for I420ToNV12
On Skylake Xeon 640x360 100000 iterations
AVX512   MergeUVPlane_Opt (1196 ms)
AVX2     MergeUVPlane_Opt (1565 ms)
SSE2     MergeUVPlane_Opt (1780 ms)
Pixel 7  MergeUVPlane_Opt (1177 ms)

Bug: None
Change-Id: If47d4fa957cf27781bba5fd6a2f0bf554101a5c6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4242247
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: richard winterton <rrwinterton@gmail.com>
2023-02-13 20:14:57 +00:00
Sergio Garcia Murillo
b2528b0be9 Add support for odd width and height in I410ToI420
Bug: libyuv:950
Change-Id: Ic9a094463af875aefd927023f730b5f35f8551de
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4154630
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-01-23 19:05:00 +00:00
Hao Chen
0809713775 Refine some functions on the Longarch platform.
Add ARGBToYMatrixRow_LSX/LASX, RGBAToYMatrixRow_LSX/LASX and
RGBToYMatrixRow_LSX/LASX functions with RgbConstants argument.

Bug: libyuv:912
Change-Id: I956e639d1f0da4a47a55b79c9d41dcd29e29bdc5
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4167860
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-18 18:54:14 +00:00
Frank Barchard
0faf8dd0e0 Fix for DivideRow_NEON functions
- was dup of 8h but mul of 4s.  now use umull

Bug: libyuv:951
Change-Id: If6cb01f5f006c2235886b81ce120642d7e24a9bb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4166563
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-18 00:30:05 +00:00
Frank Barchard
541d8efbaf Fix for divide row functions used by P010ToI010
Bug: libyuv:951
Change-Id: Id323656cb6f99b1be0be7aaa854d3cc15feeba69
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4166562
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-17 21:40:45 +00:00
Frank Barchard
d5aa3d4a76 P010ToI010 and P012ToI012 conversion functions
- Convert 10 and 12 bit biplanar formats to planar.
- Shift 10 MSB to 10 LSB
- P010 is similar to NV12 in layout, but uses 10 MSB of 16 bit values.
- I010 is similar to I420 in layout, but uses 10 LSB of 16 bit values.

Bug: libyuv:951
Change-Id: I16a1bc64239d0fa4f41810910da448bf5720935f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4166560
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-13 19:20:12 +00:00
Mirko Bonadei
010dea8ba4 Remove auto from DEPS.
This should fix:
gclient.py: error: Wrong dep format: src/third_party/auto/src@ should be of the form dep@rev.


Bug: None
Change-Id: Id9896f464d788bb3e1eb7516b7f6b1402a9c4790
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4147349
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-09 21:18:53 +00:00
Frank Barchard
6e4b0acb4b I422Rotate take stride for temporary buffers
- Minor variable name changes first/last to top/bottom
- Comments explaining rotate temporary buffers usage
- Add asserts for scale parameter
- Use NULL and stddef.h instead of 0
- Use void * for allocation in row.h
- Add () around size parameter in macros


Bug: libyuv:926, libyuv:949
Change-Id: Ib55417570926ccada0a0f8abd1753dc12e5b162e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4136762
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-04 23:11:52 +00:00
Sergio Garcia Murillo
f8626a7224 Add 10 bit rotate methods.
This initial implementation is based on current unoptimized code in webrtc using just plain for loops.

Bug: libyuv:949
Change-Id: Ic87ee49c3a0b62edbaaa4255c263c1f7be4ea02b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4110782
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-04 21:10:01 +00:00
Sergio Garcia Murillo
22a579c438 Use ScalePlaneDown2_16To8 for avoiding the 2 step process
Bug: libyuv:950
Change-Id: I5a77bca9a0230fe00abd810939e217833a14683f
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4134524
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2023-01-03 21:41:21 +00:00
Sergio Garcia Murillo
f583b1b4b8 Add I410Copy and I410ToI420 methods
The I410To420 implementation does a two step approach for scaling down and 10-to-8 bit conversion using the Y plane as temporal storage.

Bug: libyuv:950
Change-Id: I3d35fad4b99e17253230456233fbd947e013c0ec
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4110783
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2023-01-03 20:27:28 +00:00
Frank Barchard
3abd6f36b6 Casting for scale functions
- MT2T support for source strides added, but only works for positive values.
- Reduced casting in row_common - one cast per assignment.
- scaling functions use intptr_t for intermediate calculations, then cast strides to ptrdiff_t

Bug: libyuv:948, b/257266635, b/262468594
Change-Id: I0409a0ce916b777da2a01c0ab0b56dccefed3b33
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4102203
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Reviewed-by: Justin Green <greenjustin@google.com>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Ernest Hua <ernesthua@google.com>
2022-12-15 22:34:22 +00:00
Frank Barchard
610e0cdead MT2T Warning fixes for fuchsia
Bug: b/258474032, b/257266635
Change-Id: Ic5cbbc60e2e1463361e359a2fe3e97976c1ea929
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4081348
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Justin Green <greenjustin@google.com>
2022-12-06 19:54:40 +00:00
Mirko Bonadei
c19943b4d0 Add DEPS to build libyuv for Fuchsia.
Bug: libyuv:948
Change-Id: Ibdbe7461f8aa909c3d6e91eb0b90194de5fa1064
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4064025
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-30 19:57:32 +00:00
Frank Barchard
4a3c79cb31 yuvconstants check for 3 arguments and show help
- show command line help for yuvconstants util
- fix for jpeg link on OSX with CMake

Bug: libyuv:946, libyuv:947
Change-Id: Icb11a2da376af07f0e03c1db467342b1f0d509cc
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4054461
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-11-28 18:30:27 +00:00
Sergei Trofimovich
f428a642e3 libyuv: fix libyuv.so underlinking
When `libyuv` is built with `jpeg` support it does not directly link
`libjpeg` in any form. As a result dynamic loading of the library
fails as:

    >>> import pillow_avif._avif
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: /usr/lib/libyuv.so: undefined symbol: jpeg_resync_to_restart

We can reproduce the same problem at build time if we build `libyuv` with
`LDFLAGS=-Wl,--no-undefined`:

    [ 99%] Linking CXX executable yuvconstants
    ld: CMakeFiles/yuv_shared.dir/source/mjpeg_decoder.cc.o: in function `libyuv::MJpegDecoder::MJpegDecoder()':
    mjpeg_decoder.cc:(.text+0xfc): undefined reference to `jpeg_resync_to_restart'
    ld: mjpeg_decoder.cc:(.text+0x136): undefined reference to `jpeg_std_error'
    ld: mjpeg_decoder.cc:(.text+0x194): undefined reference to `jpeg_CreateDecompress'

The change links `libgpeg` against `libyuv` itself to make it a
self-contained library. This fixes both loading if the library
itself and fixes linking of the library against other binaries
without explicit need for passing `-ljpeg`.

Change-Id: I044acb3799920e1536bdb3388442a40d4839348b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4050883
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-28 18:29:29 +00:00
Mirko Bonadei
cf7c3a1ba7 Roll chromium_revision 1c174f8519..504c069755 (1067099:1074965)
Change log: 1c174f8519..504c069755
Full diff: 1c174f8519..504c069755

Changed dependencies:
* src/base: 077682171b..f80120ff32
* src/build: 18e9d3c3ad..fe1231e1da
* src/buildtools: 33b52eafd5..3c8fef071e
* src/buildtools/third_party/libc++/trunk: fc6bbc5eb0..cd0a050474
* src/buildtools/third_party/libc++abi/trunk: 8dd405113a..1a32724f72
* src/buildtools/third_party/libunwind/trunk: aabcd87536..5870472fdd
* src/ios: 211070da56..866ec86ecb
* src/testing: aedf4723b9..b4dc828e84
* src/third_party: d6591989fa..eb60a9454b
* src/third_party/auto/src: 3659a0e643..097f0ee6ff
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/1ee71185a2..f0518d4511
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/3ffa6b2228..4efb51be85
* src/third_party/depot_tools: b52683fa2e..2fc7e1ffd5
* src/third_party/freetype/src: dea2e6358b..1c44de209c
* src/third_party/harfbuzz-ng/src: 56c4670935..2822b589bc
* src/third_party/icu: da07448619..1b7d391f05
* src/third_party/junit/src: 64155f8a9b..05fe2a64f5
* src/tools: a185bbc6c0..a20d904d02
DEPS diff: 1c174f8519..504c069755/DEPS

Clang version changed llvmorg-16-init-9369-g87a20868:llvmorg-16-init-10736-ged9638c4
Details: 1c174f8519..504c069755/tools/clang/scripts/update.py

TBR=fbarchard@google.com
BUG=b/260148908

Change-Id: I7bd9806bc29dfa401f40efd2fa057d9ff30b4884
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4049153
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
2022-11-23 10:19:11 +00:00
Frank Barchard
ea26d7adb1 DetilePlane_16 AVX version
- fix ifdefs for DetilePlane_16 to use 16 bit versions, not 8 bit.  (no functional change)

Bug: b/258474032
Change-Id: Ic07e02d9801e21126ebee0ceb5779aa712a493ce
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4034812
Reviewed-by: richard winterton <rrwinterton@gmail.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-18 23:59:06 +00:00
Frank Barchard
8713ba3f0b Add vzeroupper to AVX row functions
- move power of two macro to planar functions source
- revert row.h IS_ALIGNED change

Bug: b/258474032
Change-Id: If87bb8d55c9b9930dd3e378614f8e4faae0870e9
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4035166
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-11-17 23:00:08 +00:00
Frank Barchard
2d2cee418a Add Detile_16 planar function for 10 bit MT2T format
- Neon and SSE2
- Any for odd widths

Pixel 2 little core AArch32 build
C
TestDetilePlane_16 (1275 ms)
TestDetilePlane (1203 ms)
Neon
TestDetilePlane_16 (693 ms)
TestDetilePlane (660 ms)

Bug: b/258474032
Change-Id: Idbd09c5e9324e4deef5f1d54090d4b63cc7db812
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4031848
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-17 02:47:57 +00:00
Frank Barchard
6f21862f1b Roll chromium_revision 6974809249..1c174f8519 (1065463:1067099)
Change log: 6974809249..1c174f8519
Full diff: 6974809249..1c174f8519

Changed dependencies:
* src/base: 69a27d8442..077682171b
* src/build: dad0f9ca0f..18e9d3c3ad
* src/buildtools: 7f385a95b7..33b52eafd5
* src/buildtools/third_party/libc++/trunk: b093b39e7b..fc6bbc5eb0
* src/ios: efc2e0ecca..211070da56
* src/testing: 2e786640ff..aedf4723b9
* src/third_party: f15ee7dbb2..d6591989fa
* src/third_party/depot_tools: 7bd4611895..b52683fa2e
* src/third_party/nasm: fc8e0bd892..0873b2bae6
* src/tools: 4aa7126c82..a185bbc6c0
DEPS diff: 6974809249..1c174f8519/DEPS

Clang version changed llvmorg-16-init-9061-g1e7c1dd6:llvmorg-16-init-9369-g87a20868
Details: 6974809249..1c174f8519/tools/clang/scripts/update.py

TBR=fbarchard@google.com
BUG=libyuv:891

Change-Id: I7a4cd88a66476de6cf0167ea6242e3820aadd3f0
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/4004297
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
2022-11-03 22:26:19 +00:00
Mirko Bonadei
2f31ea2a16 Roll chromium_revision 219d891495..6974809249 (1060441:1065463)
Change log: 219d891495..6974809249
Full diff: 219d891495..6974809249

Changed dependencies:
* src/base: 3d848a5c51..69a27d8442
* src/build: 2cf254f018..dad0f9ca0f
* src/buildtools: ca6213a9de..7f385a95b7
* src/buildtools/third_party/libc++/trunk: e6caea47f8..b093b39e7b
* src/buildtools/third_party/libc++abi/trunk: 685c4ad257..8dd405113a
* src/buildtools/third_party/libunwind/trunk: 1111799723..aabcd87536
* src/ios: 2c96114418..efc2e0ecca
* src/testing: 20937c1154..2e786640ff
* src/third_party: 5d8d8067d0..f15ee7dbb2
* src/third_party/auto/src: b8f2bad387..3659a0e643
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b049f00cff..3ffa6b2228
* src/third_party/depot_tools: dbaca22bdf..7bd4611895
* src/third_party/freetype/src: 8493877e78..dea2e6358b
* src/third_party/nasm: 5fd9246276..fc8e0bd892
* src/tools: 11bbc9af4d..4aa7126c82
DEPS diff: 219d891495..6974809249/DEPS

Clang version changed llvmorg-16-init-7184-gdeb82d4a:llvmorg-16-init-9061-g1e7c1dd6
Details: 219d891495..6974809249/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: I82e41b04f0fd2e840530de4c1bfb50c906921733
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3996686
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-02 17:16:15 +00:00
Mirko Bonadei
a4f82ffdd3 Remove --send-mail from roll script
This should remove the problematic Code-Review+1 label that prevents
the upload to complete.

Bug: libyuv:891
Change-Id: I6dc34b1be160d22691d77ba6da63d3974333260d
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3996684
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-11-02 17:15:17 +00:00
Junji Watanabe
7ccf31d3b6 [infra] Allow project-libyuv-admins group to trigger LED tasks
"role/swarming.taskTriggerer" gives "swarming.tasks.createInRealm" permission.
https://source.chromium.org/chromium/infra/infra/+/main:luci/appengine/auth_service/realms/permissions.py;l=114;drc=36516367cd70f195935ffd933d939e770e3b2c65

This fixes the auth error in "led launch".
http://screen/58TYKnHALbRUQKb

Bug: b:255217089
Change-Id: Idbfc06e7ad8a94caac9bfd1fe473c60d6e4addf6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3990134
Reviewed-by: Christoffer Jansson <jansson@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
2022-11-01 12:40:22 +00:00
Junji Watanabe
ab386814ac [infra] Set reclient properties to libyuv builders
libyuv project will use the same RBE backend with webrtc project.

Bug: b:239908030
Change-Id: I1c852e57bce2fcef159d930c36f210939b4f3432
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3990126
Reviewed-by: Christoffer Jansson <jansson@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
2022-10-31 08:46:12 +00:00
Junji Watanabe
162c211257 Install reclient to libyuv
libyuv builders will also migrate from goma to reclient.

Bug: b:239908030
Change-Id: I3719b37031132164adb22dcee32665adcbd0fd87
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3977014
Commit-Queue: Christoffer Jansson <jansson@chromium.org>
Reviewed-by: Christoffer Jansson <jansson@chromium.org>
2022-10-28 09:51:35 +00:00
Christoffer Jansson
ba77d34307 add jansson@google.com to infra owners to cover when Mirko is OOO
Bug: None
Change-Id: I5c829bb52b8e2c5f99b1b6b926fcaeab4ddca115
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3990603
Commit-Queue: Magnus Jedvert <magjed@chromium.org>
Reviewed-by: Magnus Jedvert <magjed@chromium.org>
2022-10-28 09:46:02 +00:00
Frank Barchard
fe9ced6e3c ScaleRowUp2_Bilinear_12_SSSE3 preserve xmm7 for Windows
- Preserve xmm7 in ScaleRowUp2_Bilinear_12_SSSE3
- Previously xmm7 was used in ScaleRowUp2_Bilinear_12_SSSE3 without being preserved, which violates the Windows x64 calling conventions and can cause undefined behavior.


Bug: libyuv:945, 1218384
Change-Id: If18b292b588573355f9b4ba8c5b9c3fbe143d36b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3972137
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-21 19:35:17 +00:00
libyuv-ci-autoroll-builder
8084f0b0ed Roll chromium_revision a58ed3145a..219d891495 (1058030:1060441)
Change log: a58ed3145a..219d891495
Full diff: a58ed3145a..219d891495

Changed dependencies:
* src/base: 76b24d3475..3d848a5c51
* src/build: 9cba9b8342..2cf254f018
* src/buildtools: f4e35bb2e9..ca6213a9de
* src/buildtools/third_party/libc++/trunk: ebf2d34001..e6caea47f8
* src/buildtools/third_party/libc++abi/trunk: 849e53c238..685c4ad257
* src/buildtools/third_party/libunwind/trunk: 118a58005a..1111799723
* src/ios: a14c23e2c6..2c96114418
* src/testing: a1ea80d1c6..20937c1154
* src/third_party: 88ac685ca3..5d8d8067d0
* src/third_party/auto/src: ce33eafc19..b8f2bad387
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/978c34bea3..b049f00cff
* src/third_party/depot_tools: ab896c761c..dbaca22bdf
* src/third_party/freetype/src: 5182264a40..8493877e78
* src/third_party/icu: 20f8ac695a..da07448619
* src/third_party/libunwindstack: 8740b09bd1..4dbfa0e8c8
* src/third_party/nasm: 9215e8e1d0..5fd9246276
* src/tools: 68f79e6f25..11bbc9af4d
DEPS diff: a58ed3145a..219d891495/DEPS

Clang version changed llvmorg-16-init-6578-g0d30e92f:llvmorg-16-init-7184-gdeb82d4a
Details: a58ed3145a..219d891495/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: Ifad17711b071c27ad3352fafa123621646c0dfa9
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3962434
Commit-Queue: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
2022-10-18 14:21:29 +00:00
Frank Barchard
3da24c3ca3 Detile vld for gcc build fix
- add {} around loaded register

Bug: libyuv:944
Change-Id: I0d916e37beb50bda0838e4867742eb7afa57e1cc
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3957634
Reviewed-by: Justin Green <greenjustin@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-14 19:12:53 +00:00
Frank Barchard
425c05cc40 Enable AVX2 version of ABGRToY when BIT_EXACT is on
- move RGB to UV into BIT_EXACT ifdefs for each compiler
- move RGB to Y to always enabled

Bug: b/253491233
Change-Id: I7f1b40c0977ba1349578ee1ff987bda845be15f1
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3953663
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-14 17:25:57 +00:00
Frank Barchard
cb35d5f90e BGRAToI420 use SSSE3 for Y but C for UV when LIBYUV_BIT_EXACT enabled
- Previously was C for both Y and UV.

Was BGRAToI420_Opt (17780 ms)
Now BGRAToI420_Opt (9546 ms)

Bug: b/253491233
Change-Id: Id103d8d5ba0fed0f7a427dd5955e1830275eff6b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3953131
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-10-14 03:09:56 +00:00
libyuv-ci-autoroll-builder
01925b40bc Roll chromium_revision cbf7ac7473..a58ed3145a (1055152:1058030)
Change log: cbf7ac7473..a58ed3145a
Full diff: cbf7ac7473..a58ed3145a

Changed dependencies:
* src/base: 170e6ab443..76b24d3475
* src/build: 1326123dbe..9cba9b8342
* src/buildtools: e564697e6c..f4e35bb2e9
* src/buildtools/third_party/libc++/trunk: 7261e95e51..ebf2d34001
* src/buildtools/third_party/libc++abi/trunk: db2a783a7d..849e53c238
* src/buildtools/third_party/libunwind/trunk: 08ebcbe7b6..118a58005a
* src/ios: 8623fa1a48..a14c23e2c6
* src/testing: 32e58ce34c..a1ea80d1c6
* src/third_party: 0e58121916..88ac685ca3
* src/third_party/auto/src: 0079f49b32..ce33eafc19
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/04989786e9..1ee71185a2
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/0c709a95ed..978c34bea3
* src/third_party/depot_tools: 2c54a19bd0..ab896c761c
* src/third_party/freetype/src: 0417527d5b..5182264a40
* src/third_party/libunwindstack: e184bd94bf..8740b09bd1
* src/tools: 2ecd31b16c..68f79e6f25
DEPS diff: cbf7ac7473..a58ed3145a/DEPS

Clang version changed llvmorg-16-init-6457-g20a269cf:llvmorg-16-init-6578-g0d30e92f
Details: cbf7ac7473..a58ed3145a/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: I93d6142c28f96e2a076e62eba9634fe65d74a35b
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3949749
Commit-Queue: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Bot-Commit: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
2022-10-12 14:28:00 +00:00
libyuv-ci-autoroll-builder
97bd3bba83 Roll chromium_revision 1b7024f18f..cbf7ac7473 (1054163:1055152)
Change log: 1b7024f18f..cbf7ac7473
Full diff: 1b7024f18f..cbf7ac7473

Changed dependencies:
* src/base: 35807b2634..170e6ab443
* src/build: de28eb7d12..1326123dbe
* src/buildtools: 9174abb6ac..e564697e6c
* src/buildtools/third_party/libc++/trunk: 2e919977e0..7261e95e51
* src/buildtools/third_party/libc++abi/trunk: 20a144a49a..db2a783a7d
* src/ios: 2a82cb46c8..8623fa1a48
* src/testing: 6ff813a5ed..32e58ce34c
* src/third_party: 72ee8aaf4e..0e58121916
* src/third_party/auto/src: bd6926415e..0079f49b32
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/16eb727884..0c709a95ed
* src/third_party/depot_tools: a724859f7a..2c54a19bd0
* src/third_party/freetype/src: de8f14a8e4..0417527d5b
* src/tools: 8f0c6bf472..2ecd31b16c
DEPS diff: 1b7024f18f..cbf7ac7473/DEPS

Clang version changed llvmorg-16-init-6084-g2f3d7c2c:llvmorg-16-init-6457-g20a269cf
Details: 1b7024f18f..cbf7ac7473/tools/clang/scripts/update.py

TBR=libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com
BUG=None

Change-Id: I5740dca3ea003de0c982c53648e8a071651820eb
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3935553
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com <libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-10-05 07:38:35 +00:00
Mirko Bonadei
5cbd03008d Roll chromium_revision 28dca358ed..1b7024f18f (1052960:1054163)
Change log: 28dca358ed..1b7024f18f
Full diff: 28dca358ed..1b7024f18f

Changed dependencies:
* src/base: 1bf506fcf3..35807b2634
* src/build: 52a4ebc92d..de28eb7d12
* src/buildtools: 133d7cdb35..9174abb6ac
* src/buildtools/third_party/libc++/trunk: 11bdb46a42..2e919977e0
* src/buildtools/third_party/libc++abi/trunk: 5c3e02e92a..20a144a49a
* src/buildtools/third_party/libunwind/trunk: 7ff728a977..08ebcbe7b6
* src/ios: 6168124f7b..2a82cb46c8
* src/testing: 779d58002d..6ff813a5ed
* src/third_party: 4c9ce34450..72ee8aaf4e
* src/third_party/auto/src: c120217b63..bd6926415e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5eb0675d9c..16eb727884
* src/third_party/depot_tools: e3ed6a8e01..a724859f7a
* src/third_party/freetype/src: 3f3427c6f3..de8f14a8e4
* src/tools: aee28c1b0a..8f0c6bf472
DEPS diff: 28dca358ed..1b7024f18f/DEPS

Clang version changed llvmorg-16-init-5189-gbfcd536a:llvmorg-16-init-6084-g2f3d7c2c
Details: 28dca358ed..1b7024f18f/tools/clang/scripts/update.py

BUG=None

Change-Id: I51fbdbc0e17eac9e65b66f5dbb90da142c8fdfd7
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3933007
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
2022-10-04 20:55:13 +00:00
Frank Barchard
4e9601e39a Update CMakeLists.txt to include yuvconstants tool and deps on gflags
Bug: None
Change-Id: I5658addc2c44e6cabfcc8d349e66e13da6c3c0e6
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3928147
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Wan-Teh Chang <wtc@google.com>
Commit-Queue: Frank Barchard <fbarchard@chromium.org>
2022-10-03 23:09:07 +00:00
Jeremy Maitin-Shepard
c365da9c6c Use find_package(JPEG) in place of include(FindJPEG)
The former allows the package to be overridden with a local build by
`FetchContent`.

Also includes the fix to _MSC_VER conditions from:
https://aomedia.googlesource.com/aom/+/refs/heads/main/third_party/libyuv/README.libaom

Change-Id: I666e591becb3efaa7b5b68d27476319a2909b88e
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3933570
Reviewed-by: Wan-Teh Chang <wtc@google.com>
2022-10-03 22:19:28 +00:00
Junji Watanabe
4b93eb90ba Install CIPD ninja using DEPS
See chromium/src's CL https://crrev.com/c/3869740 for the context.

Bug: chromium:1340825
Change-Id: If14a7273afe3982622fb8aad4e6cab3468ffd60c
Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/3932276
Reviewed-by: Mirko Bonadei <mbonadei@chromium.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
2022-10-03 13:40:07 +00:00