From 5c789efbb7ad2f48f5e53201a7bc5d43307de0c8 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Thu, 8 Feb 2007 14:10:05 +0000 Subject: [PATCH] Finally made tests with DVD-R. They burn indeed like DVD-RW. --- libburn/trunk/README | 32 +++++++++++++++++++++++--------- libburn/trunk/cdrskin/README | 23 ++++++----------------- libburn/trunk/cdrskin/cdrskin.1 | 16 +++++++++------- libburn/trunk/doc/comments | 26 ++++++++++++++++---------- 4 files changed, 54 insertions(+), 43 deletions(-) diff --git a/libburn/trunk/README b/libburn/trunk/README index 83c2464f..375655ac 100644 --- a/libburn/trunk/README +++ b/libburn/trunk/README @@ -54,7 +54,8 @@ See README file there. Overview of libburnia.pykix.org libburnia.pykix.org is an open-source software project for reading, mastering -and writing optical discs. For now this means only CD-R and CD-RW. +and writing optical discs. +For now this means only CD media and all single layer DVD media except DVD+R. The project comprises of several more or less interdependent parts which together strive to be a usable foundation for application development. @@ -66,10 +67,10 @@ we would need : login on a development machine resp. a live OS on CD or DVD, advise from a system person about the equivalent of Linux sg or FreeBSD CAM, volunteers for testing of realistic use cases. -We do have a workable code base for burning data CDs, though. The burn API is -quite comprehensively documented and can be used to build a presentable -application. -We do have a functional binary which emulates parts of cdrecord in order to +We have a workable code base for burning CD and most single layer DVD, though. +The burn API is quite comprehensively documented and can be used to build a +presentable application. +We have a functional binary which emulates parts of cdrecord in order to prove that usability, and in order to allow you to explore libburnia's scope by help of existing cdrecord frontends. @@ -78,20 +79,25 @@ The project components (list subject to growth, hopefully): - libburn is the library by which preformatted data get onto optical media. It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or /dev/hdX (e.g. on kernel 2.6). - libburn is the foundation of our cdrecord emulation. + libburn is the foundation of our cdrecord emulation. Its code is + independent of cdrecord. Its DVD capabilities are learned from + studying the code of dvd+rw-tools and MMC-5 specs. No code but only + the pure SCSI knowledge has been taken from dvd+rw-tools, though. - libisofs is the library to pack up hard disk files and directories into a - ISO 9660 disk image. This may then be brought to CD via libburn. + ISO 9660 disk image. This may then be brought to media via libburn. libisofs is to be the foundation of our upcoming mkisofs emulation. - cdrskin is a limited cdrecord compatibility wrapper for libburn. Cdrecord is a powerful GPL'ed burn program included in Joerg Schilling's cdrtools. cdrskin strives to be a second source for - the services traditionally provided by cdrecord. + the services traditionally provided by cdrecord. Additionally it + provides libburn's DVD capabilities, where only -sao is compatible + with cdrecord. cdrskin does not contain any bytes copied from cdrecord's sources. Many bytes have been copied from the message output of cdrecord runs, though. - See cdrskin/README for more. + See cdrskin/README and man cdrskin/cdrskin.1 for more. - test is a collection of application gestures and examples given by the authors of the library features. The main API example for libburn @@ -178,6 +184,14 @@ Project history as far as known to me: libburn, is now called libburnia. For the origin of this name, see http://en.wikipedia.org/wiki/Liburnians . +- 16th January 2007 release of libburn-0.3.0 and cdrskin-0.3.0 . Now the scope + is widened to a first class of DVD media: overwriteable single layer types + DVD-RAM, DVD+RW, DVD-RW. This is not a cdrecord emulation but rather inspired + by dvd+rw-tools' "poor man" writing facility for this class of media. + Taking a bow towards Andy Polyakov. + +- Upcoming release will cover sequential DVD-RW and DVD-R. + ------------------------------------------------------------------------------ diff --git a/libburn/trunk/cdrskin/README b/libburn/trunk/cdrskin/README index 31cb59aa..126ddcd8 100644 --- a/libburn/trunk/cdrskin/README +++ b/libburn/trunk/cdrskin/README @@ -420,25 +420,25 @@ into the format of the burned data. Be advised to use growisofs for the task of maintaining extendable ISO-Filesystems on DVD+RW. - DVD-RW + DVD-RW and DVD-R DVD-RW are usable if formatted to state "Restricted Overwrite" or if in state -"Sequential Recording". +"Sequential Recording". DVD-R are always in sequential state. "Sequential" is the state of unused media and of media previously blanked or written by cdrecord. dvd+rw-format -blank can also achieve this state. The according cdrskin option is blank=deformat_sequential . If "Incremental Streaming" is available, then sequential media are capable -of multi-session like CD-RW. (But not capable of -audio recording.) +of multi-session like CD-R[W]. (But not capable of -audio recording.) This means they need option -multi to stay appendable, need to be blanked to be writeable from start, return useable info with -toc and -msinfo, eventually perform appending automatically. Without "Incremental Streaming" offered by the drive, only write mode DAO is -available with sequential DVD-RW. It only works with blank media, allows only +available with sequential DVD-R[W]. It only works with blank media, allows only one single track, no -multi, and demands a fixely predicted track size. -(growisofs uses it with DVD-RW if option -dvd-compat is given.) +(growisofs uses it with DVD-R[W] if option -dvd-compat is given.) -Overwriteable DVD behave much like DVD+RW. "Restricted" refers only to the +Overwriteable DVD-RW behave much like DVD+RW. "Restricted" refers only to the granularity of random access and block size which have always to be aligned to full 32 kB. Sequential DVD-RW are converted into overwriteable DVD-RW by cdrskin dev=... -v blank=format_overwrite @@ -475,17 +475,6 @@ Incremental Streaming afterwards. So blank=fast will do full blanking. blank=deformat_sequential_quickest is faster but might yield DAO-only media. - DVD-R - -The specs state that DVD-R behave like sequential DVD-RW except the capability -to get blanked or formatted. Thus they should be useable like CD-R media (but -without -audio). -Blank DVD-R media are accepted as suitable by cdrskin on my drives. -I got only a few of those one-time recordable media and no real use case. -So i prefer to start burning my DVD-R only at the end of my endeavor about -sequential DVD. There's still plenty to do with DVD-RW testing. - - Special compilation variations You may get a (super fat) statically linked binary by : diff --git a/libburn/trunk/cdrskin/cdrskin.1 b/libburn/trunk/cdrskin/cdrskin.1 index a1943e67..5b61b52a 100644 --- a/libburn/trunk/cdrskin/cdrskin.1 +++ b/libburn/trunk/cdrskin/cdrskin.1 @@ -2,7 +2,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH CDRSKIN 1 "February 1, 2007" +.TH CDRSKIN 1 "February 8, 2007" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -44,9 +44,11 @@ or in Session at Once mode for seamless tracks. .br Multi session on CD (follow-up sessions in TAO only) .br -and on DVD-RW (untested yet: on DVD-R). +and on DVD-RW or DVD-R (in Incremental write mode only). .br -Burning of a single data track to DVD+RW, DVD-RW, DVD-RAM. +Single session on DVD-RW or DVD-R (Disk-at-once) +.br +or on overwriteable DVD+RW, DVD-RW, DVD-RAM. .br Bus scan, burnfree, speed options, retrieving media info, padding, fifo. .br @@ -125,13 +127,13 @@ Multiple cycles of blanking and overwriting with random numbers might be. --------------- .br Note: The support for sequentially recordable media is still emerging. -DVD-R have not been tested yet. .br --------------- .br -Currently only DVD-RW (and most probably DVD-R) can be used for the Sequential -recording model. DVD-RW must be in state "Sequential Recording". The media must -be either blank or appendable. Newly purchased DVD-RW media are in this state. +Currently only DVD-RW and DVD-R can be used for the Sequential recording model. +DVD-RW must be in state "Sequential Recording". +The media must be either blank or appendable. +Newly purchased DVD-RW and DVD-R media are in this state. Used DVD-RW get into blank sequential state by option .B blank=deformat_sequential . .br diff --git a/libburn/trunk/doc/comments b/libburn/trunk/doc/comments index 257e68c0..cce58be6 100644 --- a/libburn/trunk/doc/comments +++ b/libburn/trunk/doc/comments @@ -6,9 +6,9 @@ @section intro Introduction Libburnia is an open-source project for reading, mastering and writing -optical discs. For now this means CD-R, CD-RW, DVD-RAM, DVD+RW, DVD-RW. -DVD-R is untested yet. +optical discs. For now this means CD-R, CD-RW, DVD-RAM, DVD+RW, DVD-RW, DVD-R. +Not supported yet are DVD+R, any dual layer media, HD-DVD, BD (blue ray). The project comprises of several more or less interdependent parts which together strive to be a usable foundation for application development. @@ -20,9 +20,9 @@ we would need : login on a development machine resp. a live OS on CD or DVD, advise from a system person about the equivalent of Linux sg or FreeBSD CAM, volunteers for testing of realistic use cases. -We have a workable code base for burning data and audio CDs. The burn API is -quite comprehensively documented and can be used to build a presentable -application. +We have a workable code base for burning data and audio CDs and many DVD types. +The burn API is quite comprehensively documented and can be used to build a +presentable application. We have a functional binary which emulates the core use cases of cdrecord in order to prove that usability, and in order to allow you to explore libburn's scope by help of existing cdrecord frontends. @@ -32,7 +32,10 @@ scope by help of existing cdrecord frontends. - libburn is the library by which preformatted data get onto optical media. It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or /dev/hdX (e.g. on kernel 2.6). - libburn is the foundation of our cdrecord emulation. + libburn is the foundation of our cdrecord emulation. Its code is + independent of cdrecord. Its DVD capabilities are learned from + studying the code of dvd+rw-tools and MMC-5 specs. No code but only + the pure SCSI knowledge has been taken from dvd+rw-tools, though. - libisofs is the library to pack up hard disk files and directories into a ISO 9660 disk image. This may then be brought to CD via libburn. @@ -41,15 +44,18 @@ scope by help of existing cdrecord frontends. - cdrskin is a limited cdrecord compatibility wrapper for libburn. cdrecord is a powerful GPL'ed burn program included in Joerg Schilling's cdrtools. cdrskin strives to be a second source for - the services traditionally provided by cdrecord. + the services traditionally provided by cdrecord. Additionally it + provides libburn's DVD capabilities, where only -sao is compatible + with cdrecord. cdrskin does not contain any bytes copied from cdrecord's sources. Many bytes have been copied from the message output of cdrecord runs, though. See cdrskin/README for more. - "test" is a collection of application gestures and examples given by the - authors of the library features. The main API example of libburn - is named test/libburner.c . + authors of the library features. The burn API example of libburn + is named test/libburner.c . The API for media information inquiry is + demonstrated in test/telltoc.c . Explore these examples if you look for inspiration. We plan to be a responsive upstream. Bear with us. @@ -83,7 +89,7 @@ languages and development tools. libburner is a minimal demo application for the library libburn (see: libburn/libburn.h) as provided on http://libburn.pykix.org . It can list the available devices, can blank a CD-RW or DVD-RW and -can burn to CD-R, CD-RW, DVD-RAM, DVD+RW, DVD-RW. +can burn to CD-R, CD-RW, DVD-RAM, DVD+RW, DVD-RW, DVD-R. It's main purpose, nevertheless, is to show you how to use libburn and also to serve the libburnia team as reference application. libburner does indeed