Began to implement formatting of DVD-RAM and experimentally of BD-RE
This commit is contained in:
parent
dbec2d53a3
commit
54f56d1dd2
@ -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 12, 2008"
|
||||
.TH CDRSKIN 1 "April 17, 2008"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
@ -1087,10 +1087,10 @@ original cdrecord.
|
||||
.TP
|
||||
.BI stream_recording="on"|"off"
|
||||
By setting "on" request that compliance to the desired speed setting is
|
||||
preferred over management of write errors. With DVD-RAM this can bring
|
||||
effective write speed near to the nominal write speed of the media. But it
|
||||
will also disable the automatic use of replacement blocks if write errors
|
||||
occur. It might as well be disliked or ignored by the drive.
|
||||
preferred over management of write errors. With DVD-RAM and BD-RE this can
|
||||
bring effective write speed near to the nominal write speed of the media.
|
||||
But it will also disable the automatic use of replacement blocks
|
||||
if write errors occur. It might as well be disliked or ignored by the drive.
|
||||
.br
|
||||
.SH EXAMPLES
|
||||
.SS
|
||||
|
@ -3121,13 +3121,23 @@ struct CdrskiN {
|
||||
int no_blank_appendable;
|
||||
int blank_format_type; /* 0=blank
|
||||
bit0-7:
|
||||
1=format_overwrite
|
||||
1=format_overwrite for DVD+RW, DVD-RW
|
||||
bit8-15: bit0-7 of burn_disc_format(flag)
|
||||
bit8 = write zeros after formatting
|
||||
bit9 = insist in size 0
|
||||
bit10= format to maximum available size
|
||||
bit11= - reserved -
|
||||
bit12= - reserved -
|
||||
bit13= - reserved -
|
||||
2=deformat_sequential (blank_fast might matter)
|
||||
3=format (= format_overwrite restricted to DVD+RW)
|
||||
4=format_defectmgt for DVD-RAM, BD-RE
|
||||
bit8 = write zeros after formatting
|
||||
bit9 = - reserved -
|
||||
bit10= format to maximum available size
|
||||
bit11= - reserved -
|
||||
bit12= - reserved -
|
||||
bit13= try to disable defect management
|
||||
*/
|
||||
double blank_format_size; /* to be used with burn_disc_format() */
|
||||
|
||||
@ -4947,8 +4957,9 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
||||
char *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
||||
char profile_name[80];
|
||||
static char fmtp[][40]= {
|
||||
"format_default", "format_overwrite", "deformat_sequential"};
|
||||
static int fmtp_max= 2;
|
||||
"format_default", "format_overwrite", "deformat_sequential",
|
||||
"format_defectmgt"};
|
||||
static int fmtp_max= 3;
|
||||
|
||||
start_time= Sfile_microtime(0); /* will be refreshed later */
|
||||
ret= Cdrskin_grab_drive(skin,0);
|
||||
@ -4965,7 +4976,7 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
||||
Cdrskin_report_disc_status(skin,s,1);
|
||||
do_format= skin->blank_format_type & 0xff;
|
||||
if(do_format == 1 || do_format == 3) {
|
||||
if(do_format == 1 || do_format == 3 || do_format == 4) {
|
||||
verb= "format";
|
||||
presperf= "formatting";
|
||||
}
|
||||
@ -5025,22 +5036,34 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
||||
"cdrskin: HINT : For de-icing use option blank=format_overwrite_full\n");
|
||||
{ret= 2; goto ex;}
|
||||
}
|
||||
} else if((profile_number == 0x12 && skin->preskin->allow_untested_media) ||
|
||||
(profile_number == 0x43 && skin->preskin->allow_untested_media)) {
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"cdrskin: SORRY : blank=%s for now does DVD-RW and DVD+RW only\n",
|
||||
fmt_text);
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
if(s==BURN_DISC_UNSUITABLE)
|
||||
fprintf(stderr,
|
||||
"cdrskin: NOTE : blank=%s accepted not yet suitable media\n",
|
||||
fmt_text);
|
||||
|
||||
} else if(do_format==4) {
|
||||
/* Formatting and influencing defect management of DVD-RAM , BD-RE */
|
||||
if((profile_number == 0x12 && skin->preskin->allow_untested_media) ||
|
||||
(profile_number == 0x43 && skin->preskin->allow_untested_media)) {
|
||||
|
||||
/* <<<
|
||||
fprintf(stderr,
|
||||
"cdrskin: SORRY : Formatting of DVD-RAM and BD-RE is not implemented yet\n");
|
||||
{ret= 0; goto ex;}
|
||||
*/
|
||||
|
||||
/* <<< for now strictly experimental */
|
||||
/* DVD-RAM , BD-RE */
|
||||
|
||||
/* >>> check whether the current format is already 0x00 of maximum size */
|
||||
/* >>> demand bit10 of blank_format_type or size>0 */;
|
||||
/* >>> check whether the current media is already formatted */;
|
||||
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"cdrskin: SORRY : blank=%s for now does DVD+/-RW only\n",fmt_text);
|
||||
"cdrskin: SORRY : blank=%s for now does DVD-RAM and BD-RE only\n",
|
||||
fmt_text);
|
||||
{ret= 0; goto ex;}
|
||||
}
|
||||
if(s==BURN_DISC_UNSUITABLE)
|
||||
@ -5110,7 +5133,8 @@ unsupported_format_type:;
|
||||
Cdrskin_adjust_speed(skin,0);
|
||||
|
||||
#ifndef Cdrskin_extra_leaN
|
||||
Cdrskin_wait_before_action(skin,1+(do_format==1 || do_format==3));
|
||||
Cdrskin_wait_before_action(skin,
|
||||
1+(do_format==1 || do_format==3 || do_format==4));
|
||||
#endif /* ! Cdrskin_extra_leaN */
|
||||
|
||||
skin->drive_is_busy= 1;
|
||||
@ -5118,9 +5142,10 @@ unsupported_format_type:;
|
||||
burn_disc_erase(drive,skin->blank_fast);
|
||||
|
||||
#ifdef Cdrskin_libburn_has_burn_disc_formaT
|
||||
} else if(do_format==1 || do_format==3) {
|
||||
} else if(do_format==1 || do_format==3 || do_format==4) {
|
||||
burn_disc_format(drive,(off_t) skin->blank_format_size,
|
||||
((skin->blank_format_type>>8)&7) | ((!!skin->force_is_set)<<4));
|
||||
((skin->blank_format_type>>8)&(1|2|4|32)) |
|
||||
((!!skin->force_is_set)<<4));
|
||||
#endif
|
||||
|
||||
} else {
|
||||
@ -5154,7 +5179,8 @@ blanking_done:;
|
||||
"\rcdrskin: %s done \n",
|
||||
presperf);
|
||||
printf("%s time: %.3fs\n",
|
||||
(do_format==1 || do_format==3?"Formatting":"Blanking"),
|
||||
(do_format==1 || do_format==3 || do_format==4 ?
|
||||
"Formatting":"Blanking"),
|
||||
Sfile_microtime(0)-start_time);
|
||||
}
|
||||
fflush(stdout);
|
||||
@ -6967,6 +6993,22 @@ set_blank:;
|
||||
skin->blank_format_type= 1;
|
||||
skin->blank_format_size= 0;
|
||||
skin->preskin->demands_cdrskin_caps= 1;
|
||||
} else if(strncmp(cpt,"format_defectmgt",16)==0) {
|
||||
skin->do_blank= 1;
|
||||
skin->blank_format_type= 4;
|
||||
skin->blank_format_size= 0;
|
||||
skin->preskin->demands_cdrskin_caps= 1;
|
||||
if(cpt[16]=='_') {
|
||||
cpt+= 17;
|
||||
if(strcmp(cpt,"none")==0)
|
||||
skin->blank_format_type|= (1<<13);
|
||||
else if(strcmp(cpt,"max")==0)
|
||||
;
|
||||
else if(strcmp(cpt,"min")==0)
|
||||
skin->blank_format_type|= (1<<10);
|
||||
else if(isdigit(*cpt))
|
||||
skin->blank_format_size= Scanf_io_size(cpt,0);
|
||||
}
|
||||
} else if(strcmp(cpt,"deformat_sequential")==0) {
|
||||
skin->do_blank= 1;
|
||||
skin->blank_format_type= 2;
|
||||
|
@ -1 +1 @@
|
||||
#define Cdrskin_timestamP "2008.04.18.092715"
|
||||
#define Cdrskin_timestamP "2008.04.18.092816"
|
||||
|
Loading…
Reference in New Issue
Block a user