[Debburn-devel] Do you know a good dvd burner emulator

Maxim Levitsky maximlevitsky at gmail.com
Tue Oct 14 14:27:36 UTC 2008


Thomas Schmitt wrote:
> Hi,
> 
>> My goal is to write a userspace UDF filesystem,
>> that will write both -R and RW.
> 
> UDF provides random access usage models for formatted
> re-usable media. A common approach for CD-R and
> CD-RW would have to use the sequential models,
> nevertheless.
Both are supported.
The fixed packet mode is what is used for RW disks,
they have to be formatted for that.

-R has special support in UDF, so called VAT.
VAT is a table of sectors. All udf structures can reference vat, e.g. 
its first sector, second sector, etc, but first sector of vat is first entry
in this table, and it points to real sector.
The trick is that VAT is always written last on disk, so it is virtually overwriteable
because you can always append new table at end of disk.

So what I need is to be able to write a single large packet at end of disk,
Sessions are supported too, so no problem to open new session. I think this isn't hard.


> 
> 
>> The bulk of the work is writing the filesystem, it isn't easy
>> but I made some progress.
> 
> Our project libburnia has own plans to cover
> the sequential models. They seem quite similar
> to single-session and to multi-session ISO 9660.
> The kernel based efforts seem rather to address
> the formatted media with finely granulated write
> operations.
This isn't the same, UDF is a filesystem, similar a bit to ext2.
in kernel packet support is  very bad, let me explain why:

udf filesystem doesn't treat dvd/cd burners specially, it just sends blocks
to update when it wants to, nether it considers the fact that it isn't possible
to write 2K block on cd, and read/modify/write cycle is expensive.

Thus, this thing works but it is very slow.
I on the other hand want to write a special filesystem that considers those limitations.




> 
> So maybe you want to contact Vreixo Formoso, the
> developer of libisofs, for an exchange of thoughts
> and possible cooperation.
> 
> 
>> You meant that sequential (btw default) mode or RWs is same as -R?
>> This is great.
> 
> Yep. Even cdrecord makes use of "multi-border"
> capabilities meanwhile.
> The Incremental write mode was not mentioned in MMC-3
> but growisofs performs it since several years. In the
> 18 months since libburn gained DVD capabilities i never
> met a DVD burner which was unable to do multi-session
> on DVD-R[W]. (See below for bad news about DVD-RW quality.)
> 
> 
>> If I manage to make reliable support for DVD-R, I hope DVD+R isn't much
>> different.
> 
> Oh it is in several ways.
> But it is one of the few media where MMC-5 gives
> a sketch of writing a session.
> 
> 
>> From your experience how many times -RW  can be overwritten?
>> (is it really 1000? )
> 
> From my experience DVD-RW and DVD drives do not play well
> together.
> I have Verbatim and Ritek 4x DVD-RW which work with a new
> burner for about a month. Then the _burner_ loses the ability
> to write them in a readable way.
> I got 2x Verbatim which work fine in 3 of 4 burners.
> 
> So it is hard to say how long the media live.
> The 2x Verbatims live since 2004.
But how many times you usually record them a day?
> 
> 
>> but I will extend your libburn to add packet writing,
> 
> It would suffice to provide me with use cases and
> testing. I would gladly do the programming work.
Thanks a lot, I will help too.

I sometimes have hard time to contribute to a program because I don't
like the style of program, e.g. C++, or hard and too abstract code.

I like linux-kernel code style, and your project is exactly what I like.

> 
> There are two entangled terms "packet writing".
> 
> One is the family of sequential packet write modes which
> may be chosen by MMC mode page 05h. Among them is TAO 
> (i.e.  one single variable size packet per track) and
> fixed length packet write which seems to be interesting
> for finely granulated sequential writing on CD-R.
> On DVD-R[W] the Incremental writing mode is a fixed
> length packet write mode. It appears much like TAO though.
> DVD+R writes fixed length packets in any case.
> 
> The other "packet writing" is mentioned in popular
> texts about UDF. It clearly refers to (pseudo-)random
> access on formatted re-usable media: MRW (Mt. Rainier CD-RW),
> DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE.
Exactly, and I need both families.
Writing a track in once seems dangerous to me, isn't there a limit (99) on track count?
Also probably there is some overhead. (pregap/postgap?)

I would rather open a track, and write it in chunks (packets), and use variable size packets,
and close it when disk is unmounted.

session probably needs to be closed to, but I think I can leave it open, and close it when user explicitly
asks for that.

(I once had HP CD burner, and it worked that way, it closed session when an option "convert disk
so it can be read in ordinary CD" was selected.


> 
> libburn currently lacks of support for:
> - fixed length packet mode on CD-R[W],
> - blanking and re-using single tracks on multi-track media
> - MRW formatted CD-RW
> - BD-R
> None of them is obscure in respect to specs. I rather
> have no use case resp. test opportunities for them.
> Different is the situation with advanced CD layouts
> like CD-XA, Video-CD, etc. Their specs are proprietary.
> 
So for now no more questions, Thanks,

> 
> Have a nice day :)
Have a nice day too :-)
Happy hacking! :-)




> 
> Thomas
> 

Best regards,
	Maxim Levitsky
> 
> _______________________________________________
> Debburn-devel mailing list
> Debburn-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/mailman/listinfo/debburn-devel




More information about the Debburn-devel mailing list