Began to implement formatting of DVD-RAM and experimentally of BD-RE
This commit is contained in:
parent
4683386de1
commit
65cf751a30
@ -2,7 +2,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" 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.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -1087,10 +1087,10 @@ original cdrecord.
|
|||||||
.TP
|
.TP
|
||||||
.BI stream_recording="on"|"off"
|
.BI stream_recording="on"|"off"
|
||||||
By setting "on" request that compliance to the desired speed setting is
|
By setting "on" request that compliance to the desired speed setting is
|
||||||
preferred over management of write errors. With DVD-RAM this can bring
|
preferred over management of write errors. With DVD-RAM and BD-RE this can
|
||||||
effective write speed near to the nominal write speed of the media. But it
|
bring effective write speed near to the nominal write speed of the media.
|
||||||
will also disable the automatic use of replacement blocks if write errors
|
But it will also disable the automatic use of replacement blocks
|
||||||
occur. It might as well be disliked or ignored by the drive.
|
if write errors occur. It might as well be disliked or ignored by the drive.
|
||||||
.br
|
.br
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
.SS
|
.SS
|
||||||
|
@ -3121,13 +3121,23 @@ struct CdrskiN {
|
|||||||
int no_blank_appendable;
|
int no_blank_appendable;
|
||||||
int blank_format_type; /* 0=blank
|
int blank_format_type; /* 0=blank
|
||||||
bit0-7:
|
bit0-7:
|
||||||
1=format_overwrite
|
1=format_overwrite for DVD+RW, DVD-RW
|
||||||
bit8-15: bit0-7 of burn_disc_format(flag)
|
bit8-15: bit0-7 of burn_disc_format(flag)
|
||||||
bit8 = write zeros after formatting
|
bit8 = write zeros after formatting
|
||||||
bit9 = insist in size 0
|
bit9 = insist in size 0
|
||||||
bit10= format to maximum available size
|
bit10= format to maximum available size
|
||||||
|
bit11= - reserved -
|
||||||
|
bit12= - reserved -
|
||||||
|
bit13= - reserved -
|
||||||
2=deformat_sequential (blank_fast might matter)
|
2=deformat_sequential (blank_fast might matter)
|
||||||
3=format (= format_overwrite restricted to DVD+RW)
|
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() */
|
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 *verb= "blank", *presperf="blanking", *fmt_text= "...";
|
||||||
char profile_name[80];
|
char profile_name[80];
|
||||||
static char fmtp[][40]= {
|
static char fmtp[][40]= {
|
||||||
"format_default", "format_overwrite", "deformat_sequential"};
|
"format_default", "format_overwrite", "deformat_sequential",
|
||||||
static int fmtp_max= 2;
|
"format_defectmgt"};
|
||||||
|
static int fmtp_max= 3;
|
||||||
|
|
||||||
start_time= Sfile_microtime(0); /* will be refreshed later */
|
start_time= Sfile_microtime(0); /* will be refreshed later */
|
||||||
ret= Cdrskin_grab_drive(skin,0);
|
ret= Cdrskin_grab_drive(skin,0);
|
||||||
@ -4965,7 +4976,7 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
||||||
Cdrskin_report_disc_status(skin,s,1);
|
Cdrskin_report_disc_status(skin,s,1);
|
||||||
do_format= skin->blank_format_type & 0xff;
|
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";
|
verb= "format";
|
||||||
presperf= "formatting";
|
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");
|
"cdrskin: HINT : For de-icing use option blank=format_overwrite_full\n");
|
||||||
{ret= 2; goto ex;}
|
{ret= 2; goto ex;}
|
||||||
}
|
}
|
||||||
} else if((profile_number == 0x12 && 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)) {
|
(profile_number == 0x43 && skin->preskin->allow_untested_media)) {
|
||||||
|
|
||||||
|
/* <<<
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: SORRY : Formatting of DVD-RAM and BD-RE is not implemented yet\n");
|
"cdrskin: SORRY : Formatting of DVD-RAM and BD-RE is not implemented yet\n");
|
||||||
{ret= 0; goto ex;}
|
{ret= 0; goto ex;}
|
||||||
|
*/
|
||||||
|
|
||||||
/* <<< for now strictly experimental */
|
/* >>> check whether the current media is already formatted */;
|
||||||
/* DVD-RAM , BD-RE */
|
|
||||||
|
|
||||||
/* >>> check whether the current format is already 0x00 of maximum size */
|
|
||||||
/* >>> demand bit10 of blank_format_type or size>0 */;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr,
|
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;}
|
{ret= 0; goto ex;}
|
||||||
}
|
}
|
||||||
if(s==BURN_DISC_UNSUITABLE)
|
if(s==BURN_DISC_UNSUITABLE)
|
||||||
@ -5110,7 +5133,8 @@ unsupported_format_type:;
|
|||||||
Cdrskin_adjust_speed(skin,0);
|
Cdrskin_adjust_speed(skin,0);
|
||||||
|
|
||||||
#ifndef Cdrskin_extra_leaN
|
#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 */
|
#endif /* ! Cdrskin_extra_leaN */
|
||||||
|
|
||||||
skin->drive_is_busy= 1;
|
skin->drive_is_busy= 1;
|
||||||
@ -5118,9 +5142,10 @@ unsupported_format_type:;
|
|||||||
burn_disc_erase(drive,skin->blank_fast);
|
burn_disc_erase(drive,skin->blank_fast);
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_has_burn_disc_formaT
|
#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,
|
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
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -5154,7 +5179,8 @@ blanking_done:;
|
|||||||
"\rcdrskin: %s done \n",
|
"\rcdrskin: %s done \n",
|
||||||
presperf);
|
presperf);
|
||||||
printf("%s time: %.3fs\n",
|
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);
|
Sfile_microtime(0)-start_time);
|
||||||
}
|
}
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
@ -6967,6 +6993,22 @@ set_blank:;
|
|||||||
skin->blank_format_type= 1;
|
skin->blank_format_type= 1;
|
||||||
skin->blank_format_size= 0;
|
skin->blank_format_size= 0;
|
||||||
skin->preskin->demands_cdrskin_caps= 1;
|
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) {
|
} else if(strcmp(cpt,"deformat_sequential")==0) {
|
||||||
skin->do_blank= 1;
|
skin->do_blank= 1;
|
||||||
skin->blank_format_type= 2;
|
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