parent
7138975225
commit
750faeb2a9
44
Reading.md
Normal file
44
Reading.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
Reading of optical media is for now restricted to reading of data sectors,
|
||||||
|
which is done by call `burn_read_data()` of [libburn](Libburn),
|
||||||
|
reading of audio CD sectors by call `burn_read_audio()`,
|
||||||
|
and reading of CD-TEXT from audio CD by `burn_disc_get_leadin_text()`.
|
||||||
|
|
||||||
|
This is fully sufficient for DVD media. On CD, a sector not only may host
|
||||||
|
2048 bytes of payload but stores more information which can be accessed
|
||||||
|
by special SCSI commands. An example are Audio sectors of CD-DA discs which
|
||||||
|
store payload in all their 2352 bytes. Other sector formats are known withi
|
||||||
|
payload between that maximum and 2048.
|
||||||
|
|
||||||
|
Data reading has several use cases in libburnia:
|
||||||
|
|
||||||
|
Demo program
|
||||||
|
[telltoc](https://dev.lovelyhq.com/libburnia/libburn/raw/HEAD/test/telltoc.c)
|
||||||
|
is able to read CD TAO tracks up to the last data sectors which are normally
|
||||||
|
inaccessible through the Linux block devices. This is due to the fact
|
||||||
|
that a TAO track announces a size which includes two non-data sectors
|
||||||
|
at the end of the track. Some drives correct this, some do not. Whether a track
|
||||||
|
was recorded by TAO is hardly to tell. In a SAO track, all announced sectors
|
||||||
|
are data sectors. telltoc solves this dilemma by reading the end sectors
|
||||||
|
of a track one-by-one.
|
||||||
|
|
||||||
|
Application program [cdrskin](Cdrskin) emulates ISO multi-session on DVD+RW
|
||||||
|
by reading the first 64 kB of the ISO 9660 image from media, patching some
|
||||||
|
address fields and writing them back.
|
||||||
|
(Learned from Andy Polyakov's `growisofs`.)
|
||||||
|
Further, `cdrskin` is able to copy audio tracks and CD-TEXT from CD to
|
||||||
|
hard disk.
|
||||||
|
|
||||||
|
Library [libisoburn](Libisoburn) creates an interface object for library
|
||||||
|
[libisofs](Libisofs) which can read data blocks from libburn drives.
|
||||||
|
This is used for detecting an ISO 9660 image and for loading its
|
||||||
|
directory tree and management data. `libisoburn` itself performs the same
|
||||||
|
patching of DVD+RW and similar media as can be done by `cdrskin`.
|
||||||
|
|
||||||
|
Application program [xorriso](Xorriso) uses data reading capabilities for
|
||||||
|
comparing the content of disk files with the content of ISO image files
|
||||||
|
and for copying files from ISO image to disk.
|
||||||
|
|
||||||
|
On several Linux systems, the block device driver needs reloading of thei
|
||||||
|
drive tray in order to make available freshly written data via its
|
||||||
|
buffered i/o. The libburn read function does not need such a reload.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user