Fix compile warnings about implicit type conversion for
target=armv7-android-gcc in aomenc.c.
cherry-picked from libvpx:
380a26112 Fix compile warnings for target=armv7-android-gcc
BUG=aomedia:111
Change-Id: Iffa6af8ac5d87582f418e3425bee0e1d48f27b93
This reverts commit 3e882f29c5.
This causes build and link issues under visual studio in both x86 and
x64 configs
Change-Id: Id8b1e7e2f313817f034afddc2c627db8aa741d14
Adding the variables to the cache allows the user running cmake
to control configuration variable values using the -D parameter
passed to cmake.
Variables set by the user are used directly unless, for example,
a failing compiler flag or feature test overrides the user's
specified value. Variables not set by the user pick up the cached
default value.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Ie8a80968345998c1869011d8a2c5eff01af678a3
Implement the 3 header checks currently run by configure:
- aom/aom_integer.h
- pthread.h
- unistd.h
Note: the aom_integer.h check is only present to maintain parity
with the behavior of the original build system. The output variable
it sets is not actually used in the aom sources.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I53479a1253a977d6fdb7b0d6e5233686d79315e3
- Update compiler flags to match existing build system.
- Cache flag test results (passes and failures) to speed up
regeneration of build files and avoid building infinite length
command lines.
- Update the flag check functions to append new flags to
allow for turning things off when needed.
Change-Id: I8bbfde87753a9bc8e166d3114bb56c73810a2fb6
- Add minimal compiler flag testing.
- Generate aom_config.c and aom_config.h. Note: hard coded
to generic-gnu values for now.
- Still a work in progress. This will not build anything.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Id65b42ea9f4c4f744d788660e2de7234886ce039
Cherry-Picked the following commits:
0defd8f Changed "WebM" to "AOMedia" & "webm" to "aomedia"
54e6676 Replace "VPx" by "AVx"
5082a36 Change "Vpx" to "Avx"
7df44f1 Replace "Vp9" w/ "Av1"
967f722 Remove kVp9CodecId
828f30c Change "Vp8" to "AOM"
030b5ff AUTHORS regenerated
2524cae Add ref-mv experimental flag
016762b Change copyright notice to AOMedia form
81e5526 Replace vp9 w/ av1
9b94565 Add missing files
fa8ca9f Change "vp9" to "av1"
ec838b7 Convert "vp8" to "aom"
80edfa0 Change "VP9" to "AV1"
d1a11fb Change "vp8" to "aom"
7b58251 Point to WebM test data
dd1a5c8 Replace "VP8" with "AOM"
ff00fc0 Change "VPX" to "AOM"
01dee0b Change "vp10" to "av1" in source code
cebe6f0 Convert "vpx" to "aom"
17b0567 rename vp10*.mk to av1_*.mk
fe5f8a8 rename files vp10_* to av1_*
Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419
allows 'make test_libvpx', etc. some reworking of the makefiles would be
needed to avoid hard coding targets here.
Change-Id: I18982dbf691e7d36ab8bcf5934bab9340687b061
(cherry picked from commit 25085a6ac21fc8e2341b92e2f1f14d5a7fef30c6)
This commit bring all up-to-date changes from master that are
applicable to nextgenv2. Due to the remove VP10 code in master,
we had to cherry pick the following commits to get those changes:
Add default flags for arm64/armv8 builds
Allows building simple targets with sane default flags.
For example, using the Android arm64 toolchain from the NDK:
https://developer.android.com/ndk/guides/standalone_toolchain.html
./build/tools/make-standalone-toolchain.sh --arch=arm64 \
--platform=android-24 --install-dir=/tmp/arm64
CROSS=/tmp/arm64/bin/aarch64-linux-android- \
~/libvpx/configure --target=arm64-linux-gcc --disable-multithread
BUG=webm:1143
vpx_lpf_horizontal_4_sse2: Remove dead load.
Change-Id: I51026c52baa1f0881fcd5b68e1fdf08a2dc0916e
Fail early when android target does not include --sdk-path
Change-Id: I07e7e63476a2e32e3aae123abdee8b7bbbdc6a8c
configure: clean up var style and set_all usage
Use quotes whenever possible and {} always for variables.
Replace multiple set_all calls with *able_feature().
Conflicts:
build/make/configure.sh
vp9-svc: Remove some unneeded code/comment.
datarate_test,DatarateTestLarge: normalize bits type
quiets a msvc warning:
conversion from 'const int64_t' to 'size_t', possible loss of data
mips added p6600 cpu support
Removed -funroll-loops
psnr.c: use int64_t for sum of differences
Since the values can be negative.
*.asm: normalize label format
add a trailing ':', though it's optional with the tools we support, it's
more common to use it to mark a label. this also quiets the
orphan-labels warning with nasm/yasm.
BUG=b/29583530
Prevent negative variance
Due to rounding, hbd variance may become negative. This commit put in
check and clamp of negative values to 0.
configure: remove old visual studio support (<2010)
BUG=b/29583530
Conflicts:
configure
configure: restore vs_version variable
inadvertently lost in the final patchset of:
078dff7 configure: remove old visual studio support (<2010)
this prevents an empty CONFIG_VS_VERSION and avoids make failure
Require x86inc.asm
Force enable x86inc.asm when building for x86. Previously there were
compatibility issues so a flag was added to simplify disabling this
code.
The known issues have been resolved and x86inc.asm is the preferred
abstraction layer (over x86_abi_support.asm).
BUG=b:29583530
convolve_test: fix byte offsets in hbd build
CONVERT_TO_BYTEPTR(x) was corrected in:
003a9d2 Port metric computation changes from nextgenv2
to use the more common (x) within the expansion. offsets should occur
after converting the pointer to the desired type.
+ factorized some common expressions
Conflicts:
test/convolve_test.cc
vpx_dsp: remove x86inc.asm distinction
BUG=b:29583530
Conflicts:
vpx_dsp/vpx_dsp.mk
vpx_dsp/vpx_dsp_rtcd_defs.pl
vpx_dsp/x86/highbd_variance_sse2.c
vpx_dsp/x86/variance_sse2.c
test: remove x86inc.asm distinction
BUG=b:29583530
Conflicts:
test/vp9_subtract_test.cc
configure: remove x86inc.asm distinction
BUG=b:29583530
Change-Id: I59a1192142e89a6a36b906f65a491a734e603617
Update vpx subpixel 1d filter ssse3 asm
Speed test shows the new vertical filters have degradation on Celeron
Chromebook. Added "X86_SUBPIX_VFILTER_PREFER_SLOW_CELERON" to control
the vertical filters activated code. Now just simply active the code
without degradation on Celeron. Later there should be 2 set of vertical
filters ssse3 functions, and let jump table to choose based on CPU type.
improve vpx_filter_block1d* based on replace paddsw+psrlw to pmulhrsw
Make set_reference control API work in VP9
Moved the API patch from NextGenv2. An example was included.
To try it, for example, run the following command:
$ examples/vpx_cx_set_ref vp9 352 288 in.yuv out.ivf 4 30
Conflicts:
examples.mk
examples/vpx_cx_set_ref.c
test/cx_set_ref.sh
vp9/decoder/vp9_decoder.c
deblock filter : moved from vp8 code branch
The deblocking filters used in vp8 have been moved to vpx_dsp for
use by both vp8 and vp9.
vpx_thread.[hc]: update webp source reference
+ drop the blob hash, the updated reference will be updated in the
commit message
BUG=b/29583578
vpx_thread: use native windows cond var if available
BUG=b/29583578
original webp change:
commit 110ad5835ecd66995d0e7f66dca1b90dea595f5a
Author: James Zern <jzern@google.com>
Date: Mon Nov 23 19:49:58 2015 -0800
thread: use native windows cond var if available
Vista / Server 2008 and up. no speed difference observed.
100644 blob 4fc372b7bc6980a9ed3618c8cce5b67ed7b0f412 src/utils/thread.c
100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h
vpx_thread: use InitializeCriticalSectionEx if available
BUG=b/29583578
original webp change:
commit 63fadc9ffacc77d4617526a50c696d21d558a70b
Author: James Zern <jzern@google.com>
Date: Mon Nov 23 20:38:46 2015 -0800
thread: use InitializeCriticalSectionEx if available
Windows Vista / Server 2008 and up
100644 blob f84207d89b3a6bb98bfe8f3fa55cad72dfd061ff src/utils/thread.c
100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h
vpx_thread: use WaitForSingleObjectEx if available
BUG=b/29583578
original webp change:
commit 0fd0e12bfe83f16ce4f1c038b251ccbc13c62ac2
Author: James Zern <jzern@google.com>
Date: Mon Nov 23 20:40:26 2015 -0800
thread: use WaitForSingleObjectEx if available
Windows XP and up
100644 blob d58f74e5523dbc985fc531cf5f0833f1e9157cf0 src/utils/thread.c
100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h
vpx_thread: use CreateThread for windows phone
BUG=b/29583578
original webp change:
commit d2afe974f9d751de144ef09d31255aea13b442c0
Author: James Zern <jzern@google.com>
Date: Mon Nov 23 20:41:26 2015 -0800
thread: use CreateThread for windows phone
_beginthreadex is unavailable for winrt/uwp
Change-Id: Ie7412a568278ac67f0047f1764e2521193d74d4d
100644 blob 93f7622797f05f6acc1126e8296c481d276e4047 src/utils/thread.c
100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h
vp9_postproc.c missing extern.
BUG=webm:1256
deblock: missing const on extern const.
postproc - move filling of noise buffer to vpx_dsp.
Fix encoder crashes for odd size input
clean-up vp9_intrapred_test
remove tuple and overkill VP9IntraPredBase class.
postproc: noise style fixes.
gtest-all.cc: quiet an unused variable warning
under windows / mingw builds
vp9_intrapred_test: follow-up cleanup
address few comments from ce050afaf3e288895c3bee4160336e2d2133b6ea
Change-Id: I3eece7efa9335f4210303993ef6c1857ad5c29c8
Each time a codec is enabled or disabled with the umbrella
--enable-vpN flag, set the encoder and decoder configurations as well.
This was done as a post-processing step but doing that lost the order of
the arguments.
BUG=webm:1205
Change-Id: Ic629bfdd06acc04bc5a7227309f36bba54dad8b1
The logic can be incorporated into configure.sh
Removes a dependency on ios-version.sh which was not part of DIST-SRCS
and removes a warning from 'make dist' sub builds:
../src/build/make/configure.sh: line 787:
../src/build/make/ios-version.sh: No such file or directory
Change-Id: Ic38314708eb278dd9d2a9769a670da32f6126637
Apple's version format specification is strictly checked on app
store submission, even for embedded frameworks:
http://apple.co/1WgelY1
The build version number should be a string comprised of
three non-negative, period-separated integers with the
first integer being greater than zero. The string should
only contain numeric (0-9) and period (.) characters.
So that's room for "1.5.0" but not for "1.5.0-906-g656f9c4".
The full version returned from 'version.sh --bare' is now
embedded under a 'VPXFullVersion' custom key in the Info.plist,
so it can still be extracted from the resulting framework.
Change-Id: If34a58d02e407379d1f1859fda533ef7f983170b
Many codes require -mstackrealign flags. Although -mstackrealign has
been already added to CFLAGS of some modules, SIGSEGV occurs in other
modules than those modules.
The best way may be to find causes and to fix them. However, we
cannot know those causes until SIGSEGV occur really. In addition, if
SIGSEGV occurs in other programs, it will be fatal.
So adding -mstackrealign flags to CFLAGS unconditionally is
reasonable.
Change-Id: I999ef597a6afe97f5e7cc7bffaa866537c3eedd2
Also allows use of --enable-shared when configuring for Mac OS X,
producing a bare .dylib.
Enabling the shared framework bumps the iOS deployment target to 8.0,
the minimum required to support dynamic framework deployment in apps.
When not using --enable-shared, a static library for iOS 6.0+ will still
be built.
Minimum version settings have been moved into ios-version.sh so they
can be updated in a single place.
As with the static build, unless header search paths are manually
tweaked, users must add a VPX prefix on includes, such as:
#include <VPX/vpx/vpx_decoder.h>
A module map for headers is not yet included as inttypes.h is not
modular; this means that VPX cannot be used directly in Swift code,
but can still be pulled in through an Objective-C wrapper.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1092
Change-Id: I28fb06ce65e48ed167a88c14a7bfb2861989317e
When using git submodules, .git may be a file instead of a directory.
The -d test was failing in that case; switched to -e.
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1215
Change-Id: Iedf0e92bfeb003b28a415945dc729e6ce58c4fe4
- iOS SDKs no longer ship with armv6 support.
- Our minimum iOS version means all target devices have neon.
- Remove armv6 darwin LD workaround.
- This removes a TODO.
Change-Id: I2fcb5b82c96213364275475be021c7dd8459d5c0
arm-none-linux-gnueabi- is an anachronism and makes building on native
arm platforms more difficult. further, many distros include alternative
cross compilers, e.g., arm-linux-gnueabihf-, so the choice is best left
up to the user.
Change-Id: Id8aaf820ed112b85db2b8518d0e9d8abee1ad85c
avoids picking up defaults if CROSS is forcibly set empty as in:
$ CROSS= ./configure ...
BUG=1121
Change-Id: I6af91959288dede01efe3e5945698ab249eb6ec3
Xcode 7 refuses to link to x86 and x86_64 code that's built for
iphone sim, so add an extra command line flag that forces iosbuild
to use darwin15 targets.
Change-Id: I2228d458f5cccf4d26866040380a974f88d9d360
--disable-XXX has the effect of disabling all extensions above it, e.g.,
--disable-ssse3 disables ssse3-avx2.
Change-Id: If02b44ca71ee12e4acb12010db8593a7989f2a9d
The option exists specifically to allow for configurations
where the build environment is different from the configure
environment.
Change-Id: I95196fa3c49700251d10ff5d256dc7380e39d0c4
When the iOS SDK major version is 9 or higher:
- Pass -fembed-bitcode to compiler, assembler, and linker.
- Add a warning for simulator targets since yasm doesn't know
what -fembed-bitcode means, and exits with an error.
BUG=https://code.google.com/p/webm/issues/detail?id=1075
Change-Id: I38c997a0225e53c5dd1b4ddf7935d21362953f76
Always add IOS_VERSION_MIN to darwin arm cflags. The warning occured
because the default (9.0) does not match the value set by configure
(6.0).
BUG=https://code.google.com/p/webm/issues/detail?id=1075
Change-Id: Ia9085ceeca10e057f9eb781c14f07581bb6280a5
- Use the iphoneos SDK path (instead of macosx).
- Detect iOS SDK major version and disable media (armv6) when using
iOS SDK version 9 or higher.
BUG=https://code.google.com/p/webm/issues/detail?id=1075
Change-Id: I12f77dbeee4c0084e8322f6841813da8b5e91c16
Shortcut arg for --extra-configure-args --enable-examples. Enables
the examples, and thus ensures that all versions of libvpx that
iosbuild.sh produces can actually be linked.
Change-Id: I2ddda094361bf0ac77f8d2ae542e4dc7b2cab158
remove 'u' and specify all objects to allow objects with the same
basename to be added and a incremental rebuild to succeed
fixes issue #1067
Change-Id: Id0ebc89be826a026f1bbf21b4e32a2b1af45154d
previously any flags added while setting up the toolchain would
override the user selections; environment variables could be treated
similarly
Change-Id: Ibfcc644137d8e579af554d19a38d4020019a7a34
fixes link under vs9; this is the same change as:
dbf6e3f gen_msvs_vcxproj.sh: Avoid object name collisions.
Change-Id: I2a188c9024d0605e60e5e03ddcef1a25e7e53585
requires r10e or newer:
Android NDK, Revision 10e (May 2015)
...
Other bug fixes:
...
- Fixed .asm support for ABI x86_64.
Change-Id: I51ec9a5f77c982b7412d922e896348a83ae2d7d6
configure.sh was setting some Mac OS X options for iOS targets, which
confuses the iOS 9 beta SDK in Xcode 7 when linking libraries.
Additionally, old armv6 media extensions were being enabled on iOS
when they're not needed (we always have Neon since iOS 6). These
broke on iOS 9 SDK which no longer assembles those instructions.
Change-Id: I4e4d2722392ead3382ce96289c03ef1e489799d6
skips testdata verification; useful with slow media or if the data was
retrieved via a separate call to testdata
Change-Id: Ifd97892cee6c04b0111874cc8071675e90ec852b
add a dependency on *_rtcd.h to ensure they're generated before
attempting to build the test files
Change-Id: Ibbbd1f6ea77912bfd297129e7c83b9a80923ea12
this quiets warnings from armv6 code [1].
from msdn [2]:
-oldit
Generate ARMv7-style IT blocks. By default, ARMv8-compatible IT blocks
are generated.
a new configuration would be needed for armv8 in any case as the neon
assembly is being built, so removing this should be harmless
[1] A4509: This form of conditional instruction is deprecated
[2] https://msdn.microsoft.com/en-us/library/hh873189.aspx
Change-Id: I4c3b838b52a87401c6daecd83d22ab148ed7c5d9
Basically just a warning, but disconcerting nonetheless. Removes this
output from the build:
Makefile:59: -x86_64-darwin13-gcc.mk: No such file or directory
Change-Id: Ibb379506352b2f613ef4a7b1ac47e9c95d0d1580
These targets no longer build (PPC support was removed from
libvpx). Remove the dead code and misleading help output.
BUG=https://code.google.com/p/webm/issues/detail?id=997
Change-Id: Ib35614806adeae970f3821da0d8dbcc54ab8d868
nothing is using android/log.h currently; also quiets a warning when
building a static lib:
Android NDK: WARNING:libvpx/build/make/Android.mk:vpx: LOCAL_LDLIBS is
always ignored for static libraries
Change-Id: I1469a5d6fca4f7338a4a82e26a03e60fc91d92ca
for big endian disable msa
removed -flax-vector-conversion flag
disable runtime_cpu_detect feature if enabled
Change-Id: Icd5130b733f2ddcdb94ffb6e4d170e6ca0f9832b
there are no known issues since:
10d5e09 Fix issues in 32bit PIC enabled build
related issues: #808, #924
Change-Id: I80454f95fe6b4ce630fdd434d740ce8b0d42951b
Apple ships version 0.98 of nasm through at least XCode 6. It is
incompatible with the assembly in libvpx.
https://code.google.com/p/webm/issues/detail?id=772
Change-Id: I33245a76f50a8224fe6fafa3cce9991f953fdcc8
The previous patch "Fix issues in 32bit PIC enabled build" fixed
the x86inc.asm for macho32. Now we can enable use_x86inc while
building libvpx for 32bit pic enabled Darwin target, which makes
the encoder a lot faster(>2X) in this case by turning on the
existing optimizations.
Change-Id: I5f5c7add428d73f50c935c48d0a70aed2b1eb7af
gives a better summary of what is enabled / disabled outside of the
automatic toolchain options.
fixes issue #936
Change-Id: I1bf27593a5512713aab1473cb606c58cf3084d62
The current method doesn't work with Xcode 4 and up, since they no
longer have a $DEVELOPER_DIR/SDKs directory. Using xcrun and xcodebuild
works all the way back to Xcode 3 on OS X 10.6 Snow Leopard, if not
earlier.
Change-Id: I7126f2fb4a8f1d6e46f921e70bbd090f00ce3d36
Allows override of default target list. Also added missing usage info
for --extra-configure-args, and removed last vestiges of armv6 support.
Change-Id: Ic0f14fffa0cbaea1bed371d38ff65e035bbe3273
INLINE is used quite widely in vp9, this change improves performance
1-2% on most modern platforms.
Change-Id: I8a9974aab89fa588ea4923cc7eaf6199e344a528
Currently, the configure script checks for x32 by testing just the
__ILP32__ define. However, on "plain" i386, __ILP32__ can also be
defined, for example by clang 3.5.0 and higher. (That gcc does not
define it there, is another issue, but not for this tracker.)
Therefore, extend the check by also checking for __x86_64__, which will
also be defined for x32.
BUG=887
Change-Id: I90ac1d6843caff0416e1dd360c0be3dbaa85c2ae
Probably not even the dominant platform the library is being built for.
Add --cpu= option description to help. The option already exists.
Don't allow passing just --cpu as a no-op.
BUG=826
Change-Id: Iaa3f4f693ec78b18927b159b480daafeba0549c0
All the assembly code has been removed, the tests no longer check for
the target, and android and chrome do not use the targets.
Change-Id: I193993f7b2b0bd6478453402f573ce3606e04e8d
The obj_int_extract code is no longer worth maintaining. It creates
significant issues when adapting for different build systems and no
longer offers as significant of a performance benefit due to
improvements in intrinsics.
Source files will remain until the various third-party builds are updated.
The neon fast quantizer has been moved to intrinsics. The armv6 version
has been removed because so few remaining targets require it.
Compilers and processors have improved significantly since the
pack_tokens code was written. The assembly is no longer faster than the
C code.
pack_tokens were the only optimizations for the armv5te targets so the targets
will be removed after the test infrastructure has been updated.
BUG=710
Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
- iphonesimulator: IOS_VERSION_MIN was declared in the wrong place.
- armv6: linking via ld instead of CXX is basically required.
Change-Id: Iad187691f633dcf2bc3e3590e88084bb926edb76
Commit message longer than commit edition.
Simulator and devices:
Add a common minimum iOS version that can be shared by iOS and iOS
simulator targets.
Fix --enable-debug (for device targets; sim was fine):
Allow for successful configuration and build with --enable-debug when
CXX is available by:
- Using CXX as LD (when CXX is available).
- Passing the correct form of the iOS minimum version parameter based on
whether LD is CXX or really is ld.
Note: ld -g still won't work on macosx with this patch, so if CXX is not
available, configuration will still fail reporting that the toolchain
cannot link executables when attempting to pass --enable-debug (because
ld returns an error code since the one included with xcode doesn't
support the -g argument).
Change-Id: Ia488aed167cc2ca82ee9e980589fb76dddce634f
iOS 5 support isn't available in the Xcode 6 install; iOS 6 covers
phones starting at the 3GS, so should be a reasonable base line
Change-Id: I15572ec0dd73f1ffc88c58120c706384a01f2478
Place after pulling in forward declarations from the codec. This fixes
compilation of the tests under vs9.
Since
10783d4 Adds high bitdepth transform functions and tests
where vp9_idct.h was added to vp9_rtcd.h the tests are pulling in
vp9_systemdependent.h, which under visual studio include intrin.h. With
VS9 these include headers which define helper classes for intel
intrinsics. When including it in the tests (via vp9_rtcd.h) __cplusplus
is defined but vp9_rtcd.h would wrap declarations in 'extern "C" {'
causing a mismatch in linkage which resulted in compilation failure.
Change-Id: I475e50198b71320e8606bc95c9454876d8799ede
If optimizations use more than one cpu feature, allow
specifying them so that '--disable-X' still works
https://code.google.com/p/webm/issues/detail?id=854
Change-Id: I3108ea37b397371a2be84dd5f2380b304db23f18