Commit Graph

426 Commits

Author SHA1 Message Date
Angie Chiang
71f9da5c78 Merge changes I341bd674,Ia9a0d71d,I71c1f906,I2e36e07c,I94ee2e85, ...
* changes:
  Refactor check_initial_width
  Move noise_sensitivity to set_encoder_config
  Remove extra function calls in check_initial_width
  Move init_ref_frame_bufs to vp9_create_compressor
  Remove bits_left update in encoder_encode()
  Add vp9_get_encoder_config / vp9_get_frame_info
  vp9_get_coding_frame_num()
  Make [min/max]_gf_interval static under rate_ctrl
  Add rate_ctrl flag
2019-11-06 20:07:49 +00:00
angiebird
d693439bed Add rate_ctrl flag
BDRate Changes (negative means improvement)
lowres: 0.565%
midres: 0.361%
lowres: 0.233%
ugc360: -0.242%

Make gop size independent from coding results

Change-Id: I1f54c48b12dc45ee5162ca2527a877c1610528bd
2019-10-29 16:34:18 -07:00
Johann
daefbf2a6f support visual studio 2019 (vs16)
Fixed: 1633
Change-Id: I7dd2b4873aeb548c7f9ebf7025baf15a8e65c68f
2019-10-29 13:19:43 -04:00
Johann
5ed1801f10 add darwin18 target
Fix autodetection on MacOS 10.14. Without this it defaults
to generic-gnu

Change-Id: I19cd4a9f2fb106dff16ab5e38821a5f374add59c
2019-10-23 13:50:36 -04:00
James Zern
cb704b95e3 configure: test -Wno-* flags used with libyuv
with g++ this avoids:
command line option ‘-Wno-missing-prototypes’ is valid for C/ObjC but
not for C++

the flag is necessary with clang.

BUG=webm:1584

Change-Id: I250c76483302d913999e5f9e0d09ee6449b052df
2019-06-04 21:57:47 +00:00
James Zern
5bdf43407a configure: enable -Wmissing-declarations for more files
avoid using it with third_party/libyuv as that still requires some work.

BUG=webm:1584

Change-Id: Ib73136b22c89d927b112364e19d725c51768bbb7
2019-06-03 17:20:35 -07:00
Angie Chiang
950fecd01c Add mismatch_debug tool
Change-Id: I045b4cf625d428109688303ced5433d824df2790
2019-05-06 16:09:10 -07:00
Johann
f30c419d4a android: do not attempt standalone builds
arm builds require too many tweaks to keep up with changes
to the ndk. Recommend ndk-build instead.

Update documentation and drop --sdk-path references. If
--enable-external-build is used instead we do not need the compiler
path.

BUG=webm:1622

Change-Id: Id024345afd7af988321f8f97ebab19c425cb0493
2019-05-06 11:48:45 -07:00
Angie Chiang
483b71e8e7 Add bistream_debug tool
Change-Id: I339899cff65c7ef563f9411f2d7af9a32a08a705
2019-04-26 16:58:50 -07:00
Johann
4b357bd15b add -Wmissing-prototypes
clang treats -Wmissing-declarations differently than gcc. This
provides similar coverage for clang.

Fix vpx_clear_system_state() warning on 32bit builds:
  note: this declaration is not a prototype; add 'void' to make it a
  prototype for a zero-parameter function

Change-Id: I5a424bc38d47c0a3dc751d65c1efea5733907785
2019-03-04 18:02:09 -08:00
Yaowu Xu
b0ddf48c24 Disable encoder builds when checking coeff ranges
BUG=webm:1031

Change-Id: I28f4e8cdec170393b2d22cd8cb0b73a32204e09c
2019-02-19 17:27:06 -08:00
Jerome Jiang
793c45305e vp9: ML var partition as speed feature & cleanup.
Remove it from runtime flag.

Add new struct for rd ml partition.

BUG=webm:1599

Change-Id: I883edbba83c65b7e557b8832419e212cffc85997
2019-02-11 14:03:50 -08:00
Johann
060491ca21 enforce some c89 restrictions
Block "for (int i;;)" style declarations.

Use --std=gnu89 to avoid enforcing c89-style comments.

Change-Id: Ia7d1405eac647d04e92513c047773695e8d7dc6e
2019-02-05 14:03:21 -08:00
Johann
219ea62d00 add -Wmissing-declarations
This is useful for catching functions which should be static and
instances where the relevant rtcd file was not included.

BUG=webm:1584

Change-Id: Ied395847a664eedce59e8ed5180bd16d059ab0ac
2019-01-24 22:22:12 +00:00
Johann
381eb3c799 apply -Wextra to third_party/
googletest builds cleanly with -Wextra

Remove comments about webm:1069. The vp8 issue is tracked in webm:1246.

Change-Id: I8bbb01d34503cc9c342f5c3aa78e9476f72b94c2
2018-12-07 09:28:02 -08:00
James Zern
4fa9f733f5 Merge "configure: test -std=c++11 before enabling unit tests" 2018-12-06 22:34:14 +00:00
Johann
539dc7649f remove old visual studio support
Change-Id: I86682ef1aac1991e1ef6965e7aa298f6619bee13
2018-12-05 10:18:06 -08:00
James Zern
9c8ae2de7b configure: test -std=c++11 before enabling unit tests
since:
77fa51003 Replace deprecated scoped_ptr with unique_ptr

the unit tests require a c++11 capable compiler; future versions of
googletest (1.9.x) will as well, so this change was inevitable if we
wanted to keep the snapshot up to date.

Change-Id: Id5c646bd10fae09e7b705b7d5fad1344f2216282
2018-12-04 16:38:08 -08:00
Jon Kunkee
3a56c238ee Work around ARM64 Windows SDK arm_neon.h quirk
Since the Windows SDK has an ARM32-only arm_neon.h, files including it
during ARM64 Windows builds need to be redirected to arm64_neon.h.

Instead of editing many files to include ARM64-Windows-specific ifdef
logic, this commit introduces an ARM64-Windows-specific version of
arm_neon.h that performs the needed redirection and lands earlier in
the header search path than the ARM32-only arm_neon.h.

Change-Id: Idc63947a238ca1bd0c479d8f4ad68950487947c6
2018-11-16 22:27:18 +00:00
Jon Kunkee
e6f889c120 Add ARM64 Windows to configure scripts
In order to correctly configure for Windows 10 on ARM, this change adds
a --target value arm64-win64-vs15 to ./configure and adds feature
enable/disable logic for the new platform.

This is merely sufficient for Chromium targeting ARM64 Windows.

Bug: 893460
Change-Id: I46194286f63104bdf6ac57d719fdf1e5d5fa72c8
2018-11-15 22:14:46 +00:00
Hui Su
a2cd017016 Add ml_var_partition experiment
Make partition decisions using machine learning models. The goal is to
achieve better coding quality than the variance-based parititioning
without much encoding speed loss.

To enable this experiment, use --enable-ml-var-partition for config.

When eanbled, the variance-based partitioning is replaced by this ML
based partitioing for speed 6 and above in real time mode(except low
resolution or high bit-depth).

Current coding gains(average PSNR):
                speed 6      speed 7      speed 8
rtc              2.04%        2.65%        3.90%
ytlivehr         3.11%        4.53%       11.57%
hdres(rtc mode)  5.10%

Further testing and tuning is needed to see if the speed and quality
tradeoff is reasonable.

Change-Id: I0da5a2fbc22c3261832b32920ee36d9b19d417af
2018-09-28 09:07:54 -07:00
Angie Chiang
f2e126394c Add non-greedy-mv experimental flag
The experiment aims at making non-greedy mv search decision

Change-Id: I3d77048ce106771fe003f250d07b7ddf0112536f
2018-09-05 11:46:45 -07:00
Johann
00238b7c01 silence c++ abi warning
Linking c++ libraries built with gcc 6 and gcc 7 on arm
generates some warnings because of incompatibilities between those
compilers:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728

libvpx does not generate a c++ library. C++ is only used for examples and tests.

Change-Id: I3d5d5ef3fb66743bff26a833d6641898975e9f71
2018-08-30 14:28:20 -07:00
Niveditha Rau
11a868d104 Add Solaris to supported platforms
Change-Id: Ib49e1d79ba4c1c5d5147ab437f744a31429a059c
2018-05-21 16:25:23 +00:00
James Zern
48a3df87c0 configure,ios: add missing c++11 checks
+ bump ios minimum to 7.0; 6.0 does not have full c++11 support

Change-Id: If838b036e7327fda514cd2e8156eeda122cf6c73
2018-05-19 00:31:40 -07:00
Johann
e5b858740a Revert "Revert "update libwebm""
This reverts commit d32a55ffc4.

Use the correct 'check_add_cxxflags' invocation.

Change-Id: I97d8062c9218b81a24268ec5998e847b1a0efeda
2018-05-18 13:08:02 -07:00
Johann Koenig
8266c45b01 Merge "Revert "update libwebm"" 2018-05-15 14:35:49 +00:00
Johann Koenig
d32a55ffc4 Revert "update libwebm"
This reverts commit 595edb9669.

Incorrect check_add_cxxflags invocation prevented libwebm from
building. Correcting it causes build failures on jenkins and mac.

Original change's description:
> update libwebm
> 
> Clears "auto_ptr deprecated" warnings when building with
> clang v6.0.0
> 
> Requires C++11 support.
> 
> Change-Id: I5ea2744e73deeaa4e7b2599bacf0b6c9cf355a54

TBR=jzern@google.com,johannkoenig@google.com,builds@webmproject.org

Change-Id: I7340d912a121de035997cbd8ad77a150ee38189a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
2018-05-15 14:35:28 +00:00
Yaowu Xu
fd554ec714 Make a config time flag
This commit replace a hard coded macro with a macro defined by
a configure command.

Change-Id: Ib31354d61865314ed43e2c429c72b4ef2c8fa2a7
2018-05-14 14:32:34 -07:00
Johann
595edb9669 update libwebm
Clears "auto_ptr deprecated" warnings when building with
clang v6.0.0

Requires C++11 support.

Change-Id: I5ea2744e73deeaa4e7b2599bacf0b6c9cf355a54
2018-05-14 15:33:14 +00:00
Luc Trudeau
31f674d3e4 Remove ppc64 (big endian) from configure
Remove big endian PowerPC 64 from configure, as this build is problematic and
not supported. PowerPC 64 will be limited to little endian (ppc64le).

BUG=webm:1525
BUG=webm:1508

Change-Id: Id6a86d5913192549e03ac8f77879ba7526b752c8
2018-05-11 03:19:38 +00:00
James Zern
007971470b configure: check for arm_neon.h w/neon builds
fails at configure time rather than compile time unless using
--enable-external-build

Change-Id: I966ee1000e28fdcc3f4a29759789b056faee0010
2018-05-10 16:01:38 -07:00
Martin Storsjo
e63c29c760 configure: Disable pthread_h if linking failed
When doing both check_header and check_lib, the check_header call
will already enable pthread_h if the header was found. This was
overlooked when the pthread linking check was amended into a header
check and a separate linking check in 9b7d4cce63.

This brings back the same result as the original check in 38dc27cc6.

Change-Id: I0efb38f5780f7c79e2eb2b14290d6094096ea222
2018-05-04 09:37:51 +03:00
Martin Storsjo
9b7d4cce63 configure: Use both check_header and check_lib for pthreads
check_lib can be a stub that always returns true - make sure to
still use check_headers as before 38dc27cc6.

Change-Id: I5d471de56b16c015a0b686fa6c6caefa35bb89b4
2018-04-19 09:32:40 +03:00
Martin Storsjo
38dc27cc6d configure: Test linking pthreads before using it
This avoids enabling pthreads if only pthreads-w32 is available.
pthreads-w32 provides pthread.h but has a link library with a
different name (libpthreadGC2.a).

Generally, always using win32 threads when on windows would be
sensible.

However, libstdc++ can be configured to use pthreads (winpthreads), and
in these cases, standard C++ headers can pollute the namespace with
pthreads declarations, which break the win32 threads headers that
declare similar symbols - leading us to prefer pthreads on windows
whenever available (see d167a1ae and bug 1132).

Change-Id: Icd668ccdaf3aeabb7fa4e713e040ef3d67546f00
2018-04-14 23:42:21 +03:00
Martin Storsjo
8af243cfba configure: Add an arm64-win64-gcc target
This configuration doesn't require any extra custom settings, since
it only uses neon intrinsics that are handled automatically by the
compiler (no external assembly).

Change-Id: I35415c68f483a430c0672e060a7bbd09a3469512
2018-03-23 13:42:01 +02:00
Martin Storsjo
b08a0b07d4 configure: Add an armv7-win32-gcc target
This builds for windows on arm, with llvm-mingw. The target triplet
is named -gcc since that's how similar existing targets are named,
even though it technically runs clang (via frontends named
"$CROSS-gcc").

Assemble using $CC -c since there's no standalone assembler
available (except perhaps llvm-mc).

Change-Id: I2c9a319730afef73f811bad79f488dcdc244ab0d
2018-03-23 13:25:35 +02:00
Johann
0e97e70496 remove spatial svc experiment
Change-Id: Ifda11caaf992d10f2d93d6cd1d07b79b6047be05
2018-03-14 22:00:28 +00:00
Johann
95a71057f0 autodetect macOS High Sierra
Add darwin17 target

Change-Id: I349a2f6a0396c59269f567a03ae813e3e59ccefa
2018-03-12 14:54:48 -07:00
Johann
7195a2eaa4 add worst-case frame size cap
The largest frame is currently in choose_partitioning:
warning: stack frame size of 44156 bytes in function 'choose_partitioning'

but adding HBD amplifies other things:
warning: stack frame size of 51480 bytes in function 'dec_build_inter_predictors'

Add some padding for sanitizer and variances between compilers.

BUG=webm:1498

Change-Id: I0d94d4f94d25dafafca9d7484881c2ce5f8de371
2018-03-05 20:09:43 -08:00
Ralph Giles
117893a717 Don't force inlining for msvc targets.
INLINE is defined as __forceinline for vs* configs, but is the
normal, compiler-discretion inline for gcc/clang configs. This
makes many functions very large when building for windows targets,
much larger than they are elsewhere.

Use '__inline' as a consistent definition to get consistent function
sizes. Although Visual Studio documentation says that 'inline' is
only available in C+ code. This is probably incorrect, since Visual
Studio 2017 accepts C99 'inline' even when passed /TC. Nevertheless,
this commit uses the recommended '__inline' for consistency.

Thanks to David Major for the diagnosis.

Change-Id: Ib0b31a3afcea77822c84fe3c6cd452add66d825a
2017-12-21 13:55:18 -08:00
Kyle Siefring
b383a17fa4 Support building AVX-512 and implement sadx4 for AVX-512
The added AVX-512 support requires the subset of AVX-512 added in Skylake-X.

Change-Id: I39666b00d10bf96d06c709823663eb09b89265b7
2017-11-03 13:37:23 -04:00
Tom Finegan
ccae8da7c6 Make sure diff is present at configure time.
This avoids an endless build loop at vpx_version.h
creation time when diff is not present.

Change-Id: I16ae386dbdaf14f9a2b85e4c5d1aaa6c08f52a45
2017-08-24 12:11:48 -07:00
YinShiyou
2758de5cb2 loongson mmi configuration patch.
enable loongson mmi optimization: ../configure --enable-mmi

Change-Id: I7792c3adeac1d5b573917d7857bba6c1cc05fea5
2017-07-31 17:29:36 +00:00
Jim Bankoski
689ad89e86 Reintroduce fix for max qindex calculation of a gf interval
This reintroduces the fix:
  https://chromium-review.googlesource.com/c/422807/
and later reverted here:
  https://chromium-review.googlesource.com/c/447843/

BUG=webm:1355

This time behind a compile time flag :

configure --disable-always_adjust_bpm
configure --enable-always_adjust_bpm

This should make side by side testing easier and let users of the
lib pick which way they want to go.

Change-Id: I7d7b37b83015dc001810af84c132cbc1e71ba8d6
2017-07-11 18:40:26 +00:00
James Zern
27c2185954 configure: test for -Wparentheses-equality
Change-Id: I36de79c58461907deaea70d6131da9119bc0bc69
2017-06-15 16:05:20 -07:00
Gregor Jasny
bcfd9c9750 Add support for Visual Studio 2017
BUG=webm:1428

Change-Id: Iba98aef1159724d106cf39b94d7b69843d76cd48
2017-05-23 11:32:27 +02:00
James Zern
7ac3acf762 configure: enable -Wshorten-64-to-32 for hbd
Change-Id: I4041f3fc4aabc7a2251c44c75a477b659284c3cf
2017-04-05 17:34:06 -07:00
James Zern
d45617c702 remove CONFIG_MISC_FIXES
this belonged to vp10 with the changes now migrated to av1.

Change-Id: Ie30ead3e7b71f465bc14136e1b6f156ea978c43f
2017-03-24 20:41:39 -07:00
Johann
94655569fe Remove ppc-linux-gcc target
Change-Id: Iec2430966f54e2e5ba79f6bb703f47adde46479f
2017-03-09 11:33:33 -08:00