From 43b6ad6008cb25fbe6d9ada068d1663c86ecef99 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sat, 26 Apr 2008 15:10:35 +0000 Subject: [PATCH] New blank subtypes format_defectmgt_cert_[on|off], on is default --- cdrskin/cdrskin.1 | 48 ++++++++++++++++++++++++------------- cdrskin/cdrskin.c | 16 ++++++++++++- cdrskin/cdrskin_timestamp.h | 2 +- 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/cdrskin/cdrskin.1 b/cdrskin/cdrskin.1 index 0d2ba78..3e611dd 100644 --- a/cdrskin/cdrskin.1 +++ b/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 "April 25, 2008" +.TH CDRSKIN 1 "April 26, 2008" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -364,10 +364,24 @@ fast Minimally blank an entire CD-RW or blank an unformatted DVD-RW. (See also --prodvd_cli_compatible, --grow_overwriteable_iso) .TP +deformat_sequential +Like blank=all but with the additional ability to blank overwriteable DVD-RW. +This will destroy their formatting and make them sequentially recordable. +Another peculiarity is the ability to blank media which appear already blank. +This is similar to option -force but does not try to blank media other than +recognizable CD-RW and DVD-RW. +.br +(Note: blank=deformat_* are not original cdrecord options.) +.TP +deformat_sequential_quickest +Like blank=deformat_sequential but blanking DVD-RW only minimally. +This is faster than full blanking but may yield media incapable of +Incremental Streaming (-tao). +.TP format_overwrite Format a DVD-RW to "Restricted Overwrite". The user should bring some patience. .br -(Note: blank=format_overwrite* are not original cdrecord options.) +(Note: blank=format_* are not original cdrecord options.) .TP format_overwrite_quickest Like format_overwrite without creating a 128 MiB trailblazer session. @@ -396,6 +410,22 @@ The following format_defectmgt_* allow to submit user wishes which nevertheless have to match one of the available formats. These formats are offered by the drive after examining the media. .TP +format_defectmgt_cert_off +Disable the usual media quality certification in order to save time and +format to default size. +The certification setting persists even if subsequent blank= options override +the size of the format selection. +.br +Whether formatting without certification works properly depends much on the +drive. One should check the "Format status:" from --list_formats afterwards. +.TP +format_defectmgt_cert_on +Re-enable the usual media quality certification and format to default size. +The certification setting persists like with format_defectmgt_cert_off. +.br +Whether there happens certification at all depends much on the media state +and the actually selected format descriptor. +.TP format_defectmgt_max Format DVD-RAM or BD-RE to reserve a maximum number of spare blocks. .TP @@ -422,20 +452,6 @@ The numbers after text "Format idx" are the ones to be used with format_by_index_. Format descriptor lists are volatile. Do neither eject nor write the media between the run of --list_formats and the run of blank=format_by_index_ or else you may get a different format than desired. -.TP -deformat_sequential -Like blank=all but with the additional ability to blank overwriteable DVD-RW. -This will destroy their formatting and make them sequentially recordable. -Another peculiarity is the ability to blank media which appear already blank. -This is similar to option -force but does not try to blank media other than -recognizable CD-RW and DVD-RW. -.br -(Note: blank=deformat_sequential* are not original cdrecord options.) -.TP -deformat_sequential_quickest -Like blank=deformat_sequential but blanking DVD-RW only minimally. -This is faster than full blanking but may yield media incapable of -Incremental Streaming (-tao). .RE .TP .BI \-checkdrive diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index c0d664f..7dbce7f 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -2399,6 +2399,8 @@ return: "\tformat_overwrite_full\t\tfull-size format a DVD-RW or DVD+RW\n"); fprintf(stderr, "\tformat_defectmgt[_max|_min|_none]\tformat DVD-RAM or BD-RE\n"); + fprintf(stderr, + "\tformat_defectmgt[_cert_on|_cert_off]\tcertification slow|quick\n"); fprintf(stderr, "\tformat_defectmgt_payload_\tformat DVD-RAM or BD-RE\n"); fprintf(stderr, @@ -3137,6 +3139,7 @@ struct CdrskiN { bit11= - reserved - bit12= - reserved - bit13= - reserved - + bit14= - reserved - bit15= format by index 2=deformat_sequential (blank_fast might matter) 3=format (= format_overwrite restricted to DVD+RW) @@ -3155,6 +3158,7 @@ struct CdrskiN { bit11= - reserved - bit12= - reserved - bit13= try to disable defect management + bit14= - reserved - bit15= format by index 5=format_by_index gets mapped to 4 with DVD-RAM and BD-RE else to 1, @@ -3165,6 +3169,7 @@ struct CdrskiN { */ int blank_format_index; /* bit8-15 of burn_disc_format(flag) */ double blank_format_size; /* to be used with burn_disc_format() */ + int blank_format_no_certify; int do_direct_write; int do_burn; @@ -3327,6 +3332,7 @@ int Cdrskin_new(struct CdrskiN **skin, struct CdrpreskiN *preskin, int flag) o->blank_format_type= 0; o->blank_format_index= -1; o->blank_format_size= 0.0; + o->blank_format_no_certify= 0; o->do_direct_write= 0; o->do_burn= 0; o->tell_media_space= 0; @@ -5244,6 +5250,8 @@ unsupported_format_type:; format_flag|= 16; if(format_flag&128) format_flag|= (skin->blank_format_index&255)<<8; + if(skin->blank_format_no_certify) + format_flag|= 64; burn_disc_format(drive,(off_t) skin->blank_format_size,format_flag); #endif @@ -7108,7 +7116,12 @@ set_blank:; else if(strncmp(cpt,"payload_",8)==0) { skin->blank_format_size= Scanf_io_size(cpt+8,0); skin->blank_format_type= 4; - } + } else if(strcmp(cpt,"cert_off")==0) + skin->blank_format_no_certify= 1; + else if(strcmp(cpt,"cert_on")==0) + skin->blank_format_no_certify= 0; + else + goto unsupported_blank_option; } skin->preskin->demands_cdrskin_caps= 1; } else if(strncmp(cpt,"format_by_index_",16)==0) { @@ -7138,6 +7151,7 @@ set_blank:; /* is handled in Cdrpreskin_setup() */; continue; } else { +unsupported_blank_option:; fprintf(stderr,"cdrskin: FATAL : Blank option '%s' not supported yet\n", cpt); return(0); diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 696720b..cdc2c1a 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2008.04.26.150646" +#define Cdrskin_timestamP "2008.04.26.150945"