Change configuration var type from BOOL to NUMBER to fix
CMake GUI interaction with AV1 configuration variables.
BUG=aomedia:604
Change-Id: I3a5c298ae960ef013e727473bdf7d6664da610a2
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
Fail at configure time when required features are not
present. Currently requires only necessary x86 object
formats and the presence of the -Ox opt mode arg.
BUG=aomedia:76
Change-Id: Idc372e8ed121a600e87c46c0d29d5322cfceaec8
Earlier, intra prediction for rectangular blocks was performed by
running two steps of prediction on square sub-blocks.
With this experiment, we do proper intra prediction for rectangular
blocks. This ensures that we make use of all available neighboring
pixels especially for directional modes. For this, all the intra
predictors were updated to work with rectangular transform block sizes.
Performance improvements are small but free of cost:
All Intra frames:
lowres: -0.126
midres: -0.154
Video Overall:
lowres: -0.043
midres: -0.100
[Could not get AWCY results due to a backlog.]
BUG=aomedia:551
Change-Id: I7936e91b171d5c246cb0a4ea470a981a013892e6
- Install only includes, libs, and aomdec/aomenc in the install rule.
- Install docs and examples in addition to the above in the dist rule.
BUG=aomedia:76,aomedia:375
Change-Id: If42832ebd21184e6f9bf95c3b43c6d4e05663bf2
Move them from build/cmake/aom_configure.cmake to the
CMakeLists.txt at the root of the repository.
Change-Id: Ib39764abe0c3456414ba157ebc18fd7a052db0df
Use CONFIG_AV1_{DE,EN}CODER to control decoder and
encoder support inclusion instead.
BUG=aomedia:76,aomedia:508
Change-Id: Ib150ae382b301885589f30d9b6e98d3bfdd1afce
We no longer support armv6 and the corresponding
optimized source files have been removed. This
commit removes support for the target and its
media instruction set extensions from the build
system as well.
Once armv6 jobs are removed from the integration
config we can start rejecting --enable/disable-media.
Also reject --enable-edsp.
Change-Id: I547dcc95adb3479d0232396952e72efe2a1343b9
Libvpx dropped armv6 support sometime after the aom fork.
We don't intend to support this platform, which is likely
too slow in any case. Remove the assembly and intrinsics
optimized routines, their tests, cpu feature detection,
and rtcd specialization for this instruction set extension.
Change-Id: If44ec28e5ddafc6af179c5d1982ac7e81fe54d5e
Supporting Emscripten requires modification of all uses of the
target_link_libraries() function to match the form
of the target_link_libraries() call in Emscripten.cmake.
The AOM_LIB_LINK_TYPE variable has been added to allow for
flexibility on the libaom side when using toolchains that
behave similarly to Emscripten.cmake wrt
target_link_libaries().
To use CMake for an Emscripten build, first install Emscripten, then:
$ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/Emscripten.cmake -DAOM_TARGET_CPU=generic
BUG=aomedia:76,aomedia:468
Change-Id: I22c7df7912ecfdbc2a52180086b205cc8dcfc0c6
This reverts commit a8b97eb513.
Reason for revert: There are still a few warnings related to this in
the base configuration. Reverting this to avoid breaking new patches.
Change-Id: Ifdff76683cdd4b7476fcc9fbf4ab1736c112770c
- Generate aom_config.{asm,h}.cmake from aom_config_defaults.cmake
using CMake script generate_aom_config_templates.cmake.
- Remove the copies from the repo, and update the build to use
the generated templates.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: If8fd23095f5e4ddb9a7866d5f7bf2bd3864a4354
Consolidate the CPU and RTCD related build configuration code
in cpu.cmake and rtcd_config.cmake instead of having files for
each target CPU.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I8aad401f9fca60ba735360ca4947cd1c41c4fa63
This experiment complexifies DSP function dispatch, without bringing
any real value (it's non-normative arbitrary behaviour).
Moreover, it only has an effect on obsolete transforms, the new ones
don't implement this mechanism.
Change-Id: Idaccdd0c14ed6b7008cd4f365c7f017ba8ccacf5
Requires use of new cmake toolchain file:
$ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/mips64-linux-gcc.cmake
MSA is supported via addition of -DENABLE_MSA=1. Support for i6400
and p6600 targets can be enabled by passing -DMIPS_CPU=i6400 and
-DMIPS_CPU=p6600 respectively.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I7b8949a07e9be63cd6177e4ff4dbc02180f12a60
Requires use of new cmake toolchain file:
$ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/mips32-linux-gcc.cmake
DSPR2 and MSA are supported via addition of -DENABLE_DSPR2=1 and
-DENABLE_MSA=1 respectively. Note that the latter requires the addition
of -DMIPS_CPU=p5600.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Idf7d7f2daecf18cc45b834166eaf34ee9f414d49
A similar cleanup happened before, but the empty statements have since
reappeared. I added a check in 'specialize' subroutine to die whenever
such an empty specialize call is found, so that config+make would fail.
Change-Id: I300ca0f0b077c0aeca8096d6460d8fb1c364d9b9
Requires new cmake toolchain file arm64-linux-gcc.cmake:
$ cmake path/to/aom
-DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/arm64-linux-gcc.cmake
Above requires aarch64-linux-gnu-gcc toolchain is installed and its
bin dir added to PATH.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: I6c7e297a67415008583b7ac2cd8aea528787e6d0
Requires new cmake toolchain file armv7-linux-gcc.cmake:
$ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/armv7-linux-gcc.cmake
Above requires arm-linux-gnueabihf-gcc toolchain is installed and its
bin dir added to PATH.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
Change-Id: Id2d0022fd5b4615fef7ea0ef38980cbdfd957c0e