这是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.
    • (on the roadmap) accoustid fingerprint
  • 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
  • Cross-platform.

Dependencies

You will need these to compile libgroove. All of these are almost certainly in your local package manager.

Bundled Dependencies

  • libav
    • Once libav makes an upstream release, libgroove will try to build against the system libav and fall back on the bundled version.
  • libebur128
    • libgroove tries to build against system libebur128 library and falls back on the bundled version.
  • libsdl2-dev
    • libgroove tries to build against system SDL2 library and falls back on the bundled version.

Installation

Pre-Built Packages

From Source

  1. mkdir build && cd build && cmake ../
  2. Verify that all dependencies say "OK".
  3. make
  4. sudo make install

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