Change the internal lib targets so that external apps
need link only libaom instead of all internal library
targets and libaom.
BUG=aomedia:76,aomedia:609
Change-Id: I38862fcd90cb585300b6b23e8558f78a1934750f
This is enabled via:
$ cmake path/to/aom -DBUILD_SHARED_LIBS=1
Currently supports only Linux and MacOS targets. Symbol visibility
is handled by exports.cmake and its helpers exports_sources.cmake
and generate_exports.cmake.
Some sweeping changes were required to properly support shared libs
and control symbol visibility:
- Object libraries are always linked privately into static
libraries.
- Static libraries are always linked privately into eachother
in the many cases where the CMake build merges multiple library
targets.
- aom_dsp.cmake now links all its targets into the aom_dsp static
library target, and privately links aom_dsp into the aom target.
- av1.cmake now links all its targets into the aom_av1 static library
target, and privately links in aom_dsp and aom_scale as well. It
then privately links aom_av1 into the aom target.
- The aom_mem, aom_ports, aom_scale, and aom_util targets are now
static libs that are privately linked into the aom target.
- In CMakeLists.txt libyuv and libwebm are now privately linked into
app targets.
- The ASM and intrinsic library functions in aom_optimization.cmake
now both require a dependent target argument. This facilitates the
changes noted above regarding new privately linked static library
targets for ASM and intrinsics sources.
BUG=aomedia:76,aomedia:556
Change-Id: I4892059880c5de0f479da2e9c21d8ba2fa7390c3
It only handles the realloc constraint (preserving low elements) by
serendipity, and we don't actually rely on that behavior anyway.
Meanwhile the calls may do extra copying that gets immediately clobbered
by the callers.
Cherry-pick from libvpx:
3063c3760 Remove vpx_realloc()
Change-Id: I8dfa89e4a81084b084889c27bd272fdf85184e8d
removes the need for an intermediate cast to int, which was missing in
the call added in:
73a3fd4 aom_mem: Refactor code
quiets a visual studio warning:
C4146: unary minus operator applied to unsigned type, result still
unsigned
Change-Id: I76c4003416759c6c76b78f74de7c0d2ba5071216
these aren't overly speed critical, best to leave it to the compiler. as
a side-effect this fixes Visual Studio compilation (should have been
INLINE)
Change-Id: Ic81fb5ac76bc19c61efb2f1a965c0f79e9e45ebd
aom_realloc was allocating 1 byte more than needed every time.
Fixed this, and took this opportunity to do a small refactoring.
Change-Id: I38fcb62b698894acbbab43466c1decd12f906789
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