libMirage
3.3.3
~~~~~


Table of Contents:
~~~~~~~~~~~~~~~~~~

1. Introduction
2. Supported image formats
3. Requirements
4. Installation
5. Contact information


1. Introduction
~~~~~~~~~~~~~~~

This is libMirage library, a CD-ROM image access library, and part of the
cdemu suite, a free, GPL CD/DVD-ROM device emulator for linux. It is
written in C and based on GLib.

The aim of libMirage is to provide uniform access to the data stored in
different image formats, by creating a representation of disc stored in image
file, which is based on GObjects. There are various objects that represent
different parts of the disc; disc, session, track, sector, etc. In addition to
providing access to data provided by the image file, libMirage is also capable
of generating some of the data that might not be present in image file. For
instance, ISO image provides only user data from sector, without sync pattern,
header, ECC/EDC codes or subchannel. When this missing data is requested,
libMirage will transparently generate it.

libMirage has a plug-in based system, which allows a simple addition of new
image format parsers/writers or filter streams. It also supports runtime
debugging via debug traces; there are special debug context objects that can
be attached to other objects and used to control the amount of verbosity.


2. Supported image formats
~~~~~~~~~~~~~~~~~~~~~~~~~~

Currently supported image formats:
 - BlindWrite 5/6 (B5T, B6T) file format (readonly)
 - Roxio / WinOnCD (C2D) file format (readonly)
 - CloneCD (CCD, SUB, IMG) image format (readonly)
 - DiscJuggler (CDI) file format (readonly)
 - MAME's Compressed Hunks of Data (CHD) file format (readonly)
 - Easy CD Creator (CIF) file format (readonly)
 - CDRwin (CUE, BIN) image format (readonly)
 - Raw track loader (ISO, UDF etc.) image format (read-write)
 - Alcohol 120% (MDS) image format (readonly)
 - Daemon Tools (MDX) image format (readonly)
 - Nero Burning ROM (NRG) image format (readonly)
 - ReadCD (TOC, BIN) image format (readonly)
 - Cdrdao's (TOC, BIN) image format (read-write)
 - XCDRoast (TOC, BIN) image format (readonly)

Currently supported filter streams:
 - Apple Disk Image (DMG) container format (readonly)
 - Apple Disk Image (IMG, SMI) via MacBinary container format (readonly)
 - GZip (GZ) container format (readonly)
 - XZ (XZ) container format (readonly)
 - Compressed ISO (CSO) container format (readonly)
 - Compressed ISO (ISZ) container format (readonly)
 - Error Code Modeller (ECM) container format (readonly)
 - PowerISO (DAA) image format (readonly)
 - SNDFILE audio files (read-write)

2.1 Note about XZ-compressed images and XZ file filter:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The support for XZ-compressed images in libMirage is limited to streams
with reasonably-sized compressed blocks. This is to allow efficient
random access in the image, which requires a whole block to be
uncompressed in memory before data it contains can be accessed. A larger
block requires more time to be uncompressed and consumes more memory when
cached, whereas in random access, not all data it contains is necessarilly
needed. Therefore, for performance reasons, we enforce block size to
be 10 MB or less.

Unfortunately, xz from xz-utils by default creates an XZ file with a
single large block, which cannot be used with libMirage. If you wish to
use XZ-compressed images, use "--block-size" switch, for example,
"xz --block-size=10M ...". This requires 5.1.1alpha or later version of
xz-utils. Note that p7zip/7za cannot create single-file streams with
smaller blocks, so it cannot be used with libMirage.


3. Requirements:
~~~~~~~~~~~~~~~~

 - CMake >= 3.16
 - GLib >= 2.38

 - libsndfile >= 1.0.0 (optional)
 - libsamplerate >= 0.1.0 (optional)
 - zlib >= 1.2.0 (optional)
 - libbz2 >= 1.0.0 (optional)
 - liblzma >= 5.0.0 (optional)
 - libgcrypt >= 1.2.0 (optional)
 - libchdr >= 0.3.0 (optional)

 - gtk-doc >= 1.4 (optional)
 - gobject-introspection >= 1.0 (optional)


4. Installation:
~~~~~~~~~~~~~~~~

Please read the INSTALL file.


5. Contact information:
~~~~~~~~~~~~~~~~~~~~~~~

CDEmu project's web page: http://cdemu.sourceforge.net
CDEmu project's mailing list: cdemu-devel@lists.sourceforge.net

Authors can be directly contacted via e-mail address listed in AUTHORS file.
