这是indexloc提供的服务,不要输入任何密码
Skip to content
This repository was archived by the owner on May 27, 2020. It is now read-only.

neersighted/libgroove

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libgroove

Generic music player backend library.

For documentation, see include/groove.h and the examples. Live chat is available in the #libgroove channel of irc.freenode.org.

Features

  • Uses libav for robust decoding and encoding.
  • 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 standard to detect loudness. The values it produces are compatible with ReplayGain.
    • chromaprint sink - computes AccoustID fingerprints.
  • Thread-safe.

Dependencies

You will need these to compile libgroove. These are most likely in your distribution's package manager.

Bundled Dependencies

These are bundled with libgroove. You don't need to do anything except appreciate them.

Once libav makes a debian upstream release, we will no longer bundle these dependencies and instead make our own debian upstream release.

Installation

  1. Once you have the dependencies installed, you can use make to build libgroove.so. Using the -jx option where x is how many cores you have is recommended.
  2. Next install libgroove to your system with make install. You will need root privileges if you leave the PREFIX variable to its default, which is /usr/local.
  3. With libgroove installed in your system, you can compile the examples with make examples.
  4. Optionally you can install the examples to your system with make install-examples. These examples are:
    • 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

Projects Using libgroove

Feel free to make a pull request adding yours to this list.

  • TrenchBowl - a simple Qt GUI on top of libgroove.
  • node-groove - Node.js bindings to libgroove.
    • Groove Basin - lazy multi-core replaygain scanning, web interface inspired by Amarok 1.4, http streaming, upload, download, dynamic playlist mode

About

streaming audio processing library

Resources

License

Stars

Watchers

Forks

Packages

No packages published