From 71c490d0aea6f53c26c61986ffd3fa2a42f87f2f Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 7 Mar 2007 15:13:25 +0000 Subject: [PATCH] Some adjustments for DVD+R recording --- cdrskin/README | 22 ++++++++++++---------- cdrskin/cdrskin.1 | 21 +++++++++++++-------- cdrskin/cdrskin_timestamp.h | 2 +- doc/cookbook.txt | 12 +++++++++--- libburn/write.c | 3 ++- 5 files changed, 37 insertions(+), 23 deletions(-) diff --git a/cdrskin/README b/cdrskin/README index b574006..f074ae3 100644 --- a/cdrskin/README +++ b/cdrskin/README @@ -174,13 +174,13 @@ Burn image file my_image.iso to media cdrskin -v dev=0,1,0 speed=12 fs=8m driveropts=burnfree padsize=300k \ -eject my_image.iso -Write several sessions to the same CD or DVD-R[W] +Write multi-session to the same CD , DVD-R[W] or DVD+R cdrskin dev=/dev/hdc padsize=300k -multi 1.iso cdrskin dev=/dev/hdc padsize=300k -multi -tao 2.iso cdrskin dev=/dev/hdc padsize=300k -multi -tao 3.iso cdrskin dev=/dev/hdc padsize=300k -tao 4.iso -Get CD or DVD-R[W] multi-session info for option -C of program mkisofs: +Get multi-session info for option -C of program mkisofs: c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null) mkisofs ... -C "$c_values" ... @@ -223,13 +223,11 @@ Run a backup : Restrictions -The major restrictions are lifted now: audio, TAO, multi-session do work. - -Many cdrecord options are still unsupported, though. +Many cdrecord options are still unsupported. If you have use cases for them, please report your wishes and expectations. -DVD support is restricted to single layer overwriteable DVD (-RAM, +RW, -RW) -for now. +DVD support is restricted to single layer DVD for now. Double layer media +are implemented but untested. @@ -244,9 +242,6 @@ Do not bother Joerg Schilling with any cdrskin problems. cdrskin does not contain any bytes copied from cdrecord's sources. Many bytes have been copied from the message output of cdrecord runs, though. I am thankful to Joerg Schilling for every single one of them. - -Actually i, Thomas Schmitt, am a devoted user of cdrecord via my project -scdbackup which still runs a bit better with cdrecord than with cdrskin. TAO. I have the hope that Joerg feels more flattered than annoyed by cdrskin. Many thanks to Andy Polyakov for his dvd+rw-tools @@ -475,6 +470,13 @@ Incremental Streaming afterwards. So blank=fast will do full blanking. blank=deformat_sequential_quickest is faster but might yield DAO-only media. + DVD+R + +From the view of cdrskin they behave much like DVD-R. Each track gets wrapped +into an own session, though. + +------------------------------------------------------------------------------ + Special compilation variations You may get a (super fat) statically linked binary by : diff --git a/cdrskin/cdrskin.1 b/cdrskin/cdrskin.1 index 07bc798..8d310aa 100644 --- a/cdrskin/cdrskin.1 +++ b/cdrskin/cdrskin.1 @@ -171,10 +171,12 @@ unpredicted length and to keep media appendable by option The only restriction towards CD-R[W] is the lack of support for -audio tracks. Multiple tracks per session are permissible. .br -The write modes for DVD+R both resemble DVD-R Incremental Streaming except -that with DVD+R each track gets wrapped in an own session. -sao does -reserve a track size whereas -tao writes the tracks open ended. They do not -make much difference in respect to the result, though. +The write modes for DVD+R resemble those with DVD-R except that with DVD+R +each track gets wrapped in an own session. +.br +Quite deliberately write mode -sao insists in the tradition of a predicted +track size and blank media, whereas -tao writes the tracks open ended and +allows appendable media. .br Currently DVD+R are always kept appendable regardless wether -multi is given or not. This might change in future so it is strongly advised to already now @@ -661,8 +663,11 @@ This option is only needed for revoking eventual --ignore_signals or .TP .BI \--allow_untested_media Enable the use of media profiles which have been implemented but not yet -tested. Currently this applies to : profile 0015h , DVD-R/DL Sequential -(will not allow -multi) and to profile 002Bh, DVD+R/DL. +tested. Currently this applies to : +.br +Profile 0015h , DVD-R/DL Sequential (will not allow -multi). +.br +Profile 002Bh , DVD+R/DL. .br If you really test such media, then please report the outcome on libburn-hackers@pykix.org @@ -796,7 +801,7 @@ cdrskin -v dev=0,1,0 fs=32m speed=8 \\ .br -tao padsize=300k - .SS -.B Write several sessions to the same CD or DVD-R[W]: +.B Write multi-session to the same CD, DVD-R[W] or DVD+R: .br cdrskin dev=/dev/hdc -v padsize=300k -multi -tao 1.iso .br @@ -806,7 +811,7 @@ cdrskin dev=/dev/hdc -v padsize=300k -multi -tao 3.iso .br cdrskin dev=/dev/hdc -v padsize=300k -tao 4.iso .SS -.B Get CD or DVD-R[W] multi-session info for option -C of program mkisofs: +.B Get multi-session info for option -C of program mkisofs: .br c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null) .br diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 1ab28d3..b84752d 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2007.03.06.205312" +#define Cdrskin_timestamP "2007.03.07.151514" diff --git a/doc/cookbook.txt b/doc/cookbook.txt index 693a97f..3875c31 100644 --- a/doc/cookbook.txt +++ b/doc/cookbook.txt @@ -704,6 +704,7 @@ track and it demands an exactly predicted track size. - Obtaining a Table Of Content from DVD-R[W] - Hearsay about DVD-R/DL (Dual Layer) + ------------------------------------------------------------------------------- About overwriteable, blank, appendable and finalized DVD-R[W] media : @@ -872,6 +873,7 @@ No further finalization is necessary. (I.e. no 5Bh CLOSE TRACK SESSION.) ------------------------------------------------------------------------------- Obtaining DVD-R[W] multi-session info for extending ISO-9660 filesystems : +(valid for DVD+R too) Like with CD it is necessary to obtain the two numbers for mkisofs option -C in order to prepare a ISO-9660 filesystem image which by its inner pointers @@ -924,7 +926,8 @@ Session from 51h READ DISC INFORMATION. ------------------------------------------------------------------------------- -Obtaining a Table Of Content from DVD-R[W] : +Obtaining a Table Of Content from DVD-R[W]: +(valid for DVD+R too) The raw TOC entries from 43h READ TOC/PMA/ATIP Format 0010b as described with CD media are not available with non-CD. @@ -1005,10 +1008,13 @@ DVD+R/DL 002bh - About empty, appendable and finalized DVD+R - Writing a Pseudo Session to DVD+R -- >>> Obtaining multi-session info for extending ISO-9660 filesystems -- >>> Obtaining a Table Of Content from CD - >>> Hearsay about DVD+R/DL (Dual Layer) : +The following two chapters of the Sequential DVD-R[W] Cookbook are valid for +DVD+R media too: +- Obtaining DVD-R[W] multi-session info for extending ISO-9660 filesystems +- Obtaining a Table Of Content from DVD-R[W] + ------------------------------------------------------------------------------- About blank, appendable and finalized DVD+R : diff --git a/libburn/write.c b/libburn/write.c index 5303a7a..627fcac 100644 --- a/libburn/write.c +++ b/libburn/write.c @@ -1029,7 +1029,8 @@ int burn_disc_open_track_dvd_plus_r(struct burn_write_opts *o, /* ts A70214 : eventually adjust already expanded size of track */ burn_track_apply_fillup(s->track[tnum], d->media_capacity_remaining,1); - if (o->write_type == BURN_WRITE_SAO) { + if (o->write_type == BURN_WRITE_SAO && + ! burn_track_is_open_ended(s->track[tnum])) { /* Round track size up to 32 KiB and reserve track */ size = ((off_t) burn_track_get_sectors(s->track[tnum])) * (off_t) 2048;