DVD+-RW multisession recording(from developer's perspective)

Hi, all. I’m developing DVD writing feature in embedded system. DVD recorder is connected via ATAPI. DVD recorder is panasonic(matsushita) sw-9586-c.
All I need is 1. multisession writing(ISO9660 file system) 2. erasing if possible. Purpose is archiving of file data to CD/DVD media.

Current system already have had built-in CD writing feature and it works almost perpectly with DVD±R, DVD±R DL by adding minor change in source code(no erasing feature, of course). But for DVD±RW, It looks like totally different story.

  1. DVD-RW
    My first attempt was to write data on a new(blank) media. It works quite fine and multisession was also available.

But after doing quick erase(BLANK command with blank type = 01b), write command returned with sense code 05/64/00 ILLEGAL MODE FOR THIS TRACK. Only with full erase(BLANK command with blank type = 00b) I was able to do multisession writing like I did in CDR/RW media…

But MMC-5 says BLANK command(both full and minimal erasing) makes disc recording mode as sequential recording mode and FORMAT UNIT(format type 00h) command will make it Restricted Overwrite mode… Is it really unable to use incremental writing mode after quick erase? How can I detect whether media can accept incremental writing? (I think using GET CONFIGURATION command with feature code = 0023h may do the things…?)

It looks like FORMAT UNIT command do quite a trick with DVD-RW media. FORMAT CAPACITIES command with DVD-RW media give me some descriptors. (format type 10h, 11h, 12h, 13h, 14h, 15h for recorded media, 10h, 14h, 15h for blank media) But I don’t know how to use them. They looks like have something to do with… but- even without FORMAT UNIT command, I was able to do multisession writing. :confused: (WRITE -> SYNCHRONIZE CACHE -> CLOSE TRACK(RZONE) -> CLOSE SESSION(BORDER)… write mode of write mode page 05h set to 00h incremental writing)

  1. DVD+RW
    My first attempt was same as above, but WRITE command returned with sense code 05/30/10 MEDIUM NOT FORMATTED. After take a short look at MMC-5, I learned DVD+RW media need to be formatted before using it. (Is it right to issue READ FORMAT CAPACITIES command to check whether disc is formatted or not? current descriptor will be returned with descriptor type = 01b for unformatted media and 10b for formatted media).

The problem is… I can’t get Next Writable Address with READ DISC INFORMATION and READ TRACK/RZONE INFORMATION command. I’m also not sure about multisession recording method of DVD+RW media(with ISO9660 file system…).

One test I did - I just force to start writing from 0 on blank(and formatted media) media, without the process of getting NWA. It worked alright, but I don’t know how to do multisession writing after completion of writing(that is, append new data(files) in ISO9660 file system format. Like I did in CDR/RW media).

What is proper sequence of DVD+RW multisession writing? (data will be appended everytime embedded system perform archiving action)
Erasing of DVD+RW only can be achieved with FORMAT UNIT command with format type 26h DVD+RW Basic Format ?

Since this is obviously not a Newbie question, I’ll transfer it to the ‘Optical Storage Technical Discussions’ forum…

I did the same tests as you a few weeks a go. I was told that DVD+RW is treated like a random block device, much like a HDD or a RAMDISK where it’s blocks are always writeable.

I did the same tests as you a few weeks a go. I was told that DVD+RW is treated like a random block device, much like a HDD or a RAMDISK where it’s blocks are always writeable.

That explains a lot :doh: Supporting DVD+RW may be a long work for me since CD/DVD archiving of my system was all done with ISO9660 filesystem. Maybe I need to consider UDF…?

Well thanks for reply!

Hi Wildone,

DVD+RWs and DVD-RW in Restricted Over-write (RO) mode are “over-writables” thus there is no need for multiple sessions and they have no capability for it. They both use different methods to accomplish over-write but from the user or programmer point of view, erasing and writing the new ISO takes place at the same time. These are my favorites because they are easy to implement and quick and easy to use. I’m lazy.

DVD-RW in Sequential mode can be written to with 2 write types; DAO (obviously not multi-session) and Incremental which allows for multi-session which is done the same way as multi-sessions on DVD-Rs. A DVD-RW in sequential mode that is “fully” blanked (as it is “fresh-out-of-the-box”) should take multiple sessions without any problems using the incremental write type.

But a minimally blanked -RW in Sequential mode using incremental will fail to record (even one session) and give you errors every time. Of course a full blanking takes 15-60 minutes. This is the draw-back in doing multi-sessions on DVD-RWs. They really aren’t meant for this purpose in my opinion. DVD-Rs are a much better choice. I think DVD-RWs are really meant for backing up DVD-ROM VIDEOs and can do this with full compatibility in Sequential mode (with DAO write type) or for backing up data (in Restricted Over-write mode). Personally I think incremental write for DVD-RWs is a waste of time.

Formatting & blanking
DVD-RWs out of the box are in sequential mode. To put it in RO mode the easiest way is to format it with type 15h (DVD-RW Quick). Set the Type Dependent Parameter to 16 and number of blocks to zero … yes it works and makes for a super-quick format. You can use get configuration/current profile to verify it has changed from sequential to RO and It is ready to be written to. This same DVD-RW in RO mode can be returned to sequential mode with a quick blank. It is then ready to be written with DAO. Forget about incremental.

> How can I detect whether media can accept incremental writing?
A really good question but it is about my least favorite type for DVD-RWs.
How can you tell if the DVD-RW has been fully blanked is basically the same question. I do not know the answer yet. I have tried several things. Read Track information is supposed to tell us if a disc has been fully or minimally blanked but I get unreliable returns on DVD-RW sequentials. Next I tried doing a test write prior to recording. I use the same write parameter settings and the same write command settings except turn the test write bit on. But minimally blanked sequentials pass the test write then fail in the actual write loop. :frowning: I’m still looking at code mistakes in that one because theoretically it should work. The last idea I can think of (I have not tried this yet) is using the Read Disc Structure command to get the blank status which is written in the RMA.



an added thought …

The main purpose of multi-sessioning is to allow data to be “appended” to a previously recorded disc. This infers that one of the requirements of the archiving is the need to preserve previously recorded data and not have it over-written. Thus +/- R would be the obvious choice. RWs are specifically designed to erase/over-write previously recorded data. In my opinion multi-sessioning is for Rs not RWs. I think multi-sessioning and erase/over-writing serve 2 different purposes. If you can determine which type best suits the requirements of your archiving, then you can decide if it is worth your time implementing multi-sessioning for DVD- sequential RWs.