summaryrefslogtreecommitdiff
path: root/vpx_ports
AgeCommit message (Collapse)Author
2016-11-15vpx_timer.h,x86.h: define NOMINMAX for windows.hJames Zern
avoids the definition of min/max macros in headers that may appear in c++ unit tests. the codebase uses VPXMIN/MAX for this purpose in any case Change-Id: I2b679b045d64fb34fd8780f704e3caf10a758d82
2016-09-15apply clang-formatclang-format
Change-Id: I501597b7c1e0f0c7ae2aea3ee8073f0a641b3487
2016-08-31Fix -Wundef warning for __SANITIZE_ADDRESS__Johann
BUG=webm:1069 Change-Id: Iad8811939a910a8f31cf5788220712a255ddf36a
2016-08-04Remove armv6 targetJohann
Change-Id: I1fa81cc9cabf362a185fc3a53f1e58de533a41e5
2016-08-04Merge "Pad 'Left' when building under ASan"Johann Koenig
2016-08-03Fix msvc compiler warningsYaowu Xu
MSVC 2013 complained about using 32 shift where 64 bit shift should be used. Change-Id: I7a2b165d1a92d3c0a91dd4511b27aba7709b5e55
2016-08-03Pad 'Left' when building under ASanJohann
The neon intrinsics are not able to load just the 4 values that are used. In vpx_dsp/arm/intrapred_neon.c:dc_4x4 it loads 8 values for both the 'above' and 'left' computations, but only uses the sum of the first 4 values. BUG=webm:1268 Change-Id: I937113d7e3a21e25bebde3593de0446bf6b0115a
2016-07-25vpx_ports: apply clang-formatclang-format
Change-Id: Ice343335a40238fd21490bce0ce2972bdcb87055
2016-06-28remove visual studio < 2010 workaroundsJames Zern
BUG=b/29583530 Change-Id: Iafd05637eb65f4da54a9c857e79204a77646858a
2016-06-24Port metric computation changes from nextgenv2Yaowu Xu
Change-Id: I4aceffcdf7af59ffeb51984f0345c3a4c7e76a9f
2016-06-22win: Include <intrin.h> instead of manually declaring intrinsics.Nico Weber
This helps clang-cl. BUG=chromium:592745 Change-Id: I49f9b6928c91b2b43567f4336520ba4f1010d3ad
2016-05-27vpx_ports/mem_ops.h: cast the lhs of bitwise shifts of 24.Tom Finegan
C does not allow for shifting into the sign bit of a signed integer, and the two instances here become signed ints via promotion. Explcitly cast them to unsigned MEM_VALUE_T to avoid the problem. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=614648 Change-Id: I51165361a8c6cbb5c378cf7e4e0f4b80b3ad9a6e
2016-05-26Convert to unsigned int before left shiftYaowu Xu
This is to fix overflow when 128 is left shifted by 24. Change-Id: Ibb5f6813536d985afa003a9848c0c3dd358955a7
2016-04-27x86.h,x86_simd_caps: add an explicit cast w/strtolJames Zern
+ use strtoul as mask is unsigned quiets a -Wshorten-64-to-32 warning Change-Id: Ia1c24679302100a252da7a45d3bb871f591f1888
2016-04-22Add the 64-bit CPU cycle count utility functionYi Luo
Change-Id: Ie87245bbdf5735bc9729199eeb07899d81dbf267
2016-03-30vpx_ports/mem_ops.h: clear some -Wconversion warningsJames Zern
not strictly necessary, but allows projects using '-Wconversion -Wno-sign-conversion' to reuse these headers. Change-Id: Id1398d726c90173ccba9aea66798fcef6f20fa23
2015-12-10Minor cleanupYunqing Wang
Removed unused GET_GOT_SAVE_ARG. Change-Id: I0ae41c2d0dcd6d7d1c8dda05062fcdb737fd917d
2015-11-13Use Interlocked calls in win32 once() implementation.Ralph Giles
This is simpler than the previous scheme, which tried to allocate the CRITICAL_SECTION struct in a thread-safe manner before it could use it to run the wrapped function in a thread-safe manner. Change-Id: I172e5544e5f16403a3a0e5e2b9104b1292a0d786
2015-09-22Restrict get_msb inputsJohann
Add a warning and assert that inputs for get_msb must not be zero. Change-Id: I8c6f289ff13248f6e3a8bc24aab3712ed33022a6
2015-08-10Move vp9_systemdependent.h to vpx_ports bitops.h and system_state.hAlex Converse
Use system_state.h in vpx_dsp and remove unneeded includes of vp9_systemdependent.h. Change-Id: I92557ec6dd5aa790160b4f31fe7967db0d7ec3c4
2015-08-08vpx_ports/msvc.h: include math.h for ceil/floorJames Zern
fixes visual studio build errors Change-Id: I5d24f91c74572a75dfa77b9384d6614de231dc50
2015-08-08vpx_ports/x86.h: fix visual studio build warningJames Zern
test for WINAPI_FAMILY_PARTITION before using it Change-Id: I6b7a7b1ccd3332b31c73b733f88c997e30b22de8
2015-08-07Move the msvc round() replacement to msvc.hAlex Converse
Change-Id: If470411c3c62a27f52261f4ece2c5054b71789c7
2015-08-05Support build with Visual Studio 14.Ghislain MARY
Change-Id: Id0d7c19857e29b66c652c8cc1ab56b64e4fc0fa3
2015-05-27Don't #define snprintf in VS 2015 or higher.Johann
In VS 2015 and higher snprintf is supplied and therefore vsnprintf doesn't need to be defined. This also avoids problems caused by _snprintf being different from snprintf. This fixes a build break with VS 2015 and improves security. Originally submitted via chromium by brucedawson@chromium.org https://codereview.chromium.org/1055603003 Additionally break this MSVC-specific tweak to a new file, which will become the home of all such MSVC-specific things. This requires adding a dependency on msvc.h to every example which uses args.c and tools_common.h Change-Id: I35b5f8e7ea00f6627403aabc9ea79b0412557a99
2015-05-14Merge "Remove the BUILD_LIBVPX variable from the build system."Tom Finegan
2015-05-14Remove the BUILD_LIBVPX variable from the build system.Tom Finegan
Replace it with it's value (yes), which is constant. Change-Id: Ifb0c0408a53ecadf81156da6a64fa583b2ada746
2015-05-13Relocate memory operations for common codeJohann
With the sad functions, and hopefully the variance functions soon, moving to the vpx_dsp location, place the defines used in the reference C code in a common location. Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
2015-05-07replace DECLARE_ALIGNED_ARRAY w/DECLARE_ALIGNEDJames Zern
this macro was used inconsistently and only differs in behavior from DECLARE_ALIGNED when an alignment attribute is unavailable. this macro is used with calls to assembly, while generic c-code doesn't rely on it, so in a c-only build without an alignment attribute the code will function as expected. Change-Id: Ie9d06d4028c0de17c63b3a27e6c1b0491cc4ea79
2015-04-24x86_simd_caps: check max cpuid before testing AVX2James Zern
structured extended feature flags require eax = 7; avoids incorrectly detecting avx2 on some older processors that support avx. from [1]: INPUT EAX = 0: Returns CPUID’s Highest Value for Basic Processor Information and the Vendor Identification String [1] http://www.intel.com/content/www/us/en/processors/processor-identification-cpuid-instruction-note.html Change-Id: I6b4735b5f7b7729a815e428fca767d1e5a10bcab
2015-04-15Reorganize *_rtcd() calling conventionsJohann
Change-Id: Ib1e17d8aae9b713b87f560ab5e49952ee2bfdcc2
2015-03-18Remove last remnants of obj_int_extractJohann
Change-Id: Icc7da6027763b5ed7cbfe70ffe271103ead59fe1
2015-01-23x86: correct OSXSAVE + AVX bit checkJames Zern
the result should have both bits set; previously this was converted from webp incorrectly and resulted in a boolean check... Change-Id: I2a7c7f2b491945f3a536ab4fca02247eccc892b8
2015-01-15fix AVX & AVX2 detectionJames Zern
fixes issue #790 which resulted in a SIGILL on OpenBSD code is mostly from libwebp, based on the following: https://software.intel.com/en-us/articles/how-to-detect-new-instruction-support-in-the-4th-generation-intel-core-processor-family Change-Id: Ida7c1a18261e98c05ed9c662068140be407ec107
2014-12-12x86_abi_support: set LIBVPX_RAND w/vp9-postprocJames Zern
set LIBVPX_RAND with --enable-vp9-postproc, previously only the vp8 config was checked. this fixes the build with --disable-postproc. Change-Id: Ia61baded6aa0e44d6443ae4a3c85915f1054f053
2014-11-06Remove asm offset dependenciesJohann
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
2014-09-25Clarify GCC version checkJohann
The version check was incorrectly matching some versions of clang which reported as gcc 4.2 Change-Id: I686d3576e71883fe1463206b56ab5e2aa9bb68a8
2014-09-14vp8/vp9: neon: msvc: move the 'ifdef _MSC_VER' bit to vpx_ports/mem.h.Jia Jia
fix compiling warning. Change-Id: If8706a9046436f704c597e4275a6810c76ba7daa
2014-09-09Restructure ARM assumptions in cpudetectJohann
Allow building for targets which have NEON but not EDSP or MEDIA. Set HAS_NEON flag for builds which have neon assembly but not intrinsics. Change-Id: Ibfa81a8444a8c55d1d3209c533d1d70d2f809669
2014-08-18Include vpx_config.h in vpx_timer.hJohann
vpx_timer.h uses several defines from the config file including CONFIG_OS_SUPPORT and INLINE Change-Id: I16cb45237787cbc1ae79a67e16b8042811dda336
2014-08-12inline vpx functions in headers to avoid unused function warningJim Bankoski
Change-Id: I80284ae82915b9df56f7c5ef4953bd53e8cffd1f
2014-08-12fixes several -Wunused-function warningsJim Bankoski
Change-Id: I4dc2cb255f4fe30998b6ee61184895dee9f5da8e
2014-07-29vpx_once: implement once() for OS/2KO Myung-Hun
Change-Id: I9f736f299490464bbdbb6cd24ee6f5b46ad45ec6
2014-06-12Use lrand48 on AndroidJohann
When building x86 assembly use lrand48 instead of the undocumented inlined _rand function. Android now supports rand() https://android-review.googlesource.com/97731 but only for new versions. Original workaround: https://gerrit.chromium.org/gerrit/15744 Change-Id: I130566837d5bfc9e54187ebe9807350d1a7dab2a
2014-05-04Don't try to use getenv on windows phone/rtMartin Storsjo
The getenv function doesn't exist there. In Visual Studio 2012, the function still existed in the link libraries even though it was hidden in the headers, but in the 2013 version it has been removed from the link libraries as well. Change-Id: Iea6289a698fa1788e906f5aabb6fddda3675815b
2014-02-26Reusing mem_get_le{16, 32} defined in vpx_ports/mem_opts.h.Dmitry Kovalev
Change-Id: If4b5209ac14aaba6f1c1014bc0497baa8eabfaff
2014-02-11Removing x86_cpuid.c.Dmitry Kovalev
The file has implementation of only one function vpx_x86_vendor() which is unused. Change-Id: Icf8d7ee67cc8372affb7b5a436328cecdfd5e291
2014-01-23vpx_ports: add extern "C" to headersJames Zern
Change-Id: Iba9b198ce78b3f8b644feba064f83abc247e75dd
2013-12-16vpx_ports: normalize include guardsJames Zern
Change-Id: I4e931aadecfe1761c720b080bdd67a1875794979
2013-12-09Add include guards to setupintrarecon.h and vpx_once.hEhsan Akhgari
Change-Id: Ife17fc6369ce32f36d5c7f8a2ef5a3b7724d81b9