Giter Club home page Giter Club logo

loudness-scanner's Introduction

loudness-scanner

loudness-scanner is a tool that scans your music files according to the EBU R128 standard for loudness normalisation. It optionally adds ReplayGain compatible tags to the files.

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

Features

  • Supports all libebur128 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
  • ReplayGain compatible tagging support for MP3, OGG, Musepack, FLAC and more

Requirements

  • Glib
  • taglib

input plugins (all optional):

  • libsndfile
  • ffmpeg

optional GUI frontends:

  • GTK2

or

  • Qt

Installation

In the root folder, type:

mkdir build
cd build
cmake ..
make

If you want the git version, run:

git clone https://github.com/jiixyj/loudness-scanner.git
cd loudness-scanner
git submodule init
git submodule update

Usage

Run "loudness scan" with the files you want to scan as arguments. The scanner will automatically choose the best input plugin for each file. You can force an input plugin with the command line option "--force-plugin=PLUGIN", where PLUGIN is one of sndfile or ffmpeg.

The scanner also support ReplayGain tagging. Run it like this:

loudness tag <files>     # scan files as album

or:

loudness tag -t <files>  # scan files as single tracks

Use the option "-r" to search recursively for music files and tag them as one album per subfolder.

Some more advanced tagging options are supported as well:

  • incremental tagging
  • forcing files to be treated as a single album (even though the files might be scattered over multiple folders)
  • REPLAYGAIN_* tags for Opus files (may be useful for older player software)
  • fine control over what values are written into the Opus header gain field

The reference volume for tagging is -18 LUFS (5 dB louder than the EBU R 128 reference level of -23 LUFS). See here for more details and sources.

Use the option "-p" to print information about peak values. Use "-p sample" for sample peaks, "-p true" for true peaks, "-p dbtp" for true peaks in dBTP and "-p all" to print all values.

The scanner supports loudness range measurement with the command line option "-l".

In "dump" mode, use the options "-s", "-m" or "-i" to print short-term (last 3s), momentary (last 0.4s) or integrated loudness information to stdout. For example:

loudness dump -m 0.1 foo.wav

to print the momentary loudness of foo.wav to stdout every 0.1s.

loudness-scanner's People

Contributors

andrewrk avatar audionuma avatar dsedivec avatar jiixyj avatar nu774 avatar zuzzurro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

loudness-scanner's Issues

rfc7845 tags names

According to rfc7845, the Opus tags SHOULD NOT be called REPLAYGAIN_* but R128_*.

Would it be possible to make the change?

Update the API to FFmpeg 4.0

I would like to use your loudness-scanner in combination with media-autobuild_suite.
I proposed to include it in the suite - the author of the suite said, that the scanner is not fully compatible with FFmpeg 4.0. See here.
Could please do that? That would be great!

Warning: no plugins found!

Hi Everyone

I've been able to build the application.

But when I run a scan against wav, ogg, or mp3 files, I'm getting the error: Warning: no plugins found!

No results are displayed.

I ran a ldd on the loudness command. There was no link to any of the ffmpeg libav libraries.

CMake did indicate that ffmpeg was found.

Would the missing library links to the libav libraries be the reason for this error?

Compiling on Mac OS X

Should it be possible to compile under Mac OS X?

Running 10.11.6

Installed with brew:
gcc-6.2.0
apple-gcc42-4.2.1-5666.3
cmake-3.5.2
ffmpeg-3.1.4
glib-2.50.0
taglib-1.11
libsndfile-1.0.26
gstreamer-1.8.3

Error when trying to run cmake .. from build dir:

CMake Error at /usr/local/Cellar/cmake/3.5.2/share/cmake/Modules/CMakeDetermineCCompiler.cmake:57 (message):
  Could not find compiler set in environment variable CC:

  /usr/bin/gcc-4.2.
Call Stack (most recent call first):
  CMakeLists.txt:3 (project)


CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/Users/jbil/dev/loudness/loudness-scanner/build/CMakeFiles/CMakeOutput.log".

Use system libebur128

For system packaging, there should be a cmake option for using system-installed libebur128 via pkg-config.

Amazingly, just passing

-DEBUR128_INCLUDE_DIR:STRING="${LOCALBASE}/include"

and doing

	${MKDIR} ${WRKSRC}/ebur128/ebur128
	${TOUCH} ${WRKSRC}/ebur128/ebur128/CMakeLists.txt

makes it work, it does link to libebur128 even though that wasn't a target in cmake :D

but, it should be supported properly.

option to prevent changes to files times

Hi. I would like to use this tool, but I'm looking for a way to preserve file times after the tags have been written, à la 'metaflac --preserve-modtime'. I don't there's such an option currently.

avcodec_alloc_frame is deprecated

./loudness: symbol lookup error: ./libinput_ffmpeg.so: undefined symbol: avcodec_alloc_frame

On Fedora 24 I can compile but then I get errors running it

ffmpeg-5.0 deprecates some types causing compilation failure

git/loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:30:9: error: unknown type name ‘AVCodecContext’
   30 |         AVCodecContext *codec_context;
      |         ^~~~~~~~~~~~~~
git/loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c: In function ‘ffmpeg_get_channels’:
git/loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:45:43: error: request for member ‘channels’ in something not a structure or union
   45 |         return (unsigned)ih->codec_context->channels;

Just a heads up, I will check and see what the fix may be. And this is not the whole error log, just a few lines.

This is on Fedora 36 beta that has ffmpeg 5.0

"make install" only install libebur128

On my gentoo amd64 system, the build succed, but "make install only install libebur128:

I made a live ebuild in order to incorporate it with portage. The installation phase is:

>>> Install loudness-9999 into /var/tmp/portage/media-sound/loudness-9999/image/ category media-sound
>>> Working in BUILD_DIR: "/var/tmp/portage/media-sound/loudness-9999/work/loudness-9999_build"
make -j3 install 
[  5%] Built target ebur128_static
[ 10%] Built target ebur128
[ 16%] Built target filetree
[ 21%] Built target input_mpg123
[ 27%] Built target input
[ 35%] Built target input_sndfile
[ 40%] Built target input_musepack
[ 45%] Built target input_gstreamer
[ 54%] Built target input_ffmpeg
[ 64%] Built target scanner-common
[ 72%] Built target scanner-lib
[ 81%] Built target scanner-tag
[ 86%] Built target loudness
[ 91%] Built target loudness-drop-gtk
[100%] Built target loudness-drop-qt
Install the project...
-- Install configuration: "Gentoo"
-- Installing: /var/tmp/portage/media-sound/loudness-9999/image/usr/include/ebur128.h
-- Installing: /var/tmp/portage/media-sound/loudness-9999/image/usr/lib/libebur128.so.1.0.1
-- Installing: /var/tmp/portage/media-sound/loudness-9999/image/usr/lib/libebur128.so.1
-- Installing: /var/tmp/portage/media-sound/loudness-9999/image/usr/lib/libebur128.so
-- Installing: /var/tmp/portage/media-sound/loudness-9999/image/usr/lib/libebur128.a
>>> Completed installing loudness-9999 into /var/tmp/portage/media-sound/loudness-9999/image/

 * Final size of build directory: 3928 KiB
 * Final size of installed tree: 76 KiB


 * QA Notice: Package triggers severe warnings which indicate that it
 *            may exhibit random runtime failures.
 * /var/tmp/portage/media-sound/loudness-9999/work/loudness-9999/scanner/scanner-common/scanner-common.c:350:36: warning: implicit declaration of function ‘nproc’ [-Wimplicit-function-declaration]

 * Please do not file a Gentoo bug and instead report the above QA
 * issues directly to the upstream developers of this software.
 * Homepage: https://github.com/jiixyj/loudness-scanner
strip: x86_64-pc-linux-gnu-strip --strip-unneeded -R .comment -R .GCC.command.line -R .note.gnu.gold-version
   usr/lib/libebur128.so.1.0.1
   usr/lib/libebur128.a
ecompressdir: bzip2 -9 /usr/share/doc

>>> Installing (1 of 1) media-sound/loudness-9999::test
 * checking 7 files for package collisions
>>> Merging media-sound/loudness-9999 to /
--- /usr/
--- /usr/include/
>>> /usr/include/ebur128.h
--- /usr/lib/
>>> /usr/lib/libebur128.a
>>> /usr/lib/libebur128.so.1.0.1
--- /usr/share/
--- /usr/share/doc/
--- /usr/share/doc/loudness-9999/
>>> /usr/share/doc/loudness-9999/TODO.bz2
>>> /usr/share/doc/loudness-9999/README.md.bz2
>>> /usr/lib/libebur128.so.1 -> libebur128.so.1.0.1
>>> /usr/lib/libebur128.so -> libebur128.so.1

We can see that the plugins and the software is build, but they are not installed.
Also, the QA notice may be of interest.

Best,
Dominique

Different standards

@jiixyj do you know at a implementation level what if any differences there are between ITU BS.1770-3 and ebu tech 3342?

New release ?

Are you going to cut a new release after libebur128 version 1.2?
I am looking for a command line tool for linux and I was hoping this would be it.

No plugins found! - again

Hi all,

as far as I can see, the compiling process works without errors (DebianBuster).
However when I do "make install", only some librarys are copied to the target location:

Install the project...
-- Install configuration: ""
-- Up-to-date: /usr/local/include/ebur128.h
-- Installing: /usr/local/lib/libebur128.so.1.2.4
-- Up-to-date: /usr/local/lib/libebur128.so.1
-- Up-to-date: /usr/local/lib/libebur128.so
-- Up-to-date: /usr/local/lib/libebur128.a
-- Up-to-date: /usr/local/lib/pkgconfig/libebur128.pc

I then manually copied the loudness executable to /usr/local/bin: "No plugins found!"
ldconfig

I figured out that I have to copy all the libs to /usr/local/bin and then call loudness with the full installation path. Then it works, as expected.

This might be a workaround for me, although it's not that nice.

Does anyone have a hint for me how to fix this behavior?

Regards
Claus

set_max_window

Hi
How can we set max window for TPL and Loudness Range in this source-code ?
Is it available by terminal (api) ?
Any help will be appreciated.

libinput_gstreamer.so: undefined symbol: gst_init

Hi,

I've been trying to build loudness-scanner on Ubuntu 12.04 LTS for a few hours now and I am having some issues:

(1) In scanner/scanner-tag/rgtag.cpp, I had to add #include

(2) make install only copies libebur128.so* to /usr/loca/lib and not libinput*.so. I had to copy these manually. I also had to copy loudness and loudness-drop-gtk to /usr/local/bin too.

(3) When trying to run loudness, I get the following error:

loudness: symbol lookup error: /usr/local/lib/libinput_gstreamer.so: undefined symbol: gst_init

I have checked a few online resources and this happens when trying to compile a file using this:

g++ a_file.c pkg-config --cflags --libs gstreamer-0.10 -o a_file

instead of:

g++ pkg-config --cflags --libs gstreamer-0.10 a_file.c -o a_file

(i.e. a_file.c needs to be the first argument)

At this point, I have no idea what to do as I don't know much about cmake.

Any idea of what I should do now?

Thanks.

Error installing

Hi,
Trying to install on Linux Mint 18.1, by sending "cmake .." :

CMake Error at CMakeLists.txt:26 (add_subdirectory):
add_subdirectory given source "ebur128/ebur128" which is not an existing
directory.

Thanks for any help.

Silent tracks result in very high gain.

Some of my CD rips have silent tracks, which loudness-scanner tags with a gain of 51.00 dB. This isn't really a problem when applying the gain in software, since zero times any amount is still zero. However, when trying to use the gain value to adjust the amplifier volume directly, it doesn't work quite so well (turning the amp way up just to turn it all they way back down just a few seconds later).

It'd be nice if loudness scanner wrote a gain of 0 dB whenever all of the samples in a track are below a certain threshold. (Most of these tracks are pure silence, but one has a peak of 0.000061.)

(Feature Request) delete tags

There does not seem to be a way to delete the ReplayGain tags from the file and restore the file to the original (undo the ReplayGain algorithm). A flag to remove the ReplayGain tags and undo the process would be a nice addition.

Replay Gain too low on some MP3 files

I have some purchased MP3 files that have a rather low volume (and maybe bad mastering). After applying "loudness" I expected to get a positive Replay Gain so that the songs are played louder. This is what I get instead:

$ loudness tag -r CJSS\ -\ World\ Gone\ Mad/
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 6286930. ] 33%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 7416658. ] 37%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 11440177. ] 58%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 12737160. ] 70%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 8137508. ] 74%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 8644374. ] 82%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 9060731.######## ] 94%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Note: Illegal Audio-MPEG-Header 0x41504554 at offset 11186843.########## ] 99%
Note: Trying to resync...
Note: Hit end of (available) data during resync.
Album gain, Track gain, Album peak, Track peak
-1.27 dB, -1.20 dB, 0.409112, 0.331055, 01 - Hell on Earth.mp3
-1.27 dB, -1.35 dB, 0.409112, 0.331267, 02 - No Mans Land.mp3
-1.27 dB, -1.91 dB, 0.409112, 0.395353, 03 - World Gone Mad.mp3
-1.27 dB, -0.29 dB, 0.409112, 0.324823, 04 - Run to Another Day.mp3
-1.27 dB, -0.74 dB, 0.409112, 0.330135, 05 - Gates of Eternity.mp3
-1.27 dB, -1.70 dB, 0.409112, 0.409112, 06 - Destiny.mp3
-1.27 dB, -0.80 dB, 0.409112, 0.395170, 07 - Welcome to Damnation.mp3
-1.27 dB, -1.84 dB, 0.409112, 0.396446, 08 - Living in Exile.mp3
Tagging........ Success!

System info: Debian 8, 64 Bit, everything in "loudness" enabled.

What's wrong here? Are the messages about " Illegal Audio-MPEG-Header 0x41504554" related to the problem or not? Thanks for your help.

Best regards,
hjb

Support Opus files with .ogg extension

Looks like sndfile opens Ogg files and bails when it finds Opus instead of Vorbis inside.

found plugin input_sndfile
found plugin input_mpg123
found plugin input_musepack
found plugin input_ffmpeg
Error opening file 'track.ogg'

After removing input_sndfile.so from the plugin search path:

found plugin input_mpg123
found plugin input_musepack
found plugin input_ffmpeg
  Loudness
-13.3 LUFS, track.ogg

So it might make sense to try multiple plugins.

But then, looks like the tag writing also determines the codec by file extension :(

Many places (e.g. Android) only support the .ogg extension, so that should be supported. File extensions are not supposed to mean anything in unix anyway.


As a workaround, I have this script:

#!/usr/bin/env ruby
opusfiles = $*.map { |f| File.join(File.dirname(f), File.basename(f, '.*') + '.opus') }
opusfiles.each { |op| File.delete(op) if File.exist?(op) }
$*.zip(opusfiles).each { |og, op| puts [og, op].inspect; File.symlink(og, op) }
system 'loudness', 'tag', '-L', '--opus-vorbisgain-compat', *opusfiles
opusfiles.each { |op| File.delete(op) }

Tagging behavior of Opus files changed – R128_TRACK_GAIN and R128_ALBUM_GAIN not set anymore

Hi all :-)

I'm not quite sure what caused this, but the result of tagging Opus files has changed.

Some time ago, I tagged a lot of Opus files. For each file, a R128_TRACK_GAIN and R128_ALBUM_GAIN was added. Viewing such a file with opusinfo would e.g. yield:

New logical stream (#1, serial: 3e5b8b24): type opus
Encoded with libopus 1.3.1, libopusenc 0.2.1
User comments section follows...
        ...
        R128_TRACK_GAIN=-3354
        R128_ALBUM_GAIN=-3405
        ...
Opus stream 1:
        ...
        Playback gain: 0 dB
        ...
Logical stream 1 ended

When I do the same now with the same file (freshly ripped and encoded), the result is different:

New logical stream (#1, serial: 79e7f7dd): type opus
Encoded with libopus 1.3.1, libopusenc 0.2.1
User comments section follows...
        ...
        R128_ALBUM_GAIN=0
        R128_TRACK_GAIN=0
        ...
Opus stream 1:
        ...
        Playback gain: -13.0781 dB
        ...
Logical stream 1 ended

Both R128_ALBUM_GAIN and R128_TRACK_GAIN are set to 0, but instead, the Playback gain stream header is set.

This causes troubles … e.g. when playing such a file with Elisa, the volume changes. The R128_*_GAIN headers are currently ignored, but the Playback gain value seems to be handled by the backend. With no means of handling this.

scanner/scanner-tag/rgtag.cpp:314 does set the header value via static_cast<TagLib::Ogg::Opus::File *>(p.first)->setPacket(0, header);.

"Is this a bug or a feature?!" – I think one should be able to choose if a Playback gain is added, or a R128_*_GAIN tag … thanks in advance for clarifiying why this happens and/or was changed, and why one can't choose the way how the tags are added!

Cheers, Tobias

git:// urls don't work anymore...

[submodule "scanner/filetree"]
	path = scanner/filetree
	url = git://github.com/jiixyj/filewalk.git
[submodule "ebur128"]
	path = ebur128
	url = git://github.com/jiixyj/libebur128.git

loudness-scanner fails to compile in fedora-28 beta

2184> make -k
[  5%] Built target ebur128
[ 11%] Built target ebur128_static
[ 22%] Built target scanner-common
[ 30%] Built target scanner-tag
[ 38%] Built target scanner-lib
[ 44%] Built target filetree
[ 50%] Built target input
[ 55%] Built target loudness
[ 63%] Built target input_sndfile
[ 69%] Built target input_mpg123
[ 72%] Building C object scanner/inputaudio/ffmpeg/CMakeFiles/input_ffmpeg.dir/input_ffmpeg.c.o
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:16:31: error: ‘FF_INPUT_BUFFER_PADDING_SIZE’ undeclared here (not in a function); did you mean ‘AV_INPUT_BUFFER_PADDING_SIZE’?
 #define BUFFER_SIZE (192000 + FF_INPUT_BUFFER_PADDING_SIZE)
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:31:16: note: in expansion of macro ‘BUFFER_SIZE’
   float buffer[BUFFER_SIZE / 2 + 1];
                ^~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c: In function ‘ffmpeg_open_file’:
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:62:3: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
   g_static_mutex_lock(&ffmpeg_mutex);
   ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:67:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&ffmpeg_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:72:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&ffmpeg_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:80:5: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
     if (ih->format_context->streams[j]->codec->codec_type
     ^~
In file included from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:3:
/usr/include/ffmpeg/libavformat/avformat.h:877:21: note: declared here
     AVCodecContext *codec;
                     ^~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:88:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&ffmpeg_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:92:3: warning: ‘codec’ is deprecated [-Wdeprecated-declarations]
   ih->codec_context = ih->format_context->streams[ih->audio_stream]->codec;
   ^~
In file included from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:3:
/usr/include/ffmpeg/libavformat/avformat.h:877:21: note: declared here
     AVCodecContext *codec;
                     ^~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:99:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&ffmpeg_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:113:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&ffmpeg_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:124:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&ffmpeg_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:132:3: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
   g_static_mutex_unlock(&ffmpeg_mutex);
   ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:141:3: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
   g_static_mutex_lock(&ffmpeg_mutex);
   ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:143:3: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
   g_static_mutex_unlock(&ffmpeg_mutex);
   ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c: In function ‘decode_packet’:
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:203:3: warning: ‘avcodec_decode_audio4’ is deprecated [-Wdeprecated-declarations]
   ret = avcodec_decode_audio4(ih->codec_context, ih->frame,
   ^~~
In file included from /usr/include/ffmpeg/libavformat/avformat.h:319,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:3:
/usr/include/ffmpeg/libavcodec/avcodec.h:4658:5: note: declared here
 int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame,
     ^~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c: In function ‘ffmpeg_read_one_packet’:
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:236:7: warning: ‘av_free_packet’ is deprecated [-Wdeprecated-declarations]
       av_free_packet(&ih->packet);
       ^~~~~~~~~~~~~~
In file included from /usr/include/ffmpeg/libavformat/avformat.h:319,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:3:
/usr/include/ffmpeg/libavcodec/avcodec.h:4379:6: note: declared here
 void av_free_packet(AVPacket *pkt);
      ^~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:255:5: warning: ‘av_free_packet’ is deprecated [-Wdeprecated-declarations]
     av_free_packet(&ih->orig_packet);
     ^~~~~~~~~~~~~~
In file included from /usr/include/ffmpeg/libavformat/avformat.h:319,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:3:
/usr/include/ffmpeg/libavcodec/avcodec.h:4379:6: note: declared here
 void av_free_packet(AVPacket *pkt);
      ^~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c: In function ‘ffmpeg_close_file’:
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:362:3: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
   g_static_mutex_lock(&ffmpeg_mutex);
   ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:365:3: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
   g_static_mutex_unlock(&ffmpeg_mutex);
   ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gmodule.h:28,
                 from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:11:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c: In function ‘ffmpeg_init_library’:
loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:370:3: warning: ‘av_register_all’ is deprecated [-Wdeprecated-declarations]
   av_register_all();
   ^~~~~~~~~~~~~~~
In file included from loudness-scanner/scanner/inputaudio/ffmpeg/input_ffmpeg.c:3:
/usr/include/ffmpeg/libavformat/avformat.h:2025:6: note: declared here
 void av_register_all(void);
      ^~~~~~~~~~~~~~~
make[2]: *** [scanner/inputaudio/ffmpeg/CMakeFiles/input_ffmpeg.dir/build.make:63: scanner/inputaudio/ffmpeg/CMakeFiles/input_ffmpeg.dir/input_ffmpeg.c.o] Error 1
[ 75%] Building C object scanner/inputaudio/ffmpeg/CMakeFiles/input_ffmpeg.dir/__/input_helper.c.o
make[2]: Target 'scanner/inputaudio/ffmpeg/CMakeFiles/input_ffmpeg.dir/build' not remade because of errors.
make[1]: *** [CMakeFiles/Makefile2:549: scanner/inputaudio/ffmpeg/CMakeFiles/input_ffmpeg.dir/all] Error 2
Scanning dependencies of target input_gstreamer
[ 77%] Building C object scanner/inputaudio/gstreamer/CMakeFiles/input_gstreamer.dir/input_gstreamer.c.o
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c: In function ‘bus_call’:
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:54:7: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
       g_static_mutex_lock(&gstreamer_mutex);
       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/gstreamer-0.10/gst/gst.h:27,
                 from loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:59:7: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
       g_static_mutex_unlock(&gstreamer_mutex);
       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/gstreamer-0.10/gst/gst.h:27,
                 from loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:73:7: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
       g_static_mutex_lock(&gstreamer_mutex);
       ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/gstreamer-0.10/gst/gst.h:27,
                 from loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:78:7: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
       g_static_mutex_unlock(&gstreamer_mutex);
       ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/gstreamer-0.10/gst/gst.h:27,
                 from loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c: In function ‘gstreamer_open_file’:
loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:226:3: warning: ‘g_thread_create’ is deprecated: Use 'g_thread_new' instead [-Wdeprecated-declarations]
   ih->gstreamer_loop = g_thread_create((GThreadFunc) gstreamer_loop, ih, TRUE, NULL);
   ^~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/gstreamer-0.10/gst/gst.h:27,
                 from loudness-scanner/scanner/inputaudio/gstreamer/input_gstreamer.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:104:10: note: declared here
 GThread *g_thread_create       (GThreadFunc       func,
          ^~~~~~~~~~~~~~~
[ 80%] Linking C shared module ../../../libinput_gstreamer.so
[ 80%] Built target input_gstreamer
Scanning dependencies of target loudness-drop-gtk
[ 83%] Building C object scanner/scanner-drop-gtk/CMakeFiles/loudness-drop-gtk.dir/scanner-drop.c.o
In file included from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:6:
/usr/include/librsvg-2.0/librsvg/rsvg-cairo.h:27:2: warning: #warning "Including <librsvg/rsvg-cairo.h> directly is deprecated." [-Wcpp]
 #warning "Including <librsvg/rsvg-cairo.h> directly is deprecated."
  ^~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c: In function ‘do_work’:
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:355:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_lock(&thread_mutex);
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:357:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&thread_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c: In function ‘handle_data_received’:
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:375:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_lock(&thread_mutex);
     ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:377:9: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
         g_static_mutex_unlock(&thread_mutex);
         ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:381:5: warning: ‘g_static_mutex_get_mutex_impl’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
     g_static_mutex_unlock(&thread_mutex);
     ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:154:9: note: declared here
 GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:395:5: warning: ‘g_thread_create’ is deprecated: Use 'g_thread_new' instead [-Wdeprecated-declarations]
     worker_thread = g_thread_create((GThreadFunc) do_work, sl, FALSE, NULL);
     ^~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:104:10: note: declared here
 GThread *g_thread_create       (GThreadFunc       func,
          ^~~~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c: In function ‘main’:
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:564:5: warning: ‘g_thread_init’ is deprecated [-Wdeprecated-declarations]
     g_thread_init(NULL);
     ^~~~~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:265:10: note: declared here
 void     g_thread_init                   (gpointer vtable);
          ^~~~~~~~~~~~~
loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:614:5: warning: ‘g_thread_create’ is deprecated: Use 'g_thread_new' instead [-Wdeprecated-declarations]
     bar_thread = g_thread_create((GThreadFunc) update_bar, window, FALSE, NULL);
     ^~~~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:108,
                 from /usr/include/glib-2.0/gobject/gbinding.h:28,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glib-2.0/gio/gioenums.h:28,
                 from /usr/include/glib-2.0/gio/giotypes.h:28,
                 from /usr/include/glib-2.0/gio/gio.h:26,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from loudness-scanner/scanner/scanner-drop-gtk/scanner-drop.c:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:104:10: note: declared here
 GThread *g_thread_create       (GThreadFunc       func,
          ^~~~~~~~~~~~~~~
[ 86%] Linking CXX executable ../../loudness-drop-gtk
[ 86%] Built target loudness-drop-gtk
Scanning dependencies of target loudness-drop-qt
[ 88%] Building CXX object scanner/scanner-drop-qt/CMakeFiles/loudness-drop-qt.dir/scanner-drop-qt.cpp.o
loudness-scanner/scanner/scanner-drop-qt/scanner-drop-qt.cpp: In function ‘int main(int, char**)’:
loudness-scanner/scanner/scanner-drop-qt/scanner-drop-qt.cpp:500:23: warning: ‘void g_thread_init(gpointer)’ is deprecated [-Wdeprecated-declarations]
     g_thread_init(NULL);
                       ^
In file included from /usr/include/glib-2.0/glib.h:108,
                 from loudness-scanner/scanner/filetree/filetree.h:6,
                 from loudness-scanner/scanner/scanner-drop-qt/scanner-drop-qt.h:19,
                 from loudness-scanner/scanner/scanner-drop-qt/scanner-drop-qt.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:265:10: note: declared here
 void     g_thread_init                   (gpointer vtable);
          ^~~~~~~~~~~~~
[ 91%] Building CXX object scanner/scanner-drop-qt/CMakeFiles/loudness-drop-qt.dir/moc_scanner-drop-qt4.cpp.o
[ 94%] Linking CXX executable ../../loudness-drop-qt
[ 97%] Built target loudness-drop-qt
make[1]: Target 'all' not remade because of errors.
make: *** [Makefile:130: all] Error 2
make: Target 'default_target' not remade because of errors.

Compile to windows

I am having trouble compiling to windows.

I attempted both using visual studio on windows and through mingw32. But I am not sure which is the right way to go. I have been developing on os x where everything compiles nicely.

Should I attempt to cross compile or is it easier to compile it with cmake / visual studio / code blocks on windows?

I am a bit lost in the process, any pointers would be helpful.

Currently I'm getting stuck at #include <sys/queue.h> not being available on windows when trying through visual studio.

Peak analysis on MP3s yields sample peaks >1

Hi,

Having an mp3 file test.mp3 and a derived wav file (created from the mp3 using mpg123 -w) I get the following results:

root@utena:~# /usr/src/joel/loudness-scanner/build/loudness scan -l -p all test.*
  Loudness,     LRA, Sample peak,   True peak,  True peak                      
 -8.5 LUFS,  3.8 LU,    1.376949,    1.714404,   4.7 dBTP, test.mp3
 -8.5 LUFS,  3.8 LU,    1.000000,    1.652230,   4.4 dBTP, test.wav
-------------------------------------------------------------------------------
 -8.5 LUFS,  3.8 LU,    1.376949,    1.714404,   4.7 dBTP

The 1.0000 output is expected in a normalized file, but a sample peak >1 should not be representable. How can that happen?

Current git code (7eb4e95)
-- status found / disabled --
-- queue.h: yes using system copy of queue.h
-- glib-2.0: yes no
-- gthread-2.0: yes no
-- sndfile: yes no
-- taglib: yes no
-- mpg123: yes no
-- mpcdec: yes no
-- gstreamer: no no
-- ffmpeg: yes yes
-- rsvg2: no no
-- gtk2: yes no
-- qt4: yes no
-- qt5: no no

so I am probably using the mpg123 plugin. I can provide both files though there might be copyright implications.

Allow combining 2 mono streams to analyse them as stereo signal

We are using your scanner with MXF files which consist of 1 video stream and 8 mono audio streams. However, these 8 streams are actually 4 stereo channels with separate streams for L/R audio.

The scan tool only analyses the first audio stream it can find, which is the left channel audio in our case. So all LUFS values are 3 LU short (for even loudness distribution between the stereo channels).

It would be awesome if you could add a flag to make the scanner analyse the first 2 audio tracks as stereo, if the first track is mono and there's at least a second one.

submodule update not pulling latest libebur128 commit

Hello,
doing :

$ git clone https://github.com/jiixyj/loudness-scanner.git
Cloning into 'loudness-scanner'...
remote: Counting objects: 3595, done.
remote: Total 3595 (delta 0), reused 0 (delta 0), pack-reused 3595
Receiving objects: 100% (3595/3595), 1021.12 KiB | 334.00 KiB/s, done.
Resolving deltas: 100% (2010/2010), done.
Checking connectivity... done.
$ cd loudness-scanner
$ git submodule init
Submodule 'ebur128' (git://github.com/jiixyj/libebur128.git) registered for path 'ebur128'
Submodule 'scanner/filetree' (git://github.com/jiixyj/filewalk.git) registered for path 'scanner/filetree'
$ git submodule update
Cloning into 'ebur128'...
remote: Counting objects: 3579, done.
remote: Total 3579 (delta 0), reused 0 (delta 0), pack-reused 3579
Receiving objects: 100% (3579/3579), 1.01 MiB | 588.00 KiB/s, done.
Resolving deltas: 100% (1971/1971), done.
Checking connectivity... done.
Submodule path 'ebur128': checked out '12145473831324d3b72b490f34c3d8993ba69b44'
Cloning into 'scanner/filetree'...
remote: Counting objects: 130, done.
remote: Total 130 (delta 0), reused 0 (delta 0), pack-reused 130
Receiving objects: 100% (130/130), 21.35 KiB | 0 bytes/s, done.
Resolving deltas: 100% (65/65), done.
Checking connectivity... done.
Submodule path 'scanner/filetree': checked out '38422e6b1e6421da3899e10ef70d32cdb004e550'

The latest commit to libebur128 jiixyj/libebur128@bc6dd06 is not pulled, instead commit jiixyj/libebur128@1214547 is pulled.

Gtk required?

Hi,

I'm confused, the readme says that Gtk is required, but this appears to be a command-line program...?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.