New blank type format_if_needed
This commit is contained in:
parent
43b6ad6008
commit
44368aef6c
@ -36,6 +36,8 @@ You do not need to be superuser for its daily usage.
|
|||||||
.br
|
.br
|
||||||
Blanking of CD-RW and DVD-RW.
|
Blanking of CD-RW and DVD-RW.
|
||||||
.br
|
.br
|
||||||
|
Formatting of DVD-RW, DVD+RW, DVD-RAM, experimentally BD-RE.
|
||||||
|
.br
|
||||||
Burning of data or audio tracks to CD,
|
Burning of data or audio tracks to CD,
|
||||||
.br
|
.br
|
||||||
either in versatile Track at Once mode (TAO)
|
either in versatile Track at Once mode (TAO)
|
||||||
@ -348,7 +350,7 @@ audio track. Same is done for suffix ".au" and SUN Audio.
|
|||||||
Option -audio may be used only with CD media and not with DVD or BD.
|
Option -audio may be used only with CD media and not with DVD or BD.
|
||||||
.TP
|
.TP
|
||||||
.BI blank= type
|
.BI blank= type
|
||||||
Blank a CD-RW, a DVD-RW, or format a DVD-RW, DVD+RW, DVD-RAM or BD-RE.
|
Blank a CD-RW, DVD-RW, or format a DVD-RW, DVD+RW, DVD-RAM, BD-RE.
|
||||||
This is combinable with burning in the same run of cdrskin.
|
This is combinable with burning in the same run of cdrskin.
|
||||||
The type given with blank= selects the particular behavior:
|
The type given with blank= selects the particular behavior:
|
||||||
.RS
|
.RS
|
||||||
@ -378,6 +380,18 @@ Like blank=deformat_sequential but blanking DVD-RW only minimally.
|
|||||||
This is faster than full blanking but may yield media incapable of
|
This is faster than full blanking but may yield media incapable of
|
||||||
Incremental Streaming (-tao).
|
Incremental Streaming (-tao).
|
||||||
.TP
|
.TP
|
||||||
|
format_if_needed
|
||||||
|
Format a media if it is not overwriteably formatted yet,
|
||||||
|
and if cdrskin supports formatting for the media type,
|
||||||
|
and if formatting will not happen automatically during write.
|
||||||
|
This currently applies to unformatted DVD-RW, DVD-RAM and BD-RE.
|
||||||
|
Eventually the appropriate default formatting is chosen.
|
||||||
|
.br
|
||||||
|
Note: BD-RE currently is only supported with option --allow_untested_media .
|
||||||
|
.br
|
||||||
|
The following formatting types are more specialized to particular
|
||||||
|
media families.
|
||||||
|
.TP
|
||||||
format_overwrite
|
format_overwrite
|
||||||
Format a DVD-RW to "Restricted Overwrite". The user should bring some patience.
|
Format a DVD-RW to "Restricted Overwrite". The user should bring some patience.
|
||||||
.br
|
.br
|
||||||
|
@ -2392,7 +2392,13 @@ return:
|
|||||||
fprintf(stderr,"\tfast\t\tminimally blank the entire disk\n");
|
fprintf(stderr,"\tfast\t\tminimally blank the entire disk\n");
|
||||||
fprintf(stderr,"\tminimal\t\tminimally blank the entire disk\n");
|
fprintf(stderr,"\tminimal\t\tminimally blank the entire disk\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tformat_overwrite\tformat a DVD-RW to \"Restricted Overwrite\"\n");
|
"\tdeformat_sequential\t\tfully blank, even formatted DVD-RW\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"\tdeformat_sequential_quickest\tminimally blank, even DVD-RW\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"\tformat_if_needed\t\tmake overwriteable if needed and possible\n");
|
||||||
|
fprintf(stderr,
|
||||||
|
"\tformat_overwrite\t\tformat a DVD-RW to \"Restricted Overwrite\"\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tformat_overwrite_quickest\tto \"Restricted Overwrite intermediate\"\n");
|
"\tformat_overwrite_quickest\tto \"Restricted Overwrite intermediate\"\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -2400,15 +2406,11 @@ return:
|
|||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tformat_defectmgt[_max|_min|_none]\tformat DVD-RAM or BD-RE\n");
|
"\tformat_defectmgt[_max|_min|_none]\tformat DVD-RAM or BD-RE\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tformat_defectmgt[_cert_on|_cert_off]\tcertification slow|quick\n");
|
"\tformat_defectmgt[_cert_on|_cert_off]\tcertification slow|quick\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tformat_defectmgt_payload_<size>\tformat DVD-RAM or BD-RE\n");
|
"\tformat_defectmgt_payload_<size>\tformat DVD-RAM or BD-RE\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\tformat_by_index_<number>\tformat by index from --list_formats\n");
|
"\tformat_by_index_<number>\t\tformat by index from --list_formats\n");
|
||||||
fprintf(stderr,
|
|
||||||
"\tdeformat_sequential\t\tfully blank, even formatted DVD-RW\n");
|
|
||||||
fprintf(stderr,
|
|
||||||
"\tdeformat_sequential_quickest\tminimally blank, even DVD-RW\n");
|
|
||||||
|
|
||||||
#else /* ! Cdrskin_extra_leaN */
|
#else /* ! Cdrskin_extra_leaN */
|
||||||
|
|
||||||
@ -3164,6 +3166,10 @@ struct CdrskiN {
|
|||||||
gets mapped to 4 with DVD-RAM and BD-RE else to 1,
|
gets mapped to 4 with DVD-RAM and BD-RE else to 1,
|
||||||
bit15 should be set and bit16-23 should contain
|
bit15 should be set and bit16-23 should contain
|
||||||
a usable index number
|
a usable index number
|
||||||
|
6=format_if_needed
|
||||||
|
gets mapped to default variants of specialized
|
||||||
|
formats if the media state requires formatting
|
||||||
|
before writing
|
||||||
bit8-15: bit0-7 of burn_disc_format(flag)
|
bit8-15: bit0-7 of burn_disc_format(flag)
|
||||||
depending on job type
|
depending on job type
|
||||||
*/
|
*/
|
||||||
@ -4905,6 +4911,8 @@ int Cdrskin_list_formats(struct CdrskiN *skin, int flag)
|
|||||||
unsigned dummy;
|
unsigned dummy;
|
||||||
char status_text[80], profile_name[90];
|
char status_text[80], profile_name[90];
|
||||||
|
|
||||||
|
#ifdef Cdrskin_libburn_has_burn_disc_formaT
|
||||||
|
|
||||||
ret= Cdrskin_grab_drive(skin,0);
|
ret= Cdrskin_grab_drive(skin,0);
|
||||||
if(ret<=0)
|
if(ret<=0)
|
||||||
return(ret);
|
return(ret);
|
||||||
@ -4957,6 +4965,14 @@ int Cdrskin_list_formats(struct CdrskiN *skin, int flag)
|
|||||||
ex:;
|
ex:;
|
||||||
Cdrskin_release_drive(skin,0);
|
Cdrskin_release_drive(skin,0);
|
||||||
return(ret);
|
return(ret);
|
||||||
|
|
||||||
|
#else /* Cdrskin_libburn_has_burn_disc_formaT */
|
||||||
|
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: SORRY: libburn is too old to obtain format list info\n");
|
||||||
|
return(2);
|
||||||
|
|
||||||
|
#endif /* Cdrskin_libburn_has_burn_disc_formaT */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5054,14 +5070,16 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
struct burn_progress p;
|
struct burn_progress p;
|
||||||
struct burn_drive *drive;
|
struct burn_drive *drive;
|
||||||
int ret,loop_counter= 0,hint_force= 0,do_format= 0, profile_number= -1;
|
int ret,loop_counter= 0,hint_force= 0,do_format= 0, profile_number= -1;
|
||||||
int wrote_well= 1, format_flag= 0;
|
int wrote_well= 1, format_flag= 0, status, num_formats;
|
||||||
|
off_t size;
|
||||||
|
unsigned dummy;
|
||||||
double start_time;
|
double start_time;
|
||||||
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",
|
||||||
"format_defectmgt", "format_by_index", ""};
|
"format_defectmgt", "format_by_index", "format_if_needed"};
|
||||||
static int fmtp_max= 5;
|
static int fmtp_max= 6;
|
||||||
|
|
||||||
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);
|
||||||
@ -5078,7 +5096,8 @@ 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 || do_format == 4 || do_format == 5) {
|
if(do_format == 1 || do_format == 3 || do_format == 4 || do_format == 5 ||
|
||||||
|
do_format ==6) {
|
||||||
verb= "format";
|
verb= "format";
|
||||||
presperf= "formatting";
|
presperf= "formatting";
|
||||||
}
|
}
|
||||||
@ -5097,11 +5116,37 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
if(do_format)
|
if(do_format)
|
||||||
if(do_format>=0 && do_format<=fmtp_max)
|
if(do_format>=0 && do_format<=fmtp_max)
|
||||||
fmt_text= fmtp[do_format];
|
fmt_text= fmtp[do_format];
|
||||||
if(do_format==5) {
|
if(do_format==5) { /* format_by_index */
|
||||||
if(profile_number == 0x12 || profile_number == 0x43)
|
if(profile_number == 0x12 || profile_number == 0x43)
|
||||||
do_format= 4;
|
do_format= 4;
|
||||||
else
|
else
|
||||||
do_format= 1;
|
do_format= 1;
|
||||||
|
} else if(do_format==6) { /* format_if_needed */
|
||||||
|
/* Find out whether format is needed at all.
|
||||||
|
Eventuelly set up a suitable formatting run
|
||||||
|
*/
|
||||||
|
if(profile_number == 0x14) { /* sequential DVD-RW */
|
||||||
|
do_format= 1;
|
||||||
|
skin->blank_format_type= 1|(1<<8);
|
||||||
|
skin->blank_format_size= 128*1024*1024;
|
||||||
|
} else if(profile_number == 0x12 ||
|
||||||
|
profile_number == 0x43) { /* DVD-RAM , BD-RE */;
|
||||||
|
#ifdef Cdrskin_libburn_has_burn_disc_formaT
|
||||||
|
ret= burn_disc_get_formats(drive, &status, &size, &dummy, &num_formats);
|
||||||
|
if(ret>0 && status!=BURN_FORMAT_IS_FORMATTED) {
|
||||||
|
do_format= 4;
|
||||||
|
skin->blank_format_type= 4|(3<<9); /* default payload size */
|
||||||
|
skin->blank_format_size= 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
if(do_format==6) {
|
||||||
|
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||||
|
ClN(fprintf(stderr,
|
||||||
|
"cdrskin: NOTE : blank=format_if_needed : did not apply formatting\n"));
|
||||||
|
{ret= 2; goto ex;}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(do_format==2) {
|
if(do_format==2) {
|
||||||
@ -7085,22 +7130,26 @@ set_blank:;
|
|||||||
skin->do_blank= 1;
|
skin->do_blank= 1;
|
||||||
skin->blank_fast= 1;
|
skin->blank_fast= 1;
|
||||||
blank_mode= "fast";
|
blank_mode= "fast";
|
||||||
} else if(strcmp(cpt,"format_overwrite")==0) {
|
} else if(strcmp(cpt,"format_if_needed")==0) {
|
||||||
|
skin->do_blank= 1;
|
||||||
|
skin->blank_format_type= 6;
|
||||||
|
skin->preskin->demands_cdrskin_caps= 1;
|
||||||
|
} else if(strcmp(cpt,"format_overwrite")==0) {
|
||||||
skin->do_blank= 1;
|
skin->do_blank= 1;
|
||||||
skin->blank_format_type= 1|(1<<8);
|
skin->blank_format_type= 1|(1<<8);
|
||||||
skin->blank_format_size= 128*1024*1024;
|
skin->blank_format_size= 128*1024*1024;
|
||||||
skin->preskin->demands_cdrskin_caps= 1;
|
skin->preskin->demands_cdrskin_caps= 1;
|
||||||
} else if(strcmp(cpt,"format_overwrite_full")==0) {
|
} else if(strcmp(cpt,"format_overwrite_full")==0) {
|
||||||
skin->do_blank= 1;
|
skin->do_blank= 1;
|
||||||
skin->blank_format_type= 1|(1<<10);
|
skin->blank_format_type= 1|(1<<10);
|
||||||
skin->blank_format_size= 0;
|
skin->blank_format_size= 0;
|
||||||
skin->preskin->demands_cdrskin_caps= 1;
|
skin->preskin->demands_cdrskin_caps= 1;
|
||||||
} else if(strcmp(cpt,"format_overwrite_quickest")==0) {
|
} else if(strcmp(cpt,"format_overwrite_quickest")==0) {
|
||||||
skin->do_blank= 1;
|
skin->do_blank= 1;
|
||||||
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) {
|
} else if(strncmp(cpt,"format_defectmgt",16)==0) {
|
||||||
skin->do_blank= 1;
|
skin->do_blank= 1;
|
||||||
skin->blank_format_type= 4|(3<<9); /* default payload size */
|
skin->blank_format_type= 4|(3<<9); /* default payload size */
|
||||||
skin->blank_format_size= 0;
|
skin->blank_format_size= 0;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2008.04.26.150945"
|
#define Cdrskin_timestamP "2008.04.27.084704"
|
||||||
|
Loading…
Reference in New Issue
Block a user