On Sun, Mar 07, 2021 at 02:11:10PM +0100, Marc Espie wrote:
> Stumbled upon this while updating mlt.
> 
> It's a library that "implements the ebur R 128 loudness standard"
> (whatever that means)
> 
> Turns out both multimedia/mlt and audio/cantata bundle that code.
> 
> It's a very small library, just one file, but we should move to
> the upstream version.
> 
> Two reasons:
> - bundled version uses queue.h, but depends on its bundled version
> instead of detecting and using the system one.
> 
> - bundled version uses outdated code. In particular, newer code
> has a safe_multiply function that borrows directly from our memory
> allocator, and hence avoids integer overflows.
> 
> A full grep of the package logs show no other possible users.
> ffmpeg, as usual, plays the lone kid and has its own distinct 
> implementation of the ebur128 standard.
> 
> Here are patches to both mlt and cantata to use this, along with 
> the port itself as an attached tarball
> 
> (note: I will also need to check WANTLIB on consumers of cantata
> and mlt, but that shouldn't be too hard)
> 
> Index: audio/Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/Makefile,v
> retrieving revision 1.450
> diff -u -p -r1.450 Makefile
> --- audio/Makefile    20 Feb 2021 20:54:56 -0000      1.450
> +++ audio/Makefile    7 Mar 2021 13:10:06 -0000
> @@ -74,6 +74,7 @@
>       SUBDIR += libcue
>       SUBDIR += libdca
>       SUBDIR += libdiscid
> +     SUBDIR += libebur128
>       SUBDIR += libgpod
>       SUBDIR += libid3tag
>       SUBDIR += liblastfm
> Index: audio/cantata/Makefile
> ===================================================================
> RCS file: /cvs/ports/audio/cantata/Makefile,v
> retrieving revision 1.23
> diff -u -p -r1.23 Makefile
> --- audio/cantata/Makefile    3 Oct 2020 07:21:50 -0000       1.23
> +++ audio/cantata/Makefile    7 Mar 2021 13:10:06 -0000
> @@ -5,6 +5,7 @@ COMMENT =     Qt-based MPD client
>  V =          2.4.2
>  DISTNAME =   cantata-${V}
>  HOMEPAGE =   https://github.com/CDrummond/cantata
> +REVISION =   0
>  
>  MASTER_SITES =       
> https://github.com/CDrummond/cantata/releases/download/v${V}/
>  EXTRACT_SUFX =       .tar.bz2
> @@ -27,6 +28,7 @@ RUN_DEPENDS +=      x11/gtk+3,-guic
>  LIB_DEPENDS +=       audio/mpg123 \
>               audio/libcdio \
>               audio/libcdio-paranoia \
> +             audio/libebur128 \
>               audio/libcddb \
>               audio/libmusicbrainz5 \
>               audio/taglib \
> Index: multimedia/mlt/Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/mlt/Makefile,v
> retrieving revision 1.27
> diff -u -p -r1.27 Makefile
> --- multimedia/mlt/Makefile   24 Aug 2020 14:09:54 -0000      1.27
> +++ multimedia/mlt/Makefile   7 Mar 2021 13:10:06 -0000
> @@ -6,6 +6,7 @@ VERSION =             6.22.1
>  DISTNAME =           mlt-${VERSION}
>  PKGNAME-main =               ${DISTNAME}
>  PKGNAME-gpl2 =               mlt-gpl2-${VERSION}
> +REVISION =           0
>  
>  # XXX versions should be kept in sync together
>  SHARED_LIBS =                mlt             3.2
> @@ -24,6 +25,7 @@ WANTLIB-main += ${COMPILER_LIBCXX} SDL S
>  WANTLIB-main += avfilter avformat avutil c exif fftw3 fontconfig gdk-x11-2.0
>  WANTLIB-main += gdk_pixbuf-2.0 glib-2.0 gobject-2.0 jack m pango-1.0
>  WANTLIB-main += pangoft2-1.0 sox swresample swscale vorbisfile xml2
> +WANTLIB-main += ebur128
>  
>  WANTLIB += ${COMPILER_LIBCXX} Qt5Core Qt5Gui Qt5Svg Qt5Widgets
>  WANTLIB += Qt5Xml SDL2 exif m mlt samplerate
> @@ -43,6 +45,7 @@ RUN_DEPENDS-main =  audio/ladspa \
>                       x11/gtk+3,-guic
>  
>  LIB_DEPENDS-main =   audio/jack \
> +                     audio/libebur128 \
>                       audio/sox \
>                       devel/sdl-image \
>                       devel/sdl2 \


In case you guys wonder what EBU R128 is, I found a reasonable write-up
here:

https://auphonic.com/blog/2012/08/02/loudness-measurement-and-normalization-ebu-r128-calm-act/

Reply via email to