Skip to content
A C++11 library to render ADM content according to Recommendation ITU-R BS.2127
C++ CMake Python
Branch: master
Clone or download
tomjnixon replace std::make_unique patch with boost::make_unique
On my system libear failed to build because no header defining
__cpp_lib_make_unique was included, so std::make_unique was defined
twice.

Looking further, it's not clear that these macros were actually required
in C++14; they seem to be a later feature, and anyway some versions of
MSVC define std::make_unique but don't define this macro, so bad things
could happen there.

The behaviour is undefined when adding things to the std namespace, so
we shouldn't do that anyway. Just boost until we decide to switch to
C++14.
Latest commit 1d0a985 Sep 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
config fix up yaml-cpp dep in Config.cmake Jul 31, 2019
docs automatically find boost when finding ear Jul 31, 2019
examples initial commit Jul 30, 2019
include/ear replace std::make_unique patch with boost::make_unique Sep 19, 2019
resources initial commit Jul 30, 2019
src replace std::make_unique patch with boost::make_unique Sep 19, 2019
submodules initial commit Jul 30, 2019
tests replace std::make_unique patch with boost::make_unique Sep 19, 2019
tools initial commit Jul 30, 2019
.clang-format
.gitignore initial commit Jul 30, 2019
.gitlab-ci.yml remove EAR_UNIT_TESTS from gitlab ci Jul 31, 2019
.gitmodules
.readthedocs.yml initial commit Jul 30, 2019
.travis.yml use BUILD_SHARED_LIBS=OFF for Coverage builds Jul 31, 2019
CHANGELOG.md initial commit Jul 30, 2019
CMakeLists.txt automatically select internal/external tests Jul 31, 2019
LICENSE initial commit Jul 30, 2019
README.md automatically find boost when finding ear Jul 31, 2019
codecov.yml initial commit Jul 30, 2019

README.md

libear — Recommendation ITU-R BS.2127 core library

libear is a C++11 library to render ADM content according to Recommendation ITU-R BS.2127. It is not a complete application, but provides components to calculate gains and apply them to audio, for embedding into applications which need to render ADM content.

Read the documentation to get started.

Installation

Dependencies

  • compiler with C++11 support
  • Boost header libraries (version 1.57 or later)
    • Boost.Optional
    • Boost.Variant
  • CMake build system (version 3.5 or later)
  • yaml-cpp (version 0.5.2 or later)

Installation

To manually install the library you have to recursively clone the git repository and then use the CMake build system to build and install it.

git clone --recursive https://github.com/ebu/libear.git
cd libear
mkdir build && cd build
cmake ..
make
make install

Use from CMake Projects

As the library uses CMake as a build system it is really easy to set up and use if your project does too. Assuming you have installed the library, the following code shows a complete CMake example to compile a program which uses the libear.

cmake_minimum_required(VERSION 3.5)
project(libear_example VERSION 1.0.0 LANGUAGES CXX)

find_package(ear REQUIRED)

add_executable(example example.cpp)
target_link_libraries(example PRIVATE ear)

Use as a Subproject

If you prefer not to install the library on your system you can also use the library as a CMake subproject. Just add the folder containing the repository to your project (for example, by using a git submodule) and you can use the ear target:

cmake_minimum_required(VERSION 3.5)
project(libear_example VERSION 1.0.0 LANGUAGES CXX)

add_subdirectory(submodules/libear)

add_executable(example example.cpp)
target_link_libraries(example PRIVATE ear)

Note that if libear is used as a CMake subproject the default values of the options

  • EAR_UNIT_TESTS
  • EAR_EXAMPLES
  • EAR_PACKAGE_AND_INSTALL

are automatically set to FALSE.

License

Copyright 2019 The libear Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You can’t perform that action at this time.