Граф коммитов

602 Коммитов

Автор SHA1 Сообщение Дата
Tom Finegan d1ff7543df Sync CMake build with the configure build.
Added: CONFIG_NCOBMC_ADAPT_WEIGHT CONFIG_BGSPRITE
Changed, 0 => 1: CONFIG_SMOOTH_HV

Change-Id: Ifc76266d1fd9175b053109699aaf6f02415a2519
2017-06-28 22:08:44 +00:00
James Zern cab708b775 configure,cmake: test for -Wstring-conversion
BUG=aomedia:621

Change-Id: I60b4fa9e5ebbef37bf1859a98d82c34821d2d02b
2017-06-24 00:48:17 +00:00
Tom Finegan 8c46966378 Fix CMake GUI generated builds.
Change configuration var type from BOOL to NUMBER to fix
CMake GUI interaction with AV1 configuration variables.

BUG=aomedia:604

Change-Id: I3a5c298ae960ef013e727473bdf7d6664da610a2
2017-06-21 11:12:56 -07:00
Tom Finegan 78516fca4e Build static libaom without internal deps in CMake.
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
2017-06-20 19:57:02 +00:00
Tom Finegan b962dbb276 Sync CMake build with the configure build.
Added: CONFIG_EXT_COMP_REFS
Changed, 0 => 1: CONFIG_ONE_SIDED_COMPOUND

BUG=aomedia:76

Change-Id: Ibe84d6fe18a58029345b0c06c4e9825f94221dd2
2017-06-20 19:24:57 +00:00
Tom Finegan 84f2d796c8 Add shared library support to the CMake build.
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
2017-06-20 19:24:53 +00:00
Tom Finegan 3613c51767 Sync CMake build with the configure build.
- Added: CONFIG_COLORSPACE_HEADERS CONFIG_SPEED_REFS
         CONFIG_LGT CONFIG_SBL_SYMBOL
- Removed: CONFIG_RECT_INTRA_PRED
- Changed, 0 => 1: CONFIG_EXT_INTER CONFIG_INTERINTRA
                   CONFIG_WEDGE CONFIG_COMPOUND_SEGMENT
           1 => 0: CONFIG_ONE_SIDED_COMPOUND

BUG=aomedia:76

Change-Id: If9ebd068d0014386ec25d91226a577c591f5a774
2017-06-16 06:56:48 +00:00
Tom Finegan ce0a9ea30b Improve nasm support in CMake build.
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
2017-06-07 14:48:06 +00:00
Urvang Joshi 766a389b58 Add a new experiment "rect-intra-pred".
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
2017-06-06 16:02:38 +00:00
Tom Finegan 6f9dfa5141 Sync CMake build defaults with the configure build.
- Added: CONFIG_ONE_SIDED_COMPOUND CONFIG_VAR_REFS
- Removed: CONFIG_SUB8X8_MC CONFIG_EC_MULTISYMBOL
           CONFIG_DAALA_EC CONFIG_LOWDELAY_COMPOUND
- Changed, 0 => 1: CONFIG_VAR_TX CONFIG_EC_SMALLMUL
                   CONFIG_CHROMA_SUB8X8
                   CONFIG_LOOPFILTERING_ACROSS_TILES
                   CONFIG_TEMPMV_SIGNALING

BUG=aomedia:76

Change-Id: Ia010abeaf079d8c6318a5a540e9354d5455ce826
2017-06-02 16:46:51 +00:00
Tom Finegan 7897567e4e Add dist rule to CMake build and correct behavior of the install rule.
- 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
2017-06-02 16:45:43 +00:00
Tom Finegan 6d1dd6232c Add nasm support to the CMake build.
BUG=aomedia:76,aomedia:507

Change-Id: I1d7d6932dbc23ad1b0b23f2df8230c17a2e76387
2017-06-02 16:45:15 +00:00
Tom Finegan 17ccaec4bb Add include guards to CMake files used as includes.
BUG=aomedia:76

Change-Id: Ie34025f31a89f4991d03d5ecf03c6f6f5ab7b0a1
2017-06-02 16:43:58 +00:00
Tom Finegan 0d066ce836 Add doc generation and installation to the CMake build.
BUG=aomedia:76,aomedia:559

Change-Id: I8f2f4633ca3fbc2d91bbf7e2ea8d23d52c9baa6e
2017-06-02 16:43:25 +00:00
Tom Finegan 8bb36b416b Fix dylib build on macos.
Update version.sh to produce an acceptable version string
for Apple Clang to use when building the dylib.

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=555

Change-Id: I5fb4d348cc56897125708cbd97df6246f65d9187
2017-05-25 16:33:30 +00:00
James Zern 738260331b cmake: add missing CONFIG_DPCM_INTRA
Change-Id: I0a244e3c2a8730febeede1f7f17c25978b3f4930
2017-05-23 18:17:54 +00:00
Tom Finegan a0ff456b30 Make CMake options for distcc and ccache more visible.
Move them from build/cmake/aom_configure.cmake to the
CMakeLists.txt at the root of the repository.

Change-Id: Ib39764abe0c3456414ba157ebc18fd7a052db0df
2017-05-23 08:27:47 -07:00
Tom Finegan ba02c24cfe Remove CONFIG_{DE,EN}CODERS from the CMake build.
Use CONFIG_AV1_{DE,EN}CODER to control decoder and
encoder support inclusion instead.

BUG=aomedia:76,aomedia:508

Change-Id: Ib150ae382b301885589f30d9b6e98d3bfdd1afce
2017-05-22 22:35:37 +00:00
Tom Finegan 98b873994c Support make builds using gcc via CMake in MSYS on Windows.
BUG=aomedia:76

Change-Id: I3dac547d09615c0f48fbfab687a4a2bf7d4bf3b4
2017-05-17 21:07:05 +00:00
Tom Finegan 3e10c487b0 Sync CMake build defaults with configure build.
- CONFIG_HIGHBITDEPTH 0 => 1.
- CONFIG_RECT_TX_EXT and CONFIG_INTRA_EDGE added.
- CONFIG_NEW_TOKENSET removed.

BUG=aomedia:76

Change-Id: I215205b1479a92ab4baa5a3705194d474ec13ba8
2017-05-16 19:44:16 +00:00
Ralph Giles 12a27c0150 Remove armv6 references from the build system.
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
2017-05-15 19:06:31 +00:00
Ralph Giles be111b3838 Remove armv6 media-extension assembly.
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
2017-05-15 15:55:47 +00:00
Tom Finegan 782cdc125f Add aom.pc (pkg-config file) generation to CMake.
BUG=aomedia:76,aomedia:471

Change-Id: I7919e00d88ea448465dfb4c51b61a65a37b06060
2017-05-15 03:11:15 +00:00
Tom Finegan b688eb7a27 Sync CMake build defaults with the configure build.
- CONFIG_EXT_TX 0 => 1
- Add CONFIG_SMOOTH_HV

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I44f42e6cda5433d6d2d0993778091308900debbb
2017-05-10 18:20:38 +00:00
Tom Finegan 4e351d3984 Remove build/cmake/rtcd_config.cmake. Generate it instead.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I3db6022d361ce5e8b3db3d49b5e71b4367c355a1
2017-05-10 18:20:29 +00:00
Tom Finegan fb0ad55f30 Add ccache and distcc support to the cmake build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Ia5622b531d17bb1c67fe4f4bc01e57dd3560021e
2017-05-10 17:45:54 +00:00
Tom Finegan d46b4d30cb Add Emscripten support to the CMake build.
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
2017-05-10 14:23:18 +00:00
Tom Finegan 1a19a5f273 Sync CMake defaults with configure build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Iecf11b2ca3636042ba70800dd8f6c62627760243
2017-05-08 16:20:58 +00:00
Sebastien Alaiwan e140c508de Merge ref-mv into codebase
Change-Id: I96e386678f6227f3ca735c9be2725cb9795b3296
2017-05-05 03:42:22 +00:00
hui su ed5a30f2c4 Remove subframe_prob_update experiment
The coding gain from this experiment can be mostly obtained
from ec-adapt.

BUG=aomedia:450

Change-Id: Ia7f9df9b2c13d8cdb962eeb39624f3e4e3f036ba
2017-05-04 05:09:24 +00:00
hui su 8f37b16294 Remove entropy experiment
It's an obsolete experiment.

Change-Id: I0461b174875b4db0bcf3da643f8b2e97ad2fab51
2017-05-03 01:31:39 +00:00
Alex Converse c860964ac6 cmake: Add -Wundef for C sources
It was added to configure in ce32f705a8

Change-Id: I67a4155861d5c012dc18702b3d4b9abe8e0e342b
2017-05-01 20:57:18 +00:00
James Zern 78f4d0c39d configure: enable -Wshorten-64-to-32 for hbd
Change-Id: I47bc4a1796ddce1a285942e19defcbefa2f6b275
2017-04-28 15:46:23 -07:00
James Zern 49b5511bc3 Revert "configure: enable -Wshorten-64-to-32 for hbd"
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
2017-04-28 21:53:11 +00:00
James Zern a8b97eb513 configure: enable -Wshorten-64-to-32 for hbd
Change-Id: I98e41e2cf58fa698ab2ec91536e82368bb04b3d7
2017-04-28 21:48:17 +00:00
Tom Finegan a1ee74f727 Sync CMake default config with configure build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Iea6dd56dbdf4d7055a2405b1d81e7e2893682888
2017-04-28 01:25:45 +00:00
Tom Finegan 2cf532998a Automatically generate aom_config.{asm,h}.cmake templates.
- 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
2017-04-28 01:25:36 +00:00
Tom Finegan c6e296e444 Remove duplication of RTCD configs in the cmake build.
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
2017-04-24 12:49:37 +00:00
James Zern 2cfc6d5307 build: add -Wshorten-64-to-32 for non-hbd builds
C sources only for now

BUG=aomedia:445

Change-Id: I79ff81c42778e2836028240df70edf973555018c
2017-04-21 21:56:58 -07:00
Sebastien Alaiwan c6a48a2534 Drop support for CONFIG_EMULATE_HARDWARE
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
2017-04-20 18:49:39 +00:00
Tom Finegan 8b370b6e65 Add mips64 support to the cmake build.
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
2017-04-13 17:06:03 -07:00
Tom Finegan d148c9637c Add mips32 support to the cmake build.
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
2017-04-13 13:24:33 -07:00
Sebastien Alaiwan 71e87847eb Homogenize configuration option name.
Rename '--enable-aom-highbitdepth' to '--enable-highbitdepth'

Change-Id: I1de13c3508c30c552532993419d8ace326142ab6
2017-04-12 22:29:11 +00:00
Tom Finegan 8bb2c4a2bf Update cmake build defaults to match legacy build system.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Iab6216378146b3e6349cbfc8598e518e5c1612af
2017-04-05 23:54:50 +00:00
Tom Finegan c3d34ff96d Add some missing preproc flags to non-msvc cmake targets.
- -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
- -D_FILE_OFFSET_BITS=64
- -D_LARGEFILE_SOURCE

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I9b1430d3aebf1455c6401f2df3d571fc5bb0d264
2017-04-05 18:17:28 +00:00
Tom Finegan e4a747d2ba Allow control of cross compile prefix in cmake arm linux builds.
Via the CROSS CMake variable. Supported in the armv7 and arm64
cmake toolchain files.

BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: I37587aeaf6e773c5f7b3f5fa67277ddc44c9195a
2017-04-05 18:12:50 +00:00
Urvang Joshi 5ddac0aac8 RTCD defs: Remove empty specialize statements once and for all.
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
2017-03-31 16:40:03 +00:00
Tom Finegan 48d1ed81ce Add basic arm64 linux support to the cmake build.
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
2017-03-29 21:30:01 +00:00
Tom Finegan f47266d965 Add basic armv7 linux support to the cmake build.
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
2017-03-29 20:10:44 +00:00
Tom Finegan 0c0ab99179 Add iOS simulator toolchains for cmake build.
BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76

Change-Id: Ia3f09540787b90688656ffe23ec455379102c7fc
2017-03-28 23:33:50 +00:00