[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libcdio-devel] Re: Submission of new mmc function for libcdio
From: |
Thomas Schmitt |
Subject: |
[Libcdio-devel] Re: Submission of new mmc function for libcdio |
Date: |
Sun, 31 Jan 2010 08:42:41 +0100 |
Hi,
> I am still here reading what is said (very interesting), and understand
> better now (I had never heard about MMC commands until Wednesday).
I was quite overwhelmed when i began to read
MMC, SPC, SBC a few years ago. Nevertheless it
is much better written than ECMA-167 plus UDF
specs.
Download all the specs you can find. They have
the habit to vanish in the internet.
(I still could bite my ass that i did not
save the copy of the first RRIP specs which
i once had on my screen. Now i can only find
second and third generation. The lost one
specified the now vanished RR entry.)
> For a "mmc_get_disc_information" function ("mmc_get_discmode" could be
> confusing with "cdio_get_discmode"), we need to define what information
> about the media we need: type (dvd, cd...), content (blank, iso9660, udf,
> audio... => maybe we'll need per track content) session state, size,
> capacity, 'capabilities' (writable, rewritable) ...
This is quite some list of properties.
Did i already praise the educational value of
dvd+rw-mediainfo, the companion of growisofs ?
Load the tray with a DVD and execute
dvd+rw-mediainfo /dev/...
This reports
INQUIRY: [HL-DT-ST][BD-RE GGW-H20L ][YL03]
GET [CURRENT] CONFIGURATION:
Mounted Media: 14h, DVD-RW Sequential
Media ID: RITEKW01
...
READ DISC INFORMATION:
Disc status: appendable
Number of Sessions: 27
State of Last Session: empty
"Next" Track: 27
Number of Tracks: 27
READ TRACK INFORMATION[#1]:
Track State: complete incremental
Track Start Address: 0*2KB
Free Blocks: 0*2KB
Track Size: 954496*2KB
Last Recorded Address: 954495*2KB
...
The headlines are the names of MMC commands.
Sometimes slightly altred. The info lines
interpret the outcome.
A second argument triggers verbosity mode:
dvd+rw-mediainfo /dev/... extra
which tells a lot of MMC entrails:
INQUIRY: [HL-DT-ST][BD-RE GGW-H20L ][YL03]
...
GET [CURRENT] CONFIGURATION:
0000: 00 40 00 00 00 41 00 00 00 42 00 00 00 43 00 00
00 50 00 00 00 12 00 00 00 11 00 00 00 15 00 00
00 16 00 00 00 14 01 00 00 13 01 00 00 1a 00 00
00 1b 00 00 00 2b 00 00 00 10 01 00 00 09 00 00
00 0a 00 00 00 08 00 00 00 02 00 00
...
READ DISC INFORMATION: 00 20 11 01 1b 1b 1b 20 00 00 00 00 00 00 00 00
...
READ TRACK INFORMATION[#1]: 00 2e 01 01 00 04 21 02 00 00 00 00 00 00 00
00
...
Regrettably it only works for DVD. But most of
the commands may be applied to CD to.
The table-of-content of a CD should be examined
via the existing capabilities of libcdio.
For determining media manufacturers and product
ids, be invited to make use of:
http://libburnia-project.org/browser/libburn/trunk/doc/mediainfo.txt
Be aware that examining media has the potential
to spoil ongoing burn runs on CD and DVD-R[W].
One should use libcdio access mode
MMC_RDWR_EXCL
if one has to expect the presence of burn
programs. Well, if the burn program participates
in a locking protocol at all. cdrecord does not,
afaik.
growisofs (but not dvd+rw-mediainfo), wodim,
libcdio (MMC_RDWR_EXCL), and libburn use
open(O_EXCL) on Linux. This is a nearly
undocumented feature of device files which
re-uses a standard open() flag for other
purposes. Cough.
On FreeBSD, libcdio and libburn use flock(2).
I hope to get growisofs into that club, too.
... or to get better locking by the system
developers. FreeBSD tapes are said to be
auto-locking for exclusive access.
Have a nice day :)
Thomas
- mmc_get_discmode (Was Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio), Rocky Bernstein, 2010/01/29
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/29
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/30
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/30
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/30
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/30
- [Libcdio-devel] Re: Submission of new mmc function for libcdio,
Thomas Schmitt <=
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Frank Endres, 2010/01/31
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/31
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/31
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/31
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/31
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/31
- [Libcdio-devel] Re: Submission of new mmc function for libcdio, Thomas Schmitt, 2010/01/31
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Frank Endres, 2010/01/30
- Re: [Libcdio-devel] Re: Submission of new mmc function for libcdio, Rocky Bernstein, 2010/01/30