[SCM] libgroove/master: Imported Upstream version 4.2.1
andrewrk-guest at users.alioth.debian.org
andrewrk-guest at users.alioth.debian.org
Tue Oct 7 17:51:19 UTC 2014
The following commit has been merged in the master branch:
commit 29c44dd6a8dacee66428b634cdb30caabe2a7f23
Author: Andrew Kelley <superjoe30 at gmail.com>
Date: Tue Oct 7 17:42:45 2014 +0000
Imported Upstream version 4.2.1
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70ca61f..13b0b99 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+### Version 4.2.1 (2014-10-07)
+
+ * fix build on GNU/hurd
+
### Version 4.2.0 (2014-09-25)
* build: remove bundled dependencies
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fae4426..417a4b2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(LIBGROOVE_STATUS "yes")
set(LIBGROOVE_VERSION_MAJOR 4)
set(LIBGROOVE_VERSION_MINOR 2)
-set(LIBGROOVE_VERSION_PATCH 0)
+set(LIBGROOVE_VERSION_PATCH 1)
set(LIBGROOVE_VERSION "${LIBGROOVE_VERSION_MAJOR}.${LIBGROOVE_VERSION_MINOR}.${LIBGROOVE_VERSION_PATCH}")
message("Configuring libgroove version ${LIBGROOVE_VERSION}")
file(GLOB_RECURSE LIBGROOVE_SOURCES ${CMAKE_SOURCE_DIR}/groove/*.c)
diff --git a/README.md b/README.md
index 1ff2098..47c3f03 100644
--- a/README.md
+++ b/README.md
@@ -1,153 +1,167 @@
-# libgroove
+libgroove
+=========
-This library provides decoding and encoding of audio on a playlist.
-It is intended to be used as a backend for music player applications, however
-it is generic enough to be used as a backend for any streaming audio processing
+This library provides decoding and encoding of audio on a playlist. It is
+intended to be used as a backend for music player applications. That said, it is
+also generic enough to be used as a backend for any streaming audio processing
utility.
-## Features
-
- * Uses [libav](http://www.libav.org/) for robust decoding and encoding.
- - [list of supported formats](http://www.libav.org/general.html#Supported-File-Formats-and-Codecs)
- * Add and remove entries on a playlist for gapless playback.
- * Supports idempotent pause, play, and seek.
- * Per-playlist-item gain adjustment so you can implement loudness compensation
- without audio glitches.
- * Read and write metadata tags.
- * Extensible sink-based interface. A sink provides resampling
- and keeps its buffer full. Types of sinks:
- * **raw sink** - provides reference-counted raw audio buffers you can do
- whatever you like with. For example a real-time audio visualization.
- All other sink types are built on top of this one.
- * **player sink** - sends frames to a sound device.
- * **encoder sink** - provides encoded audio buffers. For example you could
- use this to create an HTTP audio stream.
- * **loudness scanner sink** - uses the [EBU R 128](http://tech.ebu.ch/loudness)
- standard to detect loudness. The values it produces are compatible with
- [ReplayGain](http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification).
- * **fingerprint sink** - uses [chromaprint](acoustid.org/chromaprint) to
- generate unique song IDs that can be used with the acoustid service.
- * Thread-safe.
- * Example programs included:
- * `playlist` - play a series of songs with gapless playback
- * `metadata` - read or update song metadata
- * `replaygain` - report the suggested replaygain for a set of files
- * `transcode` - transcode one or more files into one output file
- * `fingerprint` - generate acoustid fingerprints for one or more files
-
-## Dependencies
+Features
+--------
+
+* Uses [libav](http://www.libav.org/) for robust decoding and encoding. A list
+ of supported file formats and codecs [is
+ available](http://www.libav.org/general.html#Supported-File-Formats-and-Codecs).
+* Add and remove entries on a playlist for gapless playback.
+* Supports idempotent pause, play, and seek.
+* Per-playlist-item gain adjustment so you can implement loudness compensation
+ without audio glitches.
+* Read and write metadata tags.
+* Extensible sink-based interface. A sink provides resampling and keeps its
+ buffer full. Types of sinks:
+ * **raw sink** - Provides reference-counted raw audio buffers you can do
+ whatever you like with. For example a real-time audio visualization. All
+ other sink types are built on top of this one.
+ * **player sink** - Sends frames to a sound device.
+ * **encoder sink** - Provides encoded audio buffers. For example, you could
+ use this to create an HTTP audio stream.
+ * **loudness scanner sink** - Uses the [EBU R
+ 128](http://tech.ebu.ch/loudness) standard to detect loudness. The values it
+ produces are compatible with the
+ [ReplayGain](http://wiki.hydrogenaudio.org/index.php?title=ReplayGain_1.0_specification)
+ specification.
+ * **fingerprint sink** - Uses [chromaprint](acoustid.org/chromaprint) to
+ generate unique song IDs that can be used with the acoustid service.
+* Thread-safe.
+* Example programs included:
+ * `playlist` - Play a series of songs with gapless playback.
+ * `metadata` - Read or update song metadata.
+ * `replaygain` - Report the suggested replaygain for a set of files.
+ * `transcode` - Transcode one or more files into one output file.
+ * `fingerprint` - Generate acoustid fingerprints for one or more files.
+
+Dependencies
+------------
You will need these to compile libgroove.
- * [cmake](http://www.cmake.org/)
- * [libav](http://libav.org)
- - suggested flags: `--enable-shared --disable-static --enable-libmp3lame --enable-libvorbis --enable-gpl`
- * [libebur128](https://github.com/jiixyj/libebur128)
- - make sure it is compiled with the speex dependency so that true peak
- functions are available.
- * [libsdl2-dev](http://www.libsdl.org/)
- * [libchromaprint-dev](http://acoustid.org/chromaprint)
+* [cmake](http://www.cmake.org/)
+* [libav](http://libav.org)
+ * suggested flags: `--enable-shared --disable-static --enable-libmp3lame --enable-libvorbis --enable-gpl`
+* [libebur128](https://github.com/jiixyj/libebur128)
+ * make sure it is compiled with the speex dependency so that true peak
+ functions are available.
+* [libsdl2-dev](http://www.libsdl.org/)
+* [libchromaprint-dev](http://acoustid.org/chromaprint)
-## Installation
+Installation
+------------
-### Pre-Built Packages
+Installing from a package is recommended, but instructions for installing from
+source are also provided at the end of this list.
-#### [Ubuntu PPA](https://launchpad.net/~andrewrk/+archive/libgroove)
+### [Ubuntu PPA](https://launchpad.net/~andrewrk/+archive/libgroove)
-```
+```sh
sudo apt-add-repository ppa:andrewrk/libgroove
sudo apt-get update
-sudo apt-get install libgroove-dev libgrooveplayer-dev libgrooveloudness-dev libgroovefingerprinter-dev
+sudo apt-get install libgroove-dev libgrooveplayer-dev libgrooveloudness-dev \
+ libgroovefingerprinter-dev
```
-#### [FreeBSD Port](http://www.freshports.org/audio/libgroove/)
+### [FreeBSD Port](http://www.freshports.org/audio/libgroove/)
-```
+```sh
pkg install audio/libgroove
```
-#### [Debian](http://packages.qa.debian.org/libg/libgroove.html)
+### [Debian](http://packages.qa.debian.org/libg/libgroove.html)
-[Configure your system](http://serverfault.com/questions/22414/) to be able
-to install packages from testing.
+[Configure your system](http://serverfault.com/questions/22414/) to be able to
+install packages from testing.
-```
-sudo apt-get -t testing install libgroove-dev libgrooveplayer-dev libgrooveloudness-dev libgroovefingerprinter-dev
+```sh
+sudo apt-get -t testing install libgroove-dev libgrooveplayer-dev \
+ libgrooveloudness-dev libgroovefingerprinter-dev
```
-### From Source
+### [Arch Linux](https://aur.archlinux.org/packages/libgroove/)
- 1. `mkdir build && cd build && cmake ../`
- 2. Verify that the configure output is to your liking.
- 3. `make`
- 4. `sudo make install`
+libgroove is available through the [AUR](https://aur.archlinux.org/).
-#### Mac OS X
+```sh
+wget https://aur.archlinux.org/packages/li/libgroove/libgroove.tar.gz
+tar xzf libgroove.tar.gz
+cd libgroove
+makepkg
+sudo pacman -U libgroove-*
+```
-Install dependencies from [Homebrew](http://brew.sh/)
+Some notes:
-```
-brew install chromaprint
-brew install libav --with-libvorbis --with-speex
-brew install sdl2
-```
+* libgroove depends upon several other packages. Dependencies available through
+ the official repositories can be installed with pacman (e.g. `pacman -S
+ --asdeps sdl2`), and dependencies available through the AUR can be installed
+ via the procedure shown above.
+* An [AUR helper](https://wiki.archlinux.org/index.php/AUR_helper) can ease the
+ process of installing packages from the AUR.
+* The [AUR User
+ Guidelines](https://wiki.archlinux.org/index.php/AUR_User_Guidelines) page on
+ the Arch Wiki contains gobs of useful information. Please see that page if you
+ have any further questions about using the AUR.
-Install [libebur128](https://github.com/jiixyj/libebur128) from source
+### [Mac OS X Homebrew](http://brew.sh/)
-```
-git clone https://github.com/jiixyj/libebur128
-cd libebur128
-mkdir build
-cd build
-cmake ..
-make
-make install
+```sh
+brew install libgroove
```
-Install libgroove from source
+### From Source
-```
-git clone https://github.com/andrewrk/libgroove
-cd libgroove
-mkdir build
-cd build
-cmake ..
+```sh
+mkdir build && cd build && cmake ../
+# Verify that the configure output is to your liking.
make
-make install
+sudo make install
```
-## Documentation
-
- * Check out the example programs in the example folder.
- * Read header files for the relevant APIs:
- * groove/groove.h
- - globals
- - GrooveFile
- - GroovePlaylist
- - GrooveBuffer
- - GrooveSink
- * groove/encoder.h
- - GrooveEncoder
- * grooveplayer/player.h
- - GroovePlayer
- * grooveloudness/loudness.h
- - GrooveLoudnessDetector
- * groovefingerprinter/fingerprinter.h
- - GrooveFingerprinter
- * Join #libgroove on irc.freenode.org and ask questions.
-
-## Projects Using libgroove
+Documentation
+-------------
+
+Check out the example programs in the example folder.
+
+Read header files for the relevant APIs:
+
+* groove/groove.h
+ * globals
+ * GrooveFile
+ * GroovePlaylist
+ * GrooveBuffer
+ * GrooveSink
+* groove/encoder.h
+ * GrooveEncoder
+* grooveplayer/player.h
+ * GroovePlayer
+* grooveloudness/loudness.h
+ * GrooveLoudnessDetector
+* groovefingerprinter/fingerprinter.h
+ * GrooveFingerprinter
+
+Join #libgroove on irc.freenode.org and ask questions.
+
+Projects Using libgroove
+------------------------
Feel free to make a pull request adding yours to this list.
- * [waveform](https://github.com/andrewrk/waveform) - generate a waveform
- visualization in PNG format.
- * [TrenchBowl](https://github.com/andrewrk/TrenchBowl) - a simple Qt GUI
- on top of libgroove.
- * [node-groove](https://github.com/andrewrk/node-groove) -
- [Node.js](http://nodejs.org/) bindings to libgroove.
- - [Groove Basin](https://github.com/andrewrk/groovebasin) - lazy
- multi-core replaygain scanning, web interface inspired by Amarok 1.4,
- http streaming, upload, download, dynamic playlist mode
- * [ruby-groove](https://github.com/johnmuhl/ruby-groove) - Ruby FFI bindings
- to libgroove.
+* [waveform](https://github.com/andrewrk/waveform) generates PNG waveform
+ visualizations.
+* [TrenchBowl](https://github.com/andrewrk/TrenchBowl) is a simple Qt GUI
+ on top of libgroove.
+* [node-groove](https://github.com/andrewrk/node-groove) provides
+ [Node.js](http://nodejs.org/) bindings to libgroove.
+* [Groove Basin](https://github.com/andrewrk/groovebasin) is a music player with
+ lazy multi-core replaygain scanning, a web interface inspired by Amarok 1.4,
+ http streaming, upload, download and a dynamic playlist mode.
+* [ruby-groove](https://github.com/johnmuhl/ruby-groove) provides Ruby FFI
+ bindings to libgroove.
diff --git a/example/libgroove.pc b/example/libgroove.pc
new file mode 100644
index 0000000..cb4e018
--- /dev/null
+++ b/example/libgroove.pc
@@ -0,0 +1,10 @@
+# For more information: http://www.freedesktop.org/wiki/Software/pkg-config/
+
+libdir=
+includedir=
+
+Name: libgroove
+Description: libgroove provides decoding and encoding of audio on a playlist.
+Version:
+Libs: -L${libdir} -lgroove -lgrooveplayer -lgrooveloudness -lgroovefingerprinter
+Cflags: -I${includedir}
diff --git a/groove/file.c b/groove/file.c
index da099f0..31349d6 100644
--- a/groove/file.c
+++ b/groove/file.c
@@ -262,6 +262,7 @@ int groove_file_save(struct GrooveFile *file) {
}
out_stream->id = in_stream->id;
out_stream->disposition = in_stream->disposition;
+ out_stream->time_base = in_stream->time_base;
AVCodecContext *icodec = in_stream->codec;
AVCodecContext *ocodec = out_stream->codec;
@@ -294,7 +295,6 @@ int groove_file_save(struct GrooveFile *file) {
}
memcpy(ocodec->extradata, icodec->extradata, icodec->extradata_size);
ocodec->extradata_size = icodec->extradata_size;
- ocodec->time_base = in_stream->time_base;
switch (ocodec->codec_type) {
case AVMEDIA_TYPE_AUDIO:
ocodec->channel_layout = icodec->channel_layout;
diff --git a/groove/global.c b/groove/global.c
index 1cbdf40..fadf812 100644
--- a/groove/global.c
+++ b/groove/global.c
@@ -34,6 +34,7 @@ static int my_lockmgr_cb(void **mutex, enum AVLockOp op) {
pmutex = *mutex;
int err = pthread_mutex_destroy(pmutex);
av_free(pmutex);
+ *mutex = NULL;
return err;
}
return 0;
diff --git a/grooveplayer/osx_time_shim.h b/grooveplayer/osx_time_shim.h
index c62e36b..c4837a3 100644
--- a/grooveplayer/osx_time_shim.h
+++ b/grooveplayer/osx_time_shim.h
@@ -8,7 +8,7 @@
#ifndef GROOVE_MACH_TIME_H_INCLUDED
#define GROOVE_MACH_TIME_H_INCLUDED
-#ifdef __MACH__
+#ifdef __APPLE__
#include <sys/types.h>
#include <sys/_types/_timespec.h>
--
libgroove packaging
More information about the pkg-multimedia-commits
mailing list