summaryrefslogtreecommitdiff
path: root/vpx_util
AgeCommit message (Collapse)Author
2022-04-14Update loongson_intrinsics.h from v1.0.5 to v1.2.1yuanhecai
Bug: webm:1755 Change-Id: Ib636d2aa521332b76b6aa1b0aa0a9005aafbf32b
2022-02-08vpx_util[loongarch]: Add loongson_intrinsics.h v1.0.5.Lu Wang
Bug: webm:1755 Change-Id: Id2fa999bdb8788bd4285114c748c547fa262a95e
2020-01-21vpx_timestamp,gcd: assert params are positiveJames Zern
this function is currently only used with range checked timestamp values, but this documents the function's expectations in case it's used elsewhere Change-Id: I9de314fc500a49f34f8a1df3598d64bc5070248e
2019-09-30namespace ARCH_* definesJames Zern
this prevents redefinition warnings if a toolchain sets one BUG=b/117240165 Change-Id: Ib5d8c303cd05b4dbcc8d42c71ecfcba8f6d7b90c
2019-06-18Fix timestamp overflow issuesYue Chen
- Save the initial user-specified timestamp and rebase all further timestamps by this value. This makes libvpx internal timestamps to always start from zero, regardless of the user's timestamps. - Calculate reduced timestamp conversion ratio and use it to convert user's timestamps to libvpx internal timestamps and back. The effect of this is that integer overflow due to multiplication doesn't happen for a much longer time. BUG=webm:701 Change-Id: Ic6f5eacd9a7c21b95707d31ee2da77dc8ac7dccf
2019-05-06Add mismatch_debug toolAngie Chiang
Change-Id: I045b4cf625d428109688303ced5433d824df2790
2019-04-30make vpx_debug_util.c inclusion conditionalJames Zern
on CONFIG_BITSTREAM_DEBUG. this avoids an object file containing no symbols which may cause warnings on some platforms. Change-Id: I02af97d6970de949466c29f50d272733d97ee8d2
2019-04-26Add bistream_debug toolAngie Chiang
Change-Id: I339899cff65c7ef563f9411f2d7af9a32a08a705
2019-02-19vpx_thread.h: remove unused sched_yield()James Zern
usage was removed with: c1b024b48 Modify map read/write to sync logic in row_mt case Change-Id: I515fe397083079a4f11702e67c322fd04bdcf410
2019-01-19Revert "Revert "Add Tile-SB-Row based Multi-threading in Decoder""Ritu Baldwa
This reverts commit 06983668cf41f66765528db044419f954e5a5d64. Fixes Visual Studio build errors introduced by earlier row mt commit BUG=webm:1587 Change-Id: I792df86e8254cd6b2a511955b691af619a569cd0
2018-10-16Fix compilation on OS/2KO Myung-Hun
_beginthread() is not declared on __STRICT_ANSI__ mode. ----- [CXX] test/quantize_test.cc.o In file included from ./vp8/common/threading.h:194:0, from ./vp8/encoder/onyx_int.h:24, from test/quantize_test.cc:24: ./vpx_util/vpx_thread.h: In function 'int pthread_create(TID*, const void*, void* (*)(void*), void*)': ./vpx_util/vpx_thread.h:259:20: error: '_beginthread' was not declared in this scope tid = (pthread_t)_beginthread(thread_start, NULL, 1024 * 1024, targ); ^~~~~~~~~~~~ ./vpx_util/vpx_thread.h:259:20: note: suggested alternative: 'thread' tid = (pthread_t)_beginthread(thread_start, NULL, 1024 * 1024, targ); ^~~~~~~~~~~~ thread ----- Change-Id: I774a071162b3876a7f3253ce7c5749f1b0b45818
2018-10-08Loopfilter Multi-Thread OptimizationSupradeep T R
Take the original loopfilter multi-thread optimization (dafe064289a917977439ab6f4f002b9946496084) along with the fixes for bugs 1558 and 1562. BUG=webm:1558 BUG=webm:1562 Change-Id: Ibbf6bd13f4ffff0e79184ccfd6b85a49e067a6d8
2018-09-22Revert "Revert "Revert "Loopfilter MultiThread Optimization"""James Zern
This reverts commit bf6299010e815e111d7326530c249e9d99611f34. segfaults, causes an assertion failure with corrupt input: get_uv_tx_size: Assertion `mi->sb_type < BLOCK_8X8 || ss_size_lookup[mi->sb_type][pd->subsampling_x][pd->subsampling_y] != BLOCK_INVALID BUG=webm:1562 Change-Id: I05a711cad3d8e7f1a8e64422b4356bdf4edb3d12
2018-09-15cosmetics: normalize include guardsJames Zern
use the recommended format [1] of: <PROJECT>_<PATH>_<FILE>_H_ [1] https://google.github.io/styleguide/cppguide.html#The__define_Guard "All header files should have #define guards to prevent multiple inclusion. The format of the symbol name should be <PROJECT>_<PATH>_<FILE>_H_." Change-Id: I2e8ab0b32fb23c30fa43cff5fec12d043c0d2037
2018-09-12Revert "Revert "Loopfilter MultiThread Optimization""Venkatarama NG. Avadhani
This reverts commit 753fd86e86ac727dccac88376260b8f54502f2a3. This also has the fix for the DoS reported in bug 1558. BUG=webm:1558 Change-Id: I65ea84e0c11d6bd40d8cb0587dfe934b3ac11dce
2018-08-30Revert "Loopfilter MultiThread Optimization"James Zern
This reverts commit dafe064289a917977439ab6f4f002b9946496084. Corrupted files may cause the decoder to hang as row progress in the loopfilter is used to progress each thread. BUG=webm:1558 Change-Id: I0674ce9af14d3fb7b2da8124e7b600616c8e734a
2018-08-20Loopfilter MultiThread OptimizationSupradeep T R
Adding LPF within the tileworker hook. This means that LPF will be done immediately after decode, without waiting for all threads to sync. Performance Improvement - Platform Resolution 2 Threads 4 Threads X86 720p 7.24% 22.04% 1080p 5.29% 17.02% ARM 720p 4.61% 8.75% 1080p 5.55% 12.03% x86 Improvement measured on Intel Core i7-6700 CPU @ 2.10GHz set in performance with turbo mode off ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz Change-Id: Ifa73c71b40db3fa7fa16f54f4e3aa06d1258caae
2018-06-06VP9 SVC: Write out svc src for all spatial layers.Jerome Jiang
Change-Id: Ie78676e4df75f3f870ee2de0c87a8167b7ec68e0
2018-01-12clang-format v5.0.0 vpx_util/vpx_atomic.hJohann
Allow*OnASingleLine appears to no longer apply to typedef structs. Change-Id: If10db1c30c74ee31dad1a0b1926964e850f15fd2
2017-09-06Remove support for stdatomic.h.Peter Boström
This header doesn't build on g++ v6 as it's a C and not C++ header (_Atomic is not a keyword in C++11). Since the C and C++ invocations cannot be guaranteed to point to the same underlying atomic_int implementation, remove support for them and use compiler intrinsics instead. BUG=webm:1461 Change-Id: Ie1cd6759c258042efc87f51f036b9aa53e4ea9d5
2017-08-31Add atomics to vp8 synchronization primitives.Peter Boström
Fixes issue on iPad Pro 10.5 (and probably other places) where threads are not properly synchronized. On x86 this data race was benign as load and store instructions are atomic, they were being atomic in practice as the program hasn't been observed to be miscompiled. Such guarantees are not made outside x86, and real problems manifested where libvpx reliably reproduced a broken bitstream for even just the initial keyframe. This was detected in WebRTC where this device started using multithreading (as its CPU count is higher than earlier devices, where the problem did not manifest as single-threading was used in practice). This issue was not detected under thread-sanitizer bots as mutexes were conditionally used under this platform to simulate the protected read and write semantics that were in practice provided on x86 platforms. This change also removes several mutexes, so encoder/decoder state is lighter-weight after this change and we do not need to initialize so many mutexes (this was done even on non-thread-sanitizer platforms where they were unused). Change-Id: If41fcb0d99944f7bbc8ec40877cdc34d672ae72a
2017-06-09Remove duplication on vp8/9_write_yuv_frame.Jerome Jiang
Change-Id: Ib3546032a27c715bf509c0e24d26a189bc829da8
2016-08-10Align thread entry point stackAleksey Vasenev
_beginthreadex does not align the stack on 16-byte boundary as expected by gcc. On x86 targets, the force_align_arg_pointer attribute may be applied to individual function definitions, generating an alternate prologue and epilogue that realigns the run-time stack if necessary. This supports mixing legacy codes that run with a 4-byte aligned stack with modern codes that keep a 16-byte stack for SSE compatibility. https://gcc.gnu.org/onlinedocs/gcc/x86-Function-Attributes.html Change-Id: Ie4e4ab32948c238fa87054d5664189972ca6708e Signed-off-by: Aleksey Vasenev <margtu-fivt@ya.ru>
2016-07-25vpx_util: apply clang-formatclang-format
Change-Id: Ie7eab608e2906b9a2b3533db95292ebc430ad377
2016-07-01vpx_thread: use CreateThread for windows phoneJames Zern
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 Change-Id: Iade8fff6367b45534986c77ebe61abeb45bce0f8
2016-07-01vpx_thread: use WaitForSingleObjectEx if availableJames Zern
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 Change-Id: Ie1a46a82722b8624437c8aba0aa4566a4b0b3f57 100644 blob d58f74e5523dbc985fc531cf5f0833f1e9157cf0 src/utils/thread.c 100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h Change-Id: If165c38b378c6e0c55e17a1b071efd3ec3e7dcdd
2016-07-01vpx_thread: use InitializeCriticalSectionEx if availableJames Zern
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 Change-Id: I32c5b4e5384d614c5a821ef511293ff014c67966 100644 blob f84207d89b3a6bb98bfe8f3fa55cad72dfd061ff src/utils/thread.c 100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h Change-Id: I9ce49b3a86857267e504cd8ceab503b7b441d614
2016-07-01vpx_thread: use native windows cond var if availableJames Zern
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. Change-Id: Ice19704777cb679b290dc107a751a0f36dd0c0a9 100644 blob 4fc372b7bc6980a9ed3618c8cce5b67ed7b0f412 src/utils/thread.c 100644 blob 840831185502d42a3246e4b7ff870121c8064791 src/utils/thread.h Change-Id: Iede7ae8a7184e4b17a4050b33956918fc84e15b5
2016-07-01vpx_thread.[hc]: update webp source referenceJames Zern
+ drop the blob hash, the updated reference will be updated in the commit message BUG=b/29583578 Change-Id: Ifabbe52a2f07ac29e1881f5c8a62d7f3eb3c2c04
2016-05-22vpx: Add OS/2-specific threading codesKO Myung-Hun
With correction of a type of a thread function for new threading codes. Change-Id: Ic6dc9f530698800d1cfe2da327848e8f8b62e31f
2015-10-14Check for bswap* builtins before usingJohann
Canonical builtin checks for clang are to use __has_builtin. Much less fragile than version checks. https://code.google.com/p/webm/issues/detail?id=1082 Change-Id: I8151fb75899acdf1a935c23aad9441da99a9abcd
2015-08-06endian_inl.h: fix mips32 android buildJames Zern
when configuring with mips32-android-gcc HAVE_MIPS32 would be set, but the ndk does not set -mips32r2 for APP_ABI=mips which results in BSwap32 failing to build; refine the check in endian_inl.h Change-Id: I22893fe61f29111eb902d961b500b2174596268d
2015-07-21Fill buffer speed upJim Bankoski
Eliminates the byte by byte read from bool decoder, by reading in a size_t and then shifting it into place. Change-Id: I0ed8c7b6f942847e79cc90105dc1d2b5b3deb0d6
2015-07-13Revert "Fill buffer speed up"Jim Bankoski
This reverts commit 9b4f9f45eee4d63cef3cd10f24923ed0bdd5ab7b. Change-Id: I23545ac8c7464127f7466fc6a58de517874fe0cf
2015-07-09Fill buffer speed upJim Bankoski
Eliminates the byte by byte read from bool decoder, by reading in a size_t and then shifting it into place. Change-Id: Id89241977103fc3b973e4ed172a5cbf246998e5d
2015-07-02Rename vpx_thread to vpx_utilJingning Han
Change the dir name to include more util tools. Change-Id: Id5b16062803ce5eed872fe2edb36d7e56b32eed8