GNU libcdio

GNU Compact Disc Input and Control Library

The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access. Applications wishing to be oblivious of the OS- and device-dependent properties of a CD-ROM or of the specific details of various CD-image formats may benefit from using this library.

Some support for on-disk CD-image types like CDRWIN's BIN/CUE format, cdrdao's TOC format, and Nero's NRG format is available. Therefore, applications that use this library also have the ability to read on-disk CD images as though they were CDs.

A library for working with ISO-9660 filesystems (libiso9660) is included. A generic interface for issuing MMC (multimedia commands) is also part of the libcdio library.

The cdparanoia library and cdparanoia command are included making this the only single-source cdparanoia that works on FreeBSD, NetBSD, OSX, cygwin, Solaris, BSDI as well as GNU/Linux.

This list of projects using libcdio can be consulted for an idea of the range of applications using the library.

With the distribution is an OO interface via C++. (The C routines are also directly callable from C++). Access via Perl is available from CPAN via the Device::Cdio module. An interface from Python and two from Ruby are also available.

Sam May wrote some Haskell bindings; see here.

Utility Programs

a program which displays CD information: number of tracks, CD-format and if possible basic information about the format. If libcddb is available, the cd-info program will display CDDB matches on CD-DA discs. And if a new enough version of libvcdinfo is available (from the vcdimager project), then cd-info shows basic VCD information.
a program which decribes CD-ROM/DVD drive characteristics
a program for extracting audio from a CD in a jitter- and error-tolerant way.
a program for performing low-level block reading of a CD or C image
a curses program using the audio controls to play a CD-DA through the audio output port.
a program for displaying ISO-9660 information from an ISO-9660 image
a program for extracting files from an ISO-9660 image
a program for issuing some MMC commands


Browse Source Code

Other Links

Valid HTML 4.01 Transitional Valid CSS!