GNU Compact Disc Input and Control Library

The 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, cygwin, Solaris, BSDI as well as GNU/Linux.

This list of projects using libcdio can be consulted for an idea of possible range of applications using of 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.

Utility programs in the libcdio package are:

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 CD 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.


Documentation (including tutorial)

API reference

API documentation courtesy of doxygen


Links of source code and distribution packages


Instructions for accessing the CVS repository

Mailing lists

GNU Mailman mailing lists


Browse the CVS Tree

Project Page

The GNU Savannah project page

$Id: index.html,v 1.43 2006/12/22 16:33:11 rocky Exp $