1845 Commits

Author SHA1 Message Date
Frank Barchard
77f6916da2 use __popcnt for visual c HammingDistance_X86
BUG=libyuv:701
TEST=HammingDistance unittest performance is comparable to x64
R=wangcheng@google.com

Change-Id: I8abe861e086e0162ba4c7ba6f1ef7d1c006cd9d4
Reviewed-on: https://chromium-review.googlesource.com/505454
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-05-12 22:59:00 +00:00
Frank Barchard
e0615c0e69 Optimize Hamming Distance C code to do 64 bits at a time.
BUG=libyuv:701
TEST=LibYUVBaseTest.BenchmarkHammingDistance_C
R=wangcheng@google.com

Change-Id: I243003b098bea8ef3809298bbec349ed52a43d8c
Reviewed-on: https://chromium-review.googlesource.com/499487
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-05-12 17:53:52 +00:00
Frank Barchard
bbbf30eecd Remove volatile from variables to improve performance
BUG=libyuv:703
TEST=compile and disassemble.  see registers used not stack.
R=wangcheng@google.com

Change-Id: Iaa07ee5d0c35252994491bb2868276e161149efd
Reviewed-on: https://chromium-review.googlesource.com/500427
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-05-09 18:14:21 +00:00
Frank Barchard
2136e349da Hamming code difference of 2 memory blocks
BUG=libyuv:701
TEST=built and disassembled for aarch64
R=kjellander@chromium.org

Change-Id: I7712b1c7934e5dfb55fda1fa7c8405c32d6964ce
Reviewed-on: https://chromium-review.googlesource.com/495327
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Cheng Wang <wangcheng@google.com>
2017-05-08 21:37:51 +00:00
Frank Barchard
945ea1b746 mips switch sgtu to sltu for clang in ndk r14
The verion of clang in ndk r14 (3.9) has a built in llvm assembler
that does not have the sgtu pseudo instruction.
sltu is the actual instruction, so switch the 2 operands and use
the instruction instead of the pseudo op.

BUG=libyuv:700
TEST=try bots build mips without error.

Change-Id: I2d5f94f81acbd56cdedea011e7d9308979e19079
Reviewed-on: https://chromium-review.googlesource.com/494026
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-05-02 21:34:13 +00:00
Vignesh Venkatasubramanian
54289f1bb0 Fix mips build on android ndk r14+
Revert the workaround and fix it properly by passing the
additional necessary flag to the compiler.

BUG=libyuv:700

Change-Id: I1c893a8acb5079decbee6963b689424bf2f99f4f
Reviewed-on: https://chromium-review.googlesource.com/487881
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-04-26 08:39:55 +00:00
Frank Barchard
3b583396bf Disable CopyRow_MIPS
CopyRow_MIPS produces a compile error on some compilers.

TBR=kjellander@chromium.org
BUG=libyuv:700
TEST=try bots

Change-Id: Ie88f2006ef5cf14bffaf80fd4c0dd1caa409c569
Reviewed-on: https://chromium-review.googlesource.com/486127
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-04-25 01:31:13 +00:00
Bruce Dawson
996a2bbdb5 Avoid double compiles of libjpeg
When libyuv was changed to compile with clang-cl this also cause libjpeg
to be compiled with clang-cl, which means that it was being compiled
twice. This is generally a bad practice, it was causing duplicate symbol
warnings in some builds, and it slows builds slightly. This change
reduces the number of build steps with the default gn settings on
Win64 builds by 71 (currently from 47,200 to 47,129).

See this change that change libyuv's compilation:
https://chromium-review.googlesource.com/c/446667/

BUG=706627

Change-Id: I13e2d4ff8511350901af10f7443f3f4b89cc2499
Reviewed-on: https://chromium-review.googlesource.com/456651
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
2017-04-20 21:02:39 +00:00
Frank Barchard
a4929684c4 Roll chromium_revision da7cc8ca4c..ce95e5d83f (465147:465389)
Change log: da7cc8ca4c..ce95e5d83f
Full diff: da7cc8ca4c..ce95e5d83f

Changed dependencies:
* src/base: 636a52bf9d..f6489f4fd2
* src/build: 15013685bd..bca1cbe2aa
* src/ios: 9d4d917abc..9595ed7ed6
* src/testing: 6885521e31..7b3e681f96
* src/third_party: be0a7d2acc..b28b3325f9
* src/third_party/catapult: 49eb11f63e..e8775f0f64
* src/third_party/robolectric/robolectric: e38b49a12f..2a0b6ba221
* src/tools: 80ce3971a8..5c327d115e
* src/tools/gyp: e7079f0e0e..eb296f67da
DEPS diff: da7cc8ca4c..ce95e5d83f/DEPS

No update to Clang.

TBR=kjellander@chromium.org
BUG=libyuv:697


Change-Id: I34a5b3302ba369718536b1d0aa664f9b089386ca
Reviewed-on: https://chromium-review.googlesource.com/481064
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-04-18 22:40:59 +00:00
Henrik Kjellander
2d1908c481 Roll chromium_revision 7950721f08..da7cc8ca4c (454907:465147)
Change log: 7950721f08..da7cc8ca4c
Full diff: 7950721f08..da7cc8ca4c

Changed dependencies:
* src/base: d75864a2c5..636a52bf9d
* src/build: bf8911f59b..15013685bd
* src/buildtools: b3771b1935..88811f48a6
* src/ios: 8b8111f841..9d4d917abc
* src/testing: c2c74bc1d1..6885521e31
* src/third_party: 4c0908d22e..be0a7d2acc
* src/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/b43a6a289a..b65c4776da
* src/third_party/catapult: 353ee60a45..49eb11f63e
* src/third_party/ced/src: 368a9cc09a..e21eb6aed1
* src/third_party/icu: 450be73c9e..b34251f8b7
* src/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/3f6478ac95..63f24c8221
* src/third_party/robolectric/robolectric: e38b49a12f..2a0b6ba221
* src/tools: 14318cc69b..6412dca2e6
* src/tools/gyp: e7079f0e0e..eb296f67da
DEPS diff: 7950721f08..da7cc8ca4c/DEPS

Clang version changed 296320:299960
Details: 7950721f08..da7cc8ca4c/tools/clang/scripts/update.py

TBR=
BUG=None

Change-Id: Idef4cbd757cc6242b136e5499a21d634ec9f16b6
Reviewed-on: https://chromium-review.googlesource.com/479652
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-04-18 07:16:19 +00:00
Frank Barchard
fc02cc3806 Add I422ToRGB565
BUG=libyuv:699
TESTED=LibYUVConvertTest.I420ToARGB_RGB565_Opt

Change-Id: I87943bcad056fbbe051301f45c7dc0ae0620c837
Reviewed-on: https://chromium-review.googlesource.com/478578
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-04-17 17:51:17 +00:00
Frank Barchard
bd0faedbd2 add libyuv_unittest to Android.mk
BUG=libyuv:698
TESTED=mm libyuv_unittest within android external/libyuv builds unittests

Change-Id: I4b5fed9f5af86c8a910f73b14053ef83f38431cc
Reviewed-on: https://chromium-review.googlesource.com/478572
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-04-14 23:46:27 +00:00
Frank Barchard
8cab2e31d7 I422ToRGB565 fix for odd widths
I422ToRGB565Row_Any_AVX2 uses 2 step row conversion that calls
I422ToARGBRow_AVX2 and then ARGBToRGB565.
I422ToARGBRow_AVX2 expects multiple of 16 pixels.
Adjust the I422ToRGB565Row_Any_AVX2 to do multiple of 16 with AVX2
and then remainder in a buffer.

Bug: libyuv: 657
Test: out/Release/libyuv_unittest --gtest_filter=*Convert*I*To* --libyuv_width=1280 --libyuv_height=720
Change-Id: Ice1cb6c7ff6b2295513e8b4a9f77522e1c659810
Reviewed-on: https://chromium-review.googlesource.com/474232
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-04-11 17:24:05 +00:00
Frank Barchard
78ef440a1f Rename convert to yuvconvert to avoid name clash with linux util
Bug: libyuv:695
Test: untested
Change-Id: Ib088fd16fd00bbc50868ea330b2a544e29a3385c
Reviewed-on: https://chromium-review.googlesource.com/469077
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-04-06 18:58:42 +00:00
Tom Anderson
cbe5385055 Remove download_binaries.py from DEPS
This step is no longer necessary after https://codereview.chromium.org/2775913002/

Bug: 705072
Change-Id: Ia58cbe9e6cb450d832de24dbb5122597efc3e571
Reviewed-on: https://chromium-review.googlesource.com/459442
Reviewed-by: Magnus Jedvert <magjed@chromium.org>
Commit-Queue: Tom Anderson <thomasanderson@google.com>
2017-03-29 16:45:36 +00:00
Vignesh Venkatasubramanian
cb9a58f25f Android.mk: Add a flag to disable libjpeg
Do not build jpeg related files if LIBYUV_DISABLE_JPEG  is set to
"yes".

BUG=libyuv:693

Change-Id: If1bc4602fb843ca7b2964844b53553aa0cca551c
Reviewed-on: https://chromium-review.googlesource.com/455475
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Vignesh Venkatasubramanian <vigneshv@google.com>
2017-03-17 19:22:06 +00:00
Frank Barchard
2adb84e39e make gflags command line parser optional
BUG=libyuv:691
TEST=gn gen out/Release "--args=is_debug=false target_cpu=\"x64\" libyuv_include_tests=true"

Change-Id: Ib481189be884c34d9bbc30bfcf71c7969c6f4dae
Reviewed-on: https://chromium-review.googlesource.com/452736
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-14 01:52:52 +00:00
Frank Barchard
d59d3fcd18 Change parameter for '_Any' functions to param to avoid misnomer
BUG=None
TEST=None

Change-Id: I6940fc4753783afd25f83868635381bf801c65f5
Reviewed-on: https://chromium-review.googlesource.com/452962
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-10 23:32:39 +00:00
Frank Barchard
e6fec061cf lint cleanup for convert RGB24ToI420
RGB24, RAW, RGB565, ARGB1555 and ARGB4444 have conditional
2 pass versus direct path.  2 pass method requires a buffer that
is conditionally allocated.  ifdef's were confusing lint.
simplifed ifdefs to clean up lint warning

BUG=libyuv:692
TEST=lint source/convert.cc

Change-Id: If868718af30b48824a5e3d28f0d7d01d4609ad55
Reviewed-on: https://chromium-review.googlesource.com/451552
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-09 10:32:23 +00:00
Frank Barchard
73a603e120 clang-format 5.0 applied to libyuv
BUG=None
TEST=try bots and lint test

Change-Id: I1ab462adf2d309117862c5eb4b244a61ae202951
Reviewed-on: https://chromium-review.googlesource.com/450658
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-03-08 18:50:12 +00:00
Frank Barchard
27acadbf9d Roll chromium_revision c793ec77b2..7950721f08 (454713:454907)
Change log: c793ec77b2..7950721f08
Full diff: c793ec77b2..7950721f08

Changed dependencies:
* src/base: 8fe126945c..d75864a2c5
* src/build: 8a0a5a27d4..bf8911f59b
* src/ios: 2c58c1ed6b..8b8111f841
* src/testing: 9cacf531de..c2c74bc1d1
* src/third_party: 0ea751c2fe..4c0908d22e
* src/third_party/catapult: 3c626eaf72..353ee60a45
* src/tools: 41a0ccf0e1..14318cc69b
DEPS diff: c793ec77b2..7950721f08/DEPS

No update to Clang.

TBR=kjellander@chromium.org
BUG=libyuv:689

Change-Id: Ife134b4af1c8c1e63aae2b811342d325abe0b600
Reviewed-on: https://chromium-review.googlesource.com/450317
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-03-06 21:49:04 +00:00
Nico Weber
0741a3d704 Unbreak Chromium build after https://chromium-review.googlesource.com/c/446667/
Without this, `gn gen --check` for Chromium would fail with errors like:

  $ gn gen --check out/gn
  ERROR at //cc/resources/video_resource_updater.cc:25:11: Can't include
  this header from here.
  #include "third_party/libyuv/include/libyuv.h"
            ^----------------------------------
  The target:
    //cc:cc
  is including a file from the target:
    //third_party/libyuv:libyuv_internal

  [...]

  Dependency chain (there may also be others):
    //cc:cc -->
    //third_party/libyuv:libyuv --[private]-->
    //third_party/libyuv:libyuv_internal

BUG=libyuv:685, chromium:692600

Change-Id: I5e5bde2f0e4802d70bfd438793eb2460437398ee
Reviewed-on: https://chromium-review.googlesource.com/449934
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
2017-03-05 00:32:09 +00:00
Frank Barchard
bbcd785586 win64 builds use clangcl to enable optimized codepath
BUG=libyuv:685, chromium:692600
TEST=gn gen out\Release "--args=is_debug=false"
ninja -C out\Release
out\release\libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1 --gtest_filter=*ARGBToI420_Opt

Change-Id: I12ec09ae2e9bc448252aa46b137f52916403865d
Reviewed-on: https://chromium-review.googlesource.com/446667
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-04 00:04:35 +00:00
Frank Barchard
33a72f1e32 Roll chromium_revision 7613176285..c793ec77b2 (454473:454713)
Change log: 7613176285..c793ec77b2
Full diff: 7613176285..c793ec77b2

Changed dependencies:
* src/base: 12b56f8e03..8fe126945c
* src/build: 534dc3a634..8a0a5a27d4
* src/ios: 29f5746082..2c58c1ed6b
* src/testing: 4fd405dadd..9cacf531de
* src/third_party: 68fc46f169..0ea751c2fe
* src/third_party/catapult: 7ef761733d..3c626eaf72
* src/tools: 5eeceb2632..41a0ccf0e1
DEPS diff: 7613176285..c793ec77b2/DEPS

No update to Clang.

TBR=
BUG=None

Change-Id: I1edc697be02ac563ee3b1e60b4512ef00185b2e5
Reviewed-on: https://chromium-review.googlesource.com/448989
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-03-03 23:52:19 +00:00
Frank Barchard
0cf4d74ea1 roll chromium tools to get clangcl for win64
TBR=kjellander@chromium.org
BUG=libyuv:685, chromium:692600
TEST=gn gen out\Release "--args=is_debug=false"
ninja -C out\Release
out\release\libyuv_unittest --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1 --gtest_filter=*ARGBToI420_Opt

Change-Id: Iebc8d20d2dacce2532bf50bb4c1ebbded7dd3012
Reviewed-on: https://chromium-review.googlesource.com/450017
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-03-03 22:37:29 +00:00
Frank Barchard
136aa9d37c any11p fix for buffer overrun
BUG=libyuv:686
TESTED=untested

Change-Id: Idfae93349dd78b1b633a596631e5397e11b77d0b
Reviewed-on: https://chromium-review.googlesource.com/448320
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-03 19:57:35 +00:00
Henrik Kjellander
3e62cfe68c Roll chromium_revision 6557cd40de..7613176285 (453708:454473)
Change log: 6557cd40de..7613176285
Full diff: 6557cd40de..7613176285

Changed dependencies:
* src/base: b9d4d9b0e5..12b56f8e03
* src/build: 47e07d6798..534dc3a634
* src/buildtools: a7cc7a3e21..b3771b1935
* src/ios: 291daef6af..29f5746082
* src/testing: 178a302b13..4fd405dadd
* src/third_party: 4f196478f6..68fc46f169
* src/third_party/catapult: 4ee31ea3b4..7ef761733d
* src/third_party/gtest-parallel: 8768563f5c..1dad0e9f6d
* src/third_party/icu: 9cd2828740..450be73c9e
* src/tools: 54fd165044..1dfed1bd94
* src/tools/swarming_client: ebc8dab6f8..11e31afa5d
DEPS diff: 6557cd40de..7613176285/DEPS

Clang version changed 289944:296320
Details: 6557cd40de..7613176285/tools/clang/scripts/update.py

TBR=
BUG=None

Change-Id: Ia2216ea5e01c8aa0fe27ff860b31647b0a07e71a
Reviewed-on: https://chromium-review.googlesource.com/448959
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-03-03 03:11:50 +00:00
Henrik Kjellander
960088ec10 DEPS: Remove root_dir variable.
Due to legacy reasons, libyuv uses a root_dir variable in the DEPS file.
It was used to make the bots checkout into a 'src' dir instead of 'libyuv',
in order to get some tools working that had hard-coded assumptions on the name
'src' of the top-level directory. This changes all those dirs to be named
'src', which is needed to get tools_libyuv/autoroller/roll_deps.py to work
while keeping the buildbot infrastructure working.

BUG=libyuv:690
TBR=fbarchard@chromium.org

Change-Id: Ia138264d2576e3a9db95efa3de72a14531c92752
Reviewed-on: https://chromium-review.googlesource.com/447913
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-03-03 02:30:00 +00:00
Frank Barchard
91ee9b729e Fix missing return in MipsCpuCaps.
Previously if MipsCpuCaps were called with something other than
dspr2 or msa, the file was closed but still used.

This change assumed the function is only called internally twice:
once for msa and once for dspr2.  If msa is not being detected,
the function assumed dspr2 was being tested and returns dspr2 was
true.

BUG=libyuv:687
TEST=try bots

Change-Id: I80b328eb5ffc7baf5f1ee5a79c16d75c45ff26cc
Reviewed-on: https://chromium-review.googlesource.com/447831
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-03-01 23:07:03 +00:00
Henrik Kjellander
fb45d18db5 Roll chromium_revision 222a3fe7a7..6557cd40de (448367:453708)
Change log: 222a3fe7a7..6557cd40de
Full diff: 222a3fe7a7..6557cd40de

Changed dependencies:
* libyuv/base: b9d4d9b0e5..12a9434f99
* libyuv/build: 47e07d6798..b49954da30
* libyuv/buildtools: a7cc7a3e21..b3771b1935
* libyuv/ios: 291daef6af..c2fcb0a613
* libyuv/testing: 178a302b13..632f9abe3f
* libyuv/testing/gtest: 6f8a66431c..aa148eb2b7
* libyuv/third_party: 4f196478f6..e95cda5573
* libyuv/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/b43a6a289a..e429db7f48
* libyuv/third_party/catapult: 4ee31ea3b4..e8af4a7e11
* libyuv/third_party/colorama/src: 799604a104..ec81728111
* libyuv/third_party/gflags/src: 03bebcb065..30dbc81fb5
* libyuv/third_party/gtest-parallel: 8768563f5c..1dad0e9f6d
* libyuv/third_party/icu: 9cd2828740..450be73c9e
* libyuv/third_party/junit/src: 64155f8a9b..9e98a85ecf
* libyuv/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/3f6478ac95..5cedb6bf4e
* libyuv/third_party/mockito/src: de83ad4598..fb5738f071
* libyuv/third_party/requests/src: f172b30356..2aaf6ac038
* libyuv/third_party/robolectric/robolectric: e38b49a12f..6987796da8
* libyuv/tools: 54fd165044..254878a411
* libyuv/tools/gyp: e7079f0e0e..a7055b3989
* libyuv/tools/swarming_client: ebc8dab6f8..460def717a
DEPS diff: 222a3fe7a7..6557cd40de/DEPS

Clang version changed 289944:296320
Details: 222a3fe7a7..6557cd40de/tools/clang/scripts/update.py

TBR=
BUG=None

Change-Id: I484df7dff41046121566b6d95175f911d4aa6e46
Reviewed-on: https://chromium-review.googlesource.com/447903
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-02-28 22:27:20 +00:00
Andrii Shyshkalov
22c12037c5 CQ config: add gerrit CQAbility verifier.
Goal is to ensure that unreviewed and untrusted code isn't sent through
CQ to try bots, by accident or through malicious intent.

R=kjellander@google.com
BUG=chromium:692613
NOTRY=True

Change-Id: If10d778b9c9866593a4c6c36216ed0e1c12fa1d5
Reviewed-on: https://chromium-review.googlesource.com/443546
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
2017-02-27 11:55:04 +00:00
Manojkumar Bhosale
45b176d153 Add MSA optimized Interpolate/MergeUV/Misc functions
BUG=libyuv:634

Change-Id: If8d60bd57f01fe95bc2fd26196466574195cc126

Performance Gain (vs C auto-vectorized)
InterpolateRow_MSA      - ~3.3x
InterpolateRow_Any_MSA  - ~2.5x
ARGBSetRow_MSA          - ~1.0x
ARGBSetRow_Any_MSA      - ~1.0x
ARGBToRGB24Row_MSA      - ~1.9x
ARGBToRGB24Row_Any_MSA  - ~1.6x
MergeUVRow_MSA          - ~1.6x
MergeUVRow_Any_MSA      - ~1.2x

Performance Gain (vs C non-vectorized)
InterpolateRow_MSA      - ~11.3x
InterpolateRow_Any_MSA  - ~ 7.9x
ARGBSetRow_MSA          - ~ 6.2x
ARGBSetRow_Any_MSA      - ~ 4.0x
ARGBToRGB24Row_MSA      - ~ 9.9x
ARGBToRGB24Row_Any_MSA  - ~ 8.4x
MergeUVRow_MSA          - ~12.7x
MergeUVRow_Any_MSA      - ~ 8.0x

Change-Id: If8d60bd57f01fe95bc2fd26196466574195cc126
Reviewed-on: https://chromium-review.googlesource.com/445817
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-23 01:42:22 +00:00
Frank Barchard
a041b0ae03 Android.mk for libyuv - unused parameters warning enabled
BUG=libyuv:682
TEST=mm from android tree.

Change-Id: I13be3eaa6a33741797360d57bc5cf5fed91678ef
Reviewed-on: https://chromium-review.googlesource.com/445935
Reviewed-by: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-22 19:45:12 +00:00
Frank Barchard
054ec37f8e Android.mk upstreamed from android r1602
BUG=libyuv:682
TEST=mm from android tree.

Change-Id: I233e5b390e0a9442e8423a4844aa962854c1ae91
Reviewed-on: https://chromium-review.googlesource.com/446077
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-21 23:59:57 +00:00
Manojkumar Bhosale
eed66b2028 Add MSA optimized I444/I400/J400/YUY2/UYVY to ARGB row functions
BUG=libyuv:634

Change-Id: Ida80027c36a938a3bcf6f4480626f8eb9495e1be

Performance Gain (vs C auto-vectorized)
I444ToARGBRow_MSA       - ~1.6x
I444ToARGBRow_Any_MSA   - ~1.6x
I400ToARGBRow_MSA       - ~5.5x
I400ToARGBRow_Any_MSA   - ~5.3x
J400ToARGBRow_MSA       - ~1.0x
J400ToARGBRow_Any_MSA   - ~1.0x
YUY2ToARGBRow_MSA       - ~1.6x
YUY2ToARGBRow_Any_MSA   - ~1.6x
UYVYToARGBRow_MSA       - ~1.6x
UYVYToARGBRow_Any_MSA   - ~1.6x

Performance Gain (vs C non-vectorized)
I444ToARGBRow_MSA       - ~7.3x
I444ToARGBRow_Any_MSA   - ~7.1x
I400ToARGBRow_MSA       - ~5.5x
I400ToARGBRow_Any_MSA   - ~5.2x
J400ToARGBRow_MSA       - ~6.8x
J400ToARGBRow_Any_MSA   - ~5.7x
YUY2ToARGBRow_MSA       - ~7.2x
YUY2ToARGBRow_Any_MSA   - ~7.0x
UYVYToARGBRow_MSA       - ~7.1x
UYVYToARGBRow_Any_MSA   - ~6.9x

Change-Id: Ida80027c36a938a3bcf6f4480626f8eb9495e1be
Reviewed-on: https://chromium-review.googlesource.com/439246
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-21 23:22:07 +00:00
Frank Barchard
bbe8c233f2 scale warning fixes for unused parameters
BUG=libyuv:680
TEST=builds and runs with no warnings

Change-Id: I7d60ef44292fa6ad4f7c4e2e2657359b864d2dab
Reviewed-on: https://chromium-review.googlesource.com/442670
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-02-15 21:38:59 +00:00
Frank Barchard
3eccf7f1d2 scale test clipping code unused cpu parameters removed
fix unused arguments to scale clip test.

TBR=kjellander@chromium.org
BUG=libyuv:680
TEST= None

Change-Id: Iae354bb5284781907569706adcf74fa2aa691997
Reviewed-on: https://chromium-review.googlesource.com/442011
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-14 03:26:50 +00:00
Frank Barchard
20ecb366ea I420ToI400 fix for unused u and v arguments
TBR=kjellander@chromium.org
BUG=libyuv:679
TEST=None

Change-Id: I830f31e0de58c967cb02c71f422df4c19c94c367
Reviewed-on: https://chromium-review.googlesource.com/441949
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-14 02:54:58 +00:00
Frank Barchard
1d5630ba2b mjpeg_decoder - fix for unused parameter.
TBR=kjellander@chromium.org
BUG=libyuv:678
TEST=None

Change-Id: I5206de2026b56f155531a76f94aeb6cb1b0cd6c9
Reviewed-on: https://chromium-review.googlesource.com/442090
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-14 02:22:57 +00:00
Frank Barchard
177d344ed7 enable unused parameter warning
android.mk builds have unused parameter warning on by default.
This change for GN makes libyuv build the same way.

BUG=libyuv:681
TEST=build on linux with clang and ninja.

Change-Id: I76c627d446b96653f147725bca915d94a42ce9a6
Reviewed-on: https://chromium-review.googlesource.com/441194
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-14 01:33:57 +00:00
Frank Barchard
632f1db6ea disable unused parameter warning
cpuid, scale_neon, planarfunctions and jpeg have internal API's
with specialized versions that do not use all parameters.
Disable the warning in Android.mk for now.

BUG=libyuv:681
TEST=android make builds without warning.

Change-Id: I72ee654c376c6dd85b616fc4438e3ad0a86b39bc
Reviewed-on: https://chromium-review.googlesource.com/440510
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-02-11 02:04:47 +00:00
Frank Barchard
6825b161d7 HalfFloat SSE2/AVX2 optimized port scheduling.
Uses 1 add instead of 2 leas to reduce port pressure on ports 1 and 5
used for SIMD instructions.

BUG=libyuv:670
TEST=~/iaca-lin64/bin/iaca.sh -arch HSW out/Release/obj/libyuv/row_gcc.o

Change-Id: I3965ee5dcb49941a535efa611b5988d977f5b65c
Reviewed-on: https://chromium-review.googlesource.com/433391
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-11 01:02:06 +00:00
Frank Barchard
7a54d0a302 row_msa fix clang build warnings.
BUG=libyuv:634
TEST=untested

Change-Id: Ib7f0c99e669ddba0a1efbd15895880281ad6303e
Reviewed-on: https://chromium-review.googlesource.com/435303
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-02-07 09:36:28 +00:00
Henrik Kjellander
104511a9e9 Roll chromium_revision 8346af5a71..222a3fe7a7 (447464:448367)
Change log: 8346af5a71..222a3fe7a7
Full diff: 8346af5a71..222a3fe7a7

Changed dependencies:
* libyuv/base: b9d4d9b0e5..ae15a7297e
* libyuv/build: 47e07d6798..40995fba99
* libyuv/buildtools: a7cc7a3e21..97eb757d45
* libyuv/ios: 291daef6af..167973733d
* libyuv/testing: 178a302b13..4570199c0c
* libyuv/testing/gtest: 6f8a66431c..d62d6c6556
* libyuv/third_party: 4f196478f6..a9562d5c58
* libyuv/third_party/android_tools: https://chromium.googlesource.com/android_tools.git/+log/b43a6a289a..e429db7f48
* libyuv/third_party/catapult: 4ee31ea3b4..4236e0b3f5
* libyuv/third_party/colorama/src: 799604a104..ec81728111
* libyuv/third_party/gflags/src: 03bebcb065..30dbc81fb5
* libyuv/third_party/gtest-parallel: 8768563f5c..e281b59a8e
* libyuv/third_party/icu: 9cd2828740..ec5152fccf
* libyuv/third_party/junit/src: 64155f8a9b..9e98a85ecf
* libyuv/third_party/lss: https://chromium.googlesource.com/linux-syscall-support.git/+log/3f6478ac95..5cedb6bf4e
* libyuv/third_party/mockito/src: de83ad4598..fb5738f071
* libyuv/third_party/requests/src: f172b30356..af4052b020
* libyuv/third_party/robolectric/robolectric: e38b49a12f..4e7b586b02
* libyuv/tools: 54fd165044..1d4f8f15a7
* libyuv/tools/gyp: e7079f0e0e..a7055b3989
* libyuv/tools/swarming_client: ebc8dab6f8..d94e03c1e1
DEPS diff: 8346af5a71..222a3fe7a7/DEPS

No update to Clang.

TBR=
BUG=None

Change-Id: I547f1de9e33345b75fbe5bf77c7da45a208e4062
Reviewed-on: https://chromium-review.googlesource.com/438062
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-02-06 20:58:00 +00:00
Henrik Kjellander
92adfcdc1e Additional changes required to get Memcheck working
The change in https://chromium-review.googlesource.com/438330
wasn't sufficient to fix the memcheck bot.
This CL also removes the need for other tools than memcheck, since
those are no longer supported anyway.

BUG=libyuv:676
NOTRY=True

Change-Id: I23b7ebd0c2c9008cd2b0b4369edaef99a6687f7a
Reviewed-on: https://chromium-review.googlesource.com/438447
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-02-06 20:49:44 +00:00
Henrik Kjellander
6cf7709b15 Update location to make it possible to find Valgrind
BUG=libyuv:676
NOTRY=True

Change-Id: Ic4d2fb48a818ffca8dcd71605761e7e04201ea21
Reviewed-on: https://chromium-review.googlesource.com/438330
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
2017-02-06 20:28:34 +00:00
Henrik Kjellander
a45ec7d036 Restore root_dir variable default.
Its default value was accidentally cleared in
https://chromium-review.googlesource.com/436264
This restores it. It's set on the bots, which is
why it wasn't noticed.

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

Change-Id: Ifad560e9e5caa134fef4c2cbaf15f1f3bfa6028d
Reviewed-on: https://chromium-review.googlesource.com/438084
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-02-04 10:27:18 +00:00
Henrik Kjellander
f49fde796f Use DEPS for all dependencies + add PRESUBMIT.py
This changes libyuv to use the DEPS file for pulling
down all dependencies (thus no Chromium checkout is needed any more).

Add tools_libyuv directory to contain libyuv-specific tools
(needed to avoid name collision with the now DEPSed tools/ directory
of Chromium, which is needed by the toolchain).
Add tools_libyuv/autoroller/roll_deps.py script to automatically
roll all entries in the DEPS file (copied from WebRTC).

third_party/ is now DEPSed as well, including the gtest configuration
headers that used to live inside the libyuv repo.

Add PRESUBMIT.py with a few simple checks + execution of PyLint and
Python unit tests. For PyLint a pylintrc file was also added.

Valgrind in tools_libyuv/valgrind was updated to make PRESUBMIT.py pass
and remove old tsan suppressions (not used).

Removed util/android/test_runner.py since it's no longer needed.

Buildbot changes in https://chromium-review.googlesource.com/436464 
are needed for the Memcheck bot to go green.

BUG=libyuv:676
NOTRY=True

Change-Id: Ib86fea2905a1656bba2933703ce5a59d29d8db6b
Reviewed-on: https://chromium-review.googlesource.com/436264
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-02-03 11:36:53 +00:00
Frank Barchard
76e7f104ae documentation updates
BUG=None
TEST=Untested

Change-Id: I8ab95654255d1aa9cf05a664ecf59ee6c0757e66
Reviewed-on: https://chromium-review.googlesource.com/434941
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-02-02 18:31:32 +00:00
Frank Barchard
0fb5675902 Fix dspr2 rename changes. Fix unused variables
TBR=kjellander@chromium.org
BUG=libyuv:634
TEST=try bots

Review-Url: https://codereview.chromium.org/2675583002 .
2017-02-01 18:51:06 -08:00