1826 Commits

Author SHA1 Message Date
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
Henrik Kjellander
74441e414d Revert "Roll chromium_revision 941118827f..316b880c55"
This reverts commit 03510421970e0029bf744feac5c128c2ee22c90c.
Failures on Windows bots are consistent after landing this.

TBR=fbarchard@google.com
NOTRY=True

Change-Id: Ie249aafde2204297aa2d86ecb1dec6e109685493
Reviewed-on: https://chromium-review.googlesource.com/435261
Commit-Queue: Henrik Kjellander <kjellander@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-02-01 09:57:13 +00:00
Manojkumar Bhosale
54ce8f23d6 Add MSA optimized ARGB/ABGR/BGRA/RGBA To Y/UV row functions
R=fbarchard@google.com
BUG=libyuv:634

Performance Gain (vs C auto-vectorized)
ARGBToYJRow_MSA       - ~3.2x
ARGBToYJRow_Any_MSA   - ~2.7x
BGRAToYRow_MSA        - ~3.2x
BGRAToYRow_Any_MSA    - ~2.7x
ABGRToYRow_MSA        - ~3.2x
ABGRToYRow_Any_MSA    - ~2.6x
RGBAToYRow_MSA        - ~3.1x
RGBAToYRow_Any_MSA    - ~2.7x
ARGBToUVJRow_MSA      - ~5.5x
ARGBToUVJRow_Any_MSA  - ~4.5x
BGRAToUVRow_MSA       - ~2.1x
BGRAToUVRow_Any_MSA   - ~2.0x
ABGRToUVRow_MSA       - ~2.1x
ABGRToUVRow_Any_MSA   - ~1.9x
RGBAToUVRow_MSA       - ~2.2x
RGBAToUVRow_Any_MSA   - ~1.9x

Performance Gain (vs C non-vectorized)
ARGBToYJRow_MSA       - ~10.9x
ARGBToYJRow_Any_MSA   -  ~9.2x
BGRAToYRow_MSA        - ~10.9x
BGRAToYRow_Any_MSA    -  ~9.3x
ABGRToYRow_MSA        - ~11.0x
ABGRToYRow_Any_MSA    -  ~9.3x
RGBAToYRow_MSA        - ~10.9x
RGBAToYRow_Any_MSA    -  ~9.1x
ARGBToUVJRow_MSA      - ~12.4x
ARGBToUVJRow_Any_MSA  - ~10.5x
BGRAToUVRow_MSA       -  ~4.7x
BGRAToUVRow_Any_MSA   -  ~4.4x
ABGRToUVRow_MSA       -  ~4.7x
ABGRToUVRow_Any_MSA   -  ~4.5x
RGBAToUVRow_MSA       -  ~4.8x
RGBAToUVRow_Any_MSA   -  ~4.4x

Review-Url: https://codereview.chromium.org/2641153003 .
2017-02-01 10:31:28 +05:30
Frank Barchard
0351042197 Roll chromium_revision 941118827f..316b880c55
Change log: 941118827f..316b880c55
Full diff: 941118827f..316b880c55

Changed dependencies:
* src/third_party/catapult: 03fbd54d8f..f332dd6d

DEPS diff: 941118827f..316b880c55/DEPS

Clang version changed 282097:282487
Details: 941118827f..316b880c55/tools/clang/scripts/update.py

BUG=None
TEST=None
R=kjellander@chromium.org

Review-Url: https://codereview.chromium.org/2648573002 .
2017-01-31 14:46:16 -08:00
Frank Barchard
b89bcda273 Add comments for ARGBToUV_C and ARGBToUVJ_C
ARGBToUV_C and ARGBToUVJ_C are generated functions with subtle
difference in rounding.  Adding comment to make them easier to find.

TBR=kjellander@chromium.org
BUG=libyuv:634
TEST=untested

Change-Id: I9912d256a1e04c58475d33bdb472c37484f6cab9
Reviewed-on: https://chromium-review.googlesource.com/434980
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-01-30 23:44:05 +00:00
Frank Barchard
54f2094a5e Rename mips source files to dspr2.
Add MSA detect to unittest.
Change macro to disable DSPR2 code to LIBYUV_DISABLE_DSPR2

BUG=libyuv:634
TEST=try bots

Change-Id: I9e0aa2452204fc529bb6f9e6fd93c4e1c379bba6
Reviewed-on: https://chromium-review.googlesource.com/433463
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-01-27 23:11:43 +00:00
Frank Barchard
33f52bdac9 Add installer builds to cmake for linux
cd ~/my_projects/libyuv
git pull
mkdir cbuild  # (for out-of-source builds)
cd cbuild
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4
make package

BUG=libyuv:673
TEST=make package

Change-Id: Ia449cbfd0bc118cc90c8648f8199a0526b7ae2a2
Reviewed-on: https://chromium-review.googlesource.com/433440
Commit-Queue: Frank Barchard <fbarchard@google.com>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
2017-01-26 23:05:17 +00:00
Henrik Kjellander
6b058e094d Remove GYP execution in DEPS runhooks
GYP is deprecated and execution will break soon, so
remove it from executing during runhooks already.

BUG=libyuv:674

Change-Id: If8b7b97d719b85e4b5658fb82fe5ae940e8ceaa3
Reviewed-on: https://chromium-review.googlesource.com/433877
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Frank Barchard <fbarchard@google.com>
2017-01-26 22:39:40 +00:00
Aaron Gable
7372782679 Make Gerrit the default for libyuv code reviews
BUG=665585

Change-Id: I96e92b1d22051c60808f4563e0f3c70f5a801efd
Reviewed-on: https://chromium-review.googlesource.com/430222
Reviewed-by: Frank Barchard <fbarchard@google.com>
Commit-Queue: Aaron Gable <agable@chromium.org>
2017-01-24 18:34:48 +00:00
Aaron Gable
13299e6c57 Clean up libyuv's codereview.settings
This is a trivial change intended to test libyuv's new CQ, but also
happens to be a nice cleanup, removal of dead entries, and sort of
the remaining entries.

Change-Id: I87cc228d3096fdf60b755ead6bd082757ce53262
Reviewed-on: https://chromium-review.googlesource.com/430992
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-01-20 23:07:04 +00:00
Aaron Gable
dbee5e2a9f Add a CQ to libyuv
This adds a commit queue for libyuv. The set of bots triggered
is the same as the set previously specified in PRESUBMIT.py. This
has two advantages over the current setup:
a) You get nice features in Gerrit (like a dry run button); and
b) You get a CQ!

Change-Id: I006e8480fa7238d9e7a0cfa0a932ddabcd71f511
Reviewed-on: https://chromium-review.googlesource.com/430917
Reviewed-by: Frank Barchard <fbarchard@google.com>
2017-01-20 19:41:35 +00:00
Frank Barchard
749e316ed8 Remove commented out code
TEST=None
BUG=libyuv:672
Change-Id: Ia5949fb20913e4397e62d6a302c89a27dbd7e169

Change-Id: Ia5949fb20913e4397e62d6a302c89a27dbd7e169
Reviewed-on: https://chromium-review.googlesource.com/430321
Reviewed-by: Aaron Gable <agable@chromium.org>
2017-01-20 02:03:12 +00:00
Manojkumar Bhosale
09b8c971b3 Add MSA optimized NV12/21 To RGB row functions
R=fbarchard@google.com
BUG=libyuv:634

Performance Gain (vs C auto-vectorized)
NV12ToARGBRow_MSA       - ~1.5x
NV12ToARGBRow_Any_MSA   - ~1.4x
NV12ToRGB565Row_MSA     - ~1.4x
NV12ToRGB565Row_Any_MSA - ~1.4x
NV21ToARGBRow_MSA       - ~1.5x
NV21ToARGBRow_Any_MSA   - ~1.5x
SobelRow_MSA            - ~4.3x
SobelRow_Any_MSA        - ~3.4x
SobelToPlaneRow_MSA     - ~8.0x
SobelToPlaneRow_Any_MSA - ~4.7x
SobelXYRow_MSA          - ~3.0x
SobelXYRow_Any_MSA      - ~2.5x

Performance Gain (vs C non-vectorized)
NV12ToARGBRow_MSA       - ~6.5x
NV12ToARGBRow_Any_MSA   - ~6.5x
NV12ToRGB565Row_MSA     - ~6.2x
NV12ToRGB565Row_Any_MSA - ~6.1x
NV21ToARGBRow_MSA       - ~6.5x
NV21ToARGBRow_Any_MSA   - ~6.5x
SobelRow_MSA            - ~14.5x
SobelRow_Any_MSA        - ~11.3x
SobelToPlaneRow_MSA     - ~34.2x
SobelToPlaneRow_Any_MSA - ~19.4x
SobelXYRow_MSA          - ~11.1x
SobelXYRow_Any_MSA      - ~9.1x

Review-Url: https://codereview.chromium.org/2636483002 .
2017-01-18 09:24:39 +05:30
Frank Barchard
a7c87e19f0 add Intel Code Analyst markers
add macros to enable/disable code analyst around blocks of code.

Normally these macros should not be used, but if performance
details are wanted for intel code, enable them around the code
and then run via the iaca tool, available on the intel website.

BUG=libyuv:670
TEST=~/iaca-lin64/bin/iaca.sh -64 out/Release/libyuv_unittest
R=wangcheng@google.com

Review-Url: https://codereview.chromium.org/2626193002 .
2017-01-13 15:50:24 -08:00
Manojkumar Bhosale
73a6f100a9 Add MSA optimized rotate functions (used 16x16 transpose)
R=fbarchard@google.com
BUG=libyuv:634

Performance Gain (vs C vectorized)
TransposeWx16_MSA        - ~6.0x
TransposeWx16_Any_MSA    - ~4.7x
TransposeUVWx16_MSA      - ~6.3x
TransposeUVWx16_Any_MSA  - ~5.4x

Performance Gain (vs C non-vectorized)
TransposeWx16_MSA        - ~6.0x
TransposeWx16_Any_MSA    - ~4.8x
TransposeUVWx16_MSA      - ~6.3x
TransposeUVWx16_Any_MSA  - ~5.4x

Review-Url: https://codereview.chromium.org/2617703002 .
2017-01-13 15:50:02 +05:30
Manojkumar Bhosale
7c64163ff4 Add MSA optimized RAW/RGB/ARGB to ARGB/Y/UV row functions
R=fbarchard@google.com
BUG=libyuv:634

Performance Gain (vs C vectorized)
ARGB1555ToARGBRow_MSA     - 1.85
ARGB1555ToARGBRow_Any_MSA - 1.82
RGB565ToARGBRow_MSA       - 2.14
RGB565ToARGBRow_Any_MSA   - 2.08
RGB24ToARGBRow_MSA        - 8.57
RGB24ToARGBRow_Any_MSA    - 7.42
RAWToARGBRow_MSA          - 8.57
RAWToARGBRow_Any_MSA      - 7.42
ARGB1555ToYRow_MSA        - 2.60
ARGB1555ToYRow_Any_MSA    - 2.47
RGB565ToYRow_MSA          - 2.45
RGB565ToYRow_Any_MSA      - 2.33
RGB24ToYRow_MSA           - 2.23
RGB24ToYRow_Any_MSA       - 2.01
RAWToYRow_MSA             - 2.25
RAWToYRow_Any_MSA         - 2.02
ARGB1555ToUVRow_MSA       - 1.40
ARGB1555ToUVRow_Any_MSA   - 1.37
RGB565ToUVRow_MSA         - 1.68
RGB565ToUVRow_Any_MSA     - 1.63
RGB24ToUVRow_MSA          - 3.02
RGB24ToUVRow_Any_MSA      - 2.87
RAWToUVRow_MSA            - 3.04
RAWToUVRow_Any_MSA        - 2.85

Performance Gain (vs C non-vectorized)
ARGB1555ToARGBRow_MSA     - 4.66
ARGB1555ToARGBRow_Any_MSA - 4.45
RGB565ToARGBRow_MSA       - 5.58
RGB565ToARGBRow_Any_MSA   - 5.34
RGB24ToARGBRow_MSA        - 8.57
RGB24ToARGBRow_Any_MSA    - 7.42
RAWToARGBRow_MSA          - 8.57
RAWToARGBRow_Any_MSA      - 7.42
ARGB1555ToYRow_MSA        - 6.38
ARGB1555ToYRow_Any_MSA    - 5.98
RGB565ToYRow_MSA          - 6.42
RGB565ToYRow_Any_MSA      - 6.05
RGB24ToYRow_MSA           - 7.87
RGB24ToYRow_Any_MSA       - 7.01
RAWToYRow_MSA             - 7.98
RAWToYRow_Any_MSA         - 7.01
ARGB1555ToUVRow_MSA       - 5.39
ARGB1555ToUVRow_Any_MSA   - 5.06
RGB565ToUVRow_MSA         - 6.39
RGB565ToUVRow_Any_MSA     - 5.90
RGB24ToUVRow_MSA          - 3.04
RGB24ToUVRow_Any_MSA      - 2.87
RAWToUVRow_MSA            - 3.04
RAWToUVRow_Any_MSA        - 2.88

Review-Url: https://codereview.chromium.org/2600713002 .
2017-01-13 15:43:37 +05:30
Frank Barchard
cb11559408 ConvertToARGB: Allows rotation on ARGB input
BUG=libyuv:668
TEST=run unit tests
R=fbarchard@google.com

Review-Url: https://codereview.chromium.org/2620183002 .
2017-01-11 14:38:25 -08:00
Frank Barchard
000d2fa91a Libyuv MIPS DSPR2 optimizations.
Optimized functions:

I444ToARGBRow_DSPR2
I422ToARGB4444Row_DSPR2
I422ToARGB1555Row_DSPR2
NV12ToARGBRow_DSPR2
BGRAToUVRow_DSPR2
BGRAToYRow_DSPR2
ABGRToUVRow_DSPR2
ARGBToYRow_DSPR2
ABGRToYRow_DSPR2
RGBAToUVRow_DSPR2
RGBAToYRow_DSPR2
ARGBToUVRow_DSPR2
RGB24ToARGBRow_DSPR2
RAWToARGBRow_DSPR2
RGB565ToARGBRow_DSPR2
ARGB1555ToARGBRow_DSPR2
ARGB4444ToARGBRow_DSPR2
ScaleAddRow_DSPR2

Bug-fixes in functions:

ScaleRowDown2_DSPR2
ScaleRowDown4_DSPR2

BUG=

Review-Url: https://codereview.chromium.org/2626123003 .
2017-01-11 12:19:13 -08:00
Manojkumar Bhosale
288bfbefb5 Add MSA optimized remaining scale row functions
R=fbarchard@google.com
BUG=libyuv:634

Performance Gain (vs C vectorized)
ScaleRowDown2_MSA            - ~22.3x
ScaleRowDown2_Any_MSA        - ~19.9x
ScaleRowDown2Linear_MSA      - ~31.2x
ScaleRowDown2Linear_Any_MSA  - ~29.4x
ScaleRowDown2Box_MSA         - ~20.1x
ScaleRowDown2Box_Any_MSA     - ~19.6x
ScaleRowDown4_MSA            - ~11.7x
ScaleRowDown4_Any_MSA        - ~11.2x
ScaleRowDown4Box_MSA         - ~15.1x
ScaleRowDown4Box_Any_MSA     - ~15.1x
ScaleRowDown38_MSA           - ~1x
ScaleRowDown38_Any_MSA       - ~1x
ScaleRowDown38_2_Box_MSA     - ~1.7x
ScaleRowDown38_2_Box_Any_MSA - ~1.7x
ScaleRowDown38_3_Box_MSA     - ~1.7x
ScaleRowDown38_3_Box_Any_MSA - ~1.7x
ScaleAddRow_MSA              - ~1.2x
ScaleAddRow_Any_MSA          - ~1.15x

Performance Gain (vs C non-vectorized)
ScaleRowDown2_MSA            - ~22.4x
ScaleRowDown2_Any_MSA        - ~19.8x
ScaleRowDown2Linear_MSA      - ~31.6x
ScaleRowDown2Linear_Any_MSA  - ~29.4x
ScaleRowDown2Box_MSA         - ~20.1x
ScaleRowDown2Box_Any_MSA     - ~19.6x
ScaleRowDown4_MSA            - ~11.7x
ScaleRowDown4_Any_MSA        - ~11.2x
ScaleRowDown4Box_MSA         - ~15.1x
ScaleRowDown4Box_Any_MSA     - ~15.1x
ScaleRowDown38_MSA           - ~3.2x
ScaleRowDown38_Any_MSA       - ~3.2x
ScaleRowDown38_2_Box_MSA     - ~2.4x
ScaleRowDown38_2_Box_Any_MSA - ~2.3x
ScaleRowDown38_3_Box_MSA     - ~2.9x
ScaleRowDown38_3_Box_Any_MSA - ~2.8x
ScaleAddRow_MSA              - ~8x
ScaleAddRow_Any_MSA          - ~7.46x

Review-Url: https://codereview.chromium.org/2559683002 .
2016-12-21 13:39:44 +05:30
Frank Barchard
bd10875846 modified libyuv.gyp so that it no longer depends on libjpeg.gyp, which does not exist anymore.
BUG=libyuv:666
TESTED= unittests built and passed with jpeg disabled.
R=kjellander@chromium.org

Review-Url: https://codereview.chromium.org/2585373002 .
2016-12-19 11:57:49 -08:00