Skip to content

jiixyj/libebur128

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c656b5e · Apr 25, 2023
Feb 8, 2021
Oct 20, 2015
Aug 18, 2015
Apr 25, 2023
Feb 2, 2021
Feb 25, 2018
Feb 18, 2020
Feb 1, 2021
Mar 14, 2011
Feb 14, 2021

Repository files navigation

libebur128

libebur128 is a library that implements the EBU R 128 standard for loudness normalisation.

All source code is licensed under the MIT license. See COPYING file for details.

See also loudness-scanner tool.

News

v1.2.6 released:

  • Fix dynamic linking on Windows.

v1.2.5 released:

  • Remove BUILD_STATIC_LIBS build option. Instead the CMake-supported BUILD_SHARED_LIBS option is now honored as expected.
  • Various code cleanups, warning fixes and documentation improvements
  • Fix issue related to filter state indexing with high channel enums (#77)
  • Introduce limits for number of channels and maximum supported samplerate to avoid integer overflows
  • Fix error return code of ebur128_set_channel. The actual behavior is now aligned to the documentation (#90).

v1.2.4 released:

  • Fix broken ebur128_loudness_global_multiple() function. Since v1.1.0 it calculated the relative threshold just from the last state given to it, resulting in wrong values.
  • More tests
  • Fix some minor build issues
  • Fix uninitialized memory in ebur128_init(), possibly resulting in wrong values

v1.2.3 released:

  • Fix uninitialized memory access during true peak scanning (bug #72)

v1.2.2 released (v1.2.1 was mistagged):

  • Fix a null pointer dereference when doing true peak scanning of 192kHz data

v1.2.0 released:

  • New functions for real time loudness/peak monitoring:
    • ebur128_loudness_window()
    • ebur128_set_max_window()
    • ebur128_set_max_history()
    • ebur128_prev_sample_peak()
    • ebur128_prev_true_peak()
  • New FIR resampler for true peak calculation, removing Speex dependency
  • Add true peak conformance tests
  • Bug fixes

v1.1.0 released:

  • Add ebur128_relative_threshold()
  • Add channel definitions from ITU R-REC-BS 1770-4 to channel enum
  • Fix some minor build issues

v1.0.3 released:

  • Fix build with recent speexdsp
  • Correct license file name
  • CMake option to disable static library
  • minimal-example.c: do not hard code program name in usage

Features

  • Portable ANSI C code
  • Implements M, S and I modes
  • Implements loudness range measurement (EBU - TECH 3342)
  • True peak scanning
  • Supports all samplerates by recalculation of the filter coefficients

Installation

In the root folder, type:

mkdir build
cd build
cmake ..
make

If you want the git version, run simply:

git clone git://github.com/jiixyj/libebur128.git

Usage

Library usage should be pretty straightforward. All exported symbols are documented in the ebur128.h header file. For a usage example, see minimal-example.c in the tests folder.

On some operating systems, static libraries should be compiled as position independent code. You can enable that by turning on WITH_STATIC_PIC.