libburnia is a project comprised of libraries and binaries for reading, mastering, and writing optical…
libburn is a library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray). On Linux it uses either /dev/sgN (on kernel 2.4 with ide-scsi) or /dev/srM , /dev/hdX ( on kernel 2.6). On FreeBSD it uses /dev/cdN, eventually via atapicam. On Solaris addresses look like /dev/rdsk/cXtYd0s2.
libburn also offers a facility for reading data blocks from its drives without using the normal block device i/o, which has its advantages and disadvantages. It seems appropriate, nevertheless, to do writing and reading via the same channel. On several Linux systems, the block device driver needs reloading of the drive tray in order to make available freshly written data. The libburn read function does not need such a reload.
Audio CD can be written and read.
The code of libburn is independent of cdrecord. Its CD SAO capabilities are inherited from old libburn. Its CD TAO capabilities are learned from MMC-1. Its DVD and BD capabilities are learned from studying the code of dvd+rw-tools and MMC-5 specs. No code but only the pure SCSI knowledge has been taken from dvd+rw-tools, though.