Added snapshot of emerging sequential DVD-R[W] cookbook

This commit is contained in:
Thomas Schmitt 2007-01-30 20:16:55 +00:00
parent fa792f6a67
commit 0aafc18ac7
1 changed files with 92 additions and 0 deletions

View File

@ -669,5 +669,97 @@ of Intermediate state by 5Bh CLOSE TRACK SESSION with Close Function 010b.
Sequential DVD-R[W] Cookbook
(emerging, still incomplete)
Inspired by Andy Polyakov's ,
backed by reading mmc5r03c.pdf from
and by experiments with drives NEC ND-4570A and LG GSA-4082B.
For by Thomas Schmitt <>
Media type can be recognized by Current Profile from 46h GET CONFIGURATION.
DVD-RW Restricted Overwrite 0013h
DVD-RW Sequential Recording 0014h
Incremental writing :
There are two approaches for writing to sequential DVD-RW. DAO and Incremental.
Incremental writing allows to produce multi-session DVDs. It is indicated
by feature 0021h being marked current in the reply of 46h GET CONFIGURATION.
growisofs inquires 0021h by setting Starting Feature Number to 0x21 and
Allocation Length to 16 in order to get only this one. The feature descriptor
begins at byte 8 of the reply. Its availability is indicated by the Current
Bit. libburn obtains the full feature list for this and other info.
(mmc5r03c.pdf 5.2.2. Feature Descriptor format, 5.3.11 Feature 0021h,
In mode page 05h this method is selected by Write Type 00h.
>>> speed setting
growisofs fetches a mode page 05h template by MODE SENSE and inserts its own
parameters. It sets Multi-session to 11b, unless dvd_compat is nonzero.
libburn composes its mode page 05h from zero and allows control of
Multi-Session by the application.
BUFE Buffer Underrun protection 0=off, 1=on
LS_V Link size valid 1=true
Test Write -dummy mode for writing 0=off, 1=on
Write Type Packet/TAO/SAO/RAW 00h = Incremental (Packet)
Multi-session Wether to keep appendable 00b = finalize(growisofs DAO)
11b = keep appendable
Track Mode Describes frame type 5 [*1]
Data Block Type Layout of payload blocks 8 [*2]
Link Size ??? 16 [*3]
FP Fixed Packet Size Bit 1
Packet Size 16 [*4]
(mmc5r03c.pdf 7.5.4 The Mode Page, Table 17 CONTROL = Track Mode)
(spc3r23.pdf 6.8 MODE SELECT, 7.4.3 Mode parameter header formats)
growisofs takes the Track Mode from 52h READ TRACK INFORMATION, Address/Number
Type 1, Track 1, Track Information Block byte 5 & 0xf.
(mmc5r03.pdf 6.27)
The specs predict that this will be Track Mode 4 ( and also state that
default is 5 ( 4 means: uninterrupted, do not copy. 5 means
increment, do not copy.
8 means: 2048 byte data blocks. growisofs sets this value if Data Mode from
above 52h READ TRACK INFORMATION is 1 or Fh, which is predicted by the specs
to be always true.
growisofs (transport.hxx) sets Link Size to 16 for profiles 0011h and 0014h.
libburn now records the first link size from feature 0021h in its burn_drive
structure. If another link size item is 16, then 16 is used.
growisofs takes Packet Size from 52h. Specs predict it will be 16 (= 32 kB).
The writing process is much like in "Writing a session to CD in TAO mode" :
Next Writeable Address is fetched from the reply of 52h READ TRACK INFORMATION.
Currently full 32 kB buffers get written via 2Ah WRITE.
When writing is done, it is mandatory to force the drive's buffer to media by
(mmc5r03c.pdf, 6.41)
The track has to be closed by 5Bh CLOSE TRACK SESSION Close Function 001b.
growisofs uses the logical track number for that and not FFh like libburn
does with TAO CD. So libburn obtains the Last Track Number in Last Session
from the reply of 51h READ DISC INFORMATION requesting Data Type 000b
"Standard Disc Information".
(mmc5r03c.pdf CLOSE TRACK,
Afterwards 5Bh CLOSE TRACK SESSION Close Function 010b with Logical Track
Number 0 closes the session. It depends on the Multi-Session value in mode
page 05h wether the disc is finalized or stays appendable.
It has not been tested yet wether multiple tracks are permissible in a single