Blank sequential DVD-RW, deformat overwriteable DVD-RW
This commit is contained in:
parent
b18b889750
commit
f194aa8d5d
@ -96,7 +96,19 @@ the archivers afio and star. Not suitable seems GNU tar.
|
|||||||
.br
|
.br
|
||||||
CD-R can be initially written only once and eventually extended until they
|
CD-R can be initially written only once and eventually extended until they
|
||||||
get closed (or are spoiled because they are overly full). After that they are
|
get closed (or are spoiled because they are overly full). After that they are
|
||||||
read-only.
|
read-only. Closing is done automatically unless option
|
||||||
|
.B -multi
|
||||||
|
is given which keeps the media appendable.
|
||||||
|
.br
|
||||||
|
There are two write modes,
|
||||||
|
.B -tao
|
||||||
|
and
|
||||||
|
.B -sao .
|
||||||
|
.br
|
||||||
|
-tao allows to use track source of unpredictable length (like stdin) and allows
|
||||||
|
to write further sessions to appendable media. -sao produces audio sessions
|
||||||
|
with seamless tracks but needs predicted track sizes and cannot append sessions
|
||||||
|
to media.
|
||||||
.br
|
.br
|
||||||
CD-RW media can be blanked to make them re-usable for another
|
CD-RW media can be blanked to make them re-usable for another
|
||||||
round of overwriting. Usually
|
round of overwriting. Usually
|
||||||
@ -106,9 +118,9 @@ Blanking damages the previous content but does not
|
|||||||
make it completely unreadable. It is no effective privacy precaution.
|
make it completely unreadable. It is no effective privacy precaution.
|
||||||
Multiple cycles of blanking and overwriting with random numbers might be.
|
Multiple cycles of blanking and overwriting with random numbers might be.
|
||||||
.PP
|
.PP
|
||||||
.B Recordable DVD Media:
|
.B Overwriteable DVD Media:
|
||||||
.br
|
.br
|
||||||
Currently only types DVD+RW, DVD-RW and DVD-RAM can be burned via cdrskin.
|
Currently only types DVD+RW, DVD-RW and DVD-RAM can be overwritten via cdrskin.
|
||||||
.br
|
.br
|
||||||
DVD+RW and DVD-RAM media get treated as blank media regardless wether they
|
DVD+RW and DVD-RAM media get treated as blank media regardless wether they
|
||||||
hold data or not. They need no special initial formatting.
|
hold data or not. They need no special initial formatting.
|
||||||
@ -118,12 +130,44 @@ Speed is counted in DVD units (i.e. 1x = 1,385,000 bytes/second). Currently
|
|||||||
there is no difference between -sao and -tao. If ever, then -tao will be the
|
there is no difference between -sao and -tao. If ever, then -tao will be the
|
||||||
mode which preserves the current behavior.
|
mode which preserves the current behavior.
|
||||||
.br
|
.br
|
||||||
DVD-RW need to be formatted to state "Restricted Overwrite". Then they behave
|
DVD-RW are sold in state "Sequential Recording". To become suitable for the
|
||||||
much like DVD+RW. This formatting can be done by option
|
Overwriteable DVD recoding model they need to get formatted to state
|
||||||
|
"Restricted Overwrite". Then they behave much like DVD+RW. This formatting
|
||||||
|
can be done by option
|
||||||
.B blank=format_overwrite
|
.B blank=format_overwrite
|
||||||
It is necessary for unused media, for media written or blanked by cdrecord,
|
.br
|
||||||
for media which have been written unformatted by growisofs or blanked by
|
Several programs like dvd+rw-format, cdrecord, wodim, or cdrskin option
|
||||||
dvd+rw-format -blank. If in doubt, just give it a try.
|
blank=deformat_sequential can bring a DVD-RW out of overwriteable state so
|
||||||
|
that it has to be formatted again. If in doubt, just give it a try.
|
||||||
|
.PP
|
||||||
|
.B Sequentially Recordable DVD Media:
|
||||||
|
.br
|
||||||
|
---------------
|
||||||
|
.br
|
||||||
|
Note: The support for sequentially recordable media is still emerging.
|
||||||
|
.br
|
||||||
|
DVD-R have not been tested yet. If no Incremental Streaming feature (21h)
|
||||||
|
is offered, then the media is regarded as unsuitable without further
|
||||||
|
explanation. (One can torture DVD-RW to make them offer only DAO (2Fh)).
|
||||||
|
Only single-track sessions have been tested yet. Multi-session works but
|
||||||
|
-toc and -msinfo are not implemented yet.
|
||||||
|
.br
|
||||||
|
---------------
|
||||||
|
.br
|
||||||
|
Currently only DVD-RW (and most probably DVD-R) can be used for the Sequential
|
||||||
|
recording model. DVD-RW must be in state "Sequential Recording". The media must
|
||||||
|
be either blank or appendable. Newly purchased DVD-RW media are in this state.
|
||||||
|
Used DVD-RW get into blank sequential state by option
|
||||||
|
.B blank=deformat_sequential .
|
||||||
|
.br
|
||||||
|
Incremental Streaming is the default write mode if it is offered by the media.
|
||||||
|
It resembles much TAO writing with CD, as it allows track sources of
|
||||||
|
unpredicted length and to keep media appendable by option
|
||||||
|
.B -multi .
|
||||||
|
Only restriction towards CD-RW is the lack of support for -audio tracks.
|
||||||
|
.br
|
||||||
|
(The other write mode, DAO, is not implemented yet. It will allow no -multi and
|
||||||
|
only a single track.)
|
||||||
.PP
|
.PP
|
||||||
.B Drive preparation and addressing:
|
.B Drive preparation and addressing:
|
||||||
.br
|
.br
|
||||||
@ -194,14 +238,15 @@ help
|
|||||||
Print this list of blanking types.
|
Print this list of blanking types.
|
||||||
.TP
|
.TP
|
||||||
all
|
all
|
||||||
Blank an entire CD.
|
Blank an entire CD-RW or an unformatted DVD-RW.
|
||||||
.TP
|
.TP
|
||||||
fast
|
fast
|
||||||
Minimally blank an entire CD.
|
Minimally blank an entire CD-RW or an unformatted DVD-RW.
|
||||||
.TP
|
.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.
|
||||||
(Note: format_overwrite* are not original cdrecord options.)
|
.br
|
||||||
|
(Note: blank=format_overwrite* are not original cdrecord options.)
|
||||||
.TP
|
.TP
|
||||||
format_overwrite_quickest
|
format_overwrite_quickest
|
||||||
Like format_overwrite without creating a 128 MB trailblazer session.
|
Like format_overwrite without creating a 128 MB trailblazer session.
|
||||||
@ -215,8 +260,16 @@ rather than just 128 MB.
|
|||||||
Most traditional formatting is attempted. No data get written.
|
Most traditional formatting is attempted. No data get written.
|
||||||
Much patience is required.
|
Much patience is required.
|
||||||
.br
|
.br
|
||||||
|
This option treats already formatted media even if not option -force is given.
|
||||||
|
.br
|
||||||
For DVD+RW this is the only supported explicit formatting type. It provides
|
For DVD+RW this is the only supported explicit formatting type. It provides
|
||||||
complete "de-icing" so no reader slips on unwritten data areas.
|
complete "de-icing" so no reader slips on unwritten data areas.
|
||||||
|
.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.
|
||||||
|
.br
|
||||||
|
(Note: blank=deformat_sequential is not an original cdrecord option.)
|
||||||
.RE
|
.RE
|
||||||
.TP
|
.TP
|
||||||
.BI \-checkdrive
|
.BI \-checkdrive
|
||||||
@ -591,13 +644,13 @@ cdrskin dev=ATA:1,0,0 -atip
|
|||||||
.br
|
.br
|
||||||
cdrskin dev=/dev/hdc -toc
|
cdrskin dev=/dev/hdc -toc
|
||||||
.SS
|
.SS
|
||||||
.B Make used CD-RW writable again:
|
.B Make used CD-RW or used unformatted DVD-RW writable again:
|
||||||
.br
|
.br
|
||||||
cdrskin -v dev=/dev/sg1 blank=all -eject
|
cdrskin -v dev=/dev/sg1 blank=all -eject
|
||||||
.br
|
.br
|
||||||
cdrskin -v dev=/dev/dvd blank=fast -eject
|
cdrskin -v dev=/dev/dvd blank=fast -eject
|
||||||
.SS
|
.SS
|
||||||
.B Format DVD-RW before first use with cdrskin:
|
.B Format DVD-RW to avoid need for blanking before re-use:
|
||||||
.br
|
.br
|
||||||
cdrskin -v dev=/dev/sr0 blank=format_overwrite
|
cdrskin -v dev=/dev/sr0 blank=format_overwrite
|
||||||
.SS
|
.SS
|
||||||
|
@ -7,7 +7,7 @@ A cdrecord compatible command line interface for libburn.
|
|||||||
|
|
||||||
This project is neither directed against original cdrecord nor does it exploit
|
This project is neither directed against original cdrecord nor does it exploit
|
||||||
any source code of said program. It rather tries to be an alternative method
|
any source code of said program. It rather tries to be an alternative method
|
||||||
to burn CD which is not based on the same code as cdrecord.
|
to burn CD or DVD, which is not based on the same code as cdrecord.
|
||||||
See also : http://scdbackup.sourceforge.net/cdrskin_eng.html
|
See also : http://scdbackup.sourceforge.net/cdrskin_eng.html
|
||||||
|
|
||||||
Interested users of cdrecord are encouraged to contribute further option
|
Interested users of cdrecord are encouraged to contribute further option
|
||||||
@ -33,47 +33,9 @@ The implementation of an option would probably consist of
|
|||||||
See option blank= for an example.
|
See option blank= for an example.
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
About compliance with *strong urge* of API towards burn_drive_scan_and_grab()
|
|
||||||
|
|
||||||
For a more comprehensive example of the advised way to behave with libburn
|
For a more comprehensive example of the advised way to write an application
|
||||||
see test/libburner.c .
|
of libburn see test/libburner.c .
|
||||||
|
|
||||||
cdrskin was the initiator of the whitelist functionality within libburn.
|
|
||||||
Now it has problems to obviously comply with the new API best practice
|
|
||||||
presciptions literally. Therefore this explanation:
|
|
||||||
|
|
||||||
On start it restricts the library to a single drive if it already knows the
|
|
||||||
persistent address by option dev= . This is done with a combination of
|
|
||||||
burn_drive_add_whitelist() and burn_drive_scan(). Not compliant to the
|
|
||||||
literal strong urge but in fact exactly fulfilling the reason for that
|
|
||||||
urge in the API: any scanned drive might be opened exclusively after
|
|
||||||
burn_drive_scan(). It is kernel dependent wether this behavior is on, off
|
|
||||||
or switchable. The sysdamin will want it on - but only for one drive.
|
|
||||||
|
|
||||||
So with dev=... cdrskin complies to the spirit of the strong urge.
|
|
||||||
Without dev=... it has to leave out the whitelist in order to enable bus
|
|
||||||
scanning and implicit drive address 0. A tradition of 9 months shall not
|
|
||||||
be broken. So burns without dev= will stay possible - but harmless only
|
|
||||||
on single drive systems.
|
|
||||||
|
|
||||||
Burns without dev= resp. with dev=number are harmless on multi-drive systems.
|
|
||||||
|
|
||||||
This is because Cdrskin_grab_drive() either drops the unwanted drives or
|
|
||||||
it enforces a restart of the library with the desired drive's persistent
|
|
||||||
address. This restart then really uses the strongly urged function
|
|
||||||
burn_drive_scan_and_grab().
|
|
||||||
Thus, cdrskin complies with the new spirit of API by closing down libburn
|
|
||||||
or by dropping unused drives as soon as the persistent drive address is
|
|
||||||
known and the drive is to be used with a long running operation. To my
|
|
||||||
knowlege all long running operations in cdrskin need a grabbed drive.
|
|
||||||
|
|
||||||
This spaghetti approach seems necessary to keep small the impact of new API
|
|
||||||
urge on cdrskin's stability. cdrskin suffers from having donated the body
|
|
||||||
parts which have been transplanted to libburn in order to create
|
|
||||||
burn_drive_scan_and_grab() . The desired sysadmin friendlyness was already
|
|
||||||
achieved by most cdrskin runs. The remaining problem situations should now
|
|
||||||
be defused by releasing any short time grabbed flocks of drives during the
|
|
||||||
restart of libburn.
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
This program is currently copyright Thomas Schmitt only.
|
This program is currently copyright Thomas Schmitt only.
|
||||||
@ -2388,7 +2350,7 @@ struct CdrskiN {
|
|||||||
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
|
||||||
2=format_sequential (unimplemented yet)
|
2=deformat_sequential (blank_fast might matter)
|
||||||
*/
|
*/
|
||||||
double blank_format_size; /* to be used with burn_disc_format() */
|
double blank_format_size; /* to be used with burn_disc_format() */
|
||||||
|
|
||||||
@ -3900,10 +3862,10 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
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;
|
int wrote_well= 1;
|
||||||
double start_time;
|
double start_time;
|
||||||
char *verb= "blank", *presperf="blanking", *fmt_text= "format_...";
|
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", "format_sequential"};
|
"format_default", "format_overwrite", "deformat_sequential"};
|
||||||
static int fmtp_max= 2;
|
static int fmtp_max= 2;
|
||||||
|
|
||||||
start_time= Sfile_microtime(0); /* will be refreshed later */
|
start_time= Sfile_microtime(0); /* will be refreshed later */
|
||||||
@ -3921,7 +3883,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,0);
|
Cdrskin_report_disc_status(skin,s,0);
|
||||||
do_format= skin->blank_format_type & 0xff;
|
do_format= skin->blank_format_type & 0xff;
|
||||||
if(do_format) {
|
if(do_format == 1) {
|
||||||
verb= "format";
|
verb= "format";
|
||||||
presperf= "formatting";
|
presperf= "formatting";
|
||||||
}
|
}
|
||||||
@ -3938,29 +3900,28 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
}
|
}
|
||||||
#endif /* Cdrskin_libburn_has_pretend_fulL */
|
#endif /* Cdrskin_libburn_has_pretend_fulL */
|
||||||
|
|
||||||
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!=1) {
|
|
||||||
|
|
||||||
/* >>> other formats to come. At least _sequential */;
|
if(do_format==2) {
|
||||||
|
/* Forceful blanking to Sequential Recording for DVD-R[W] and CD-RW */
|
||||||
|
|
||||||
fprintf(stderr,
|
if(!(profile_number == 0x14 || profile_number == 0x13 ||
|
||||||
"cdrskin: SORRY : only blank=%s is implemented yet\n",fmtp[1]);
|
profile_number == 0x11 || profile_number == 0x0a))
|
||||||
return(0);
|
|
||||||
} else if(profile_number == 0x14) { /* DVD-RW sequential */
|
|
||||||
if(do_format!=1)
|
|
||||||
goto unsupported_format_type;
|
goto unsupported_format_type;
|
||||||
} else if(profile_number == 0x13) { /* DVD-RW restricted overwrite */
|
if(s==BURN_DISC_UNSUITABLE)
|
||||||
if(do_format==1 && skin->force_is_set) {
|
|
||||||
/* ok */;
|
|
||||||
} else if(do_format!=1) {
|
|
||||||
unsupported_format_type:;
|
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: SORRY : blank=%s : unsupported format and/or media type\n",
|
"cdrskin: NOTE : blank=%s accepted not yet suitable media\n",
|
||||||
fmt_text);
|
fmt_text);
|
||||||
return(0);
|
|
||||||
} else {
|
} else if (do_format==1) {
|
||||||
|
/* Formatting to become overwriteable for DVD-RW and DVD+RW */
|
||||||
|
|
||||||
|
if(profile_number == 0x14) { /* DVD-RW sequential */
|
||||||
|
/* ok */;
|
||||||
|
} else if(profile_number == 0x13) { /* DVD-RW restricted overwrite */
|
||||||
|
if(!(skin->force_is_set || ((skin->blank_format_type>>8)&4))) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: NOTE : blank=format_... : media is already formatted\n");
|
"cdrskin: NOTE : blank=format_... : media is already formatted\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -3968,15 +3929,11 @@ unsupported_format_type:;
|
|||||||
return(2);
|
return(2);
|
||||||
}
|
}
|
||||||
} else if(profile_number == 0x1a) { /* DVD+RW */
|
} else if(profile_number == 0x1a) { /* DVD+RW */
|
||||||
if(do_format!=1)
|
|
||||||
goto unsupported_format_type;
|
|
||||||
if(!((skin->blank_format_type>>8)&4)) {
|
if(!((skin->blank_format_type>>8)&4)) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: NOTE : blank=format_... : DVD+RW do not need this\n");
|
"cdrskin: NOTE : blank=format_... : DVD+RW do not need this\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: HINT : For de-icing use option blank=format_overwrite_full");
|
"cdrskin: HINT : For de-icing use option blank=format_overwrite_full");
|
||||||
fprintf(stderr,
|
|
||||||
"cdrskin: HINT : If you really want to re-format, add option -force\n");
|
|
||||||
return(2);
|
return(2);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -3989,7 +3946,8 @@ unsupported_format_type:;
|
|||||||
"cdrskin: NOTE : blank=%s accepted not yet suitable media\n",
|
"cdrskin: NOTE : blank=%s accepted not yet suitable media\n",
|
||||||
fmt_text);
|
fmt_text);
|
||||||
|
|
||||||
} else { /* do_format */
|
} else if(do_format==0) {
|
||||||
|
/* Classical blanking of erasable media */
|
||||||
|
|
||||||
if(s!=BURN_DISC_FULL &&
|
if(s!=BURN_DISC_FULL &&
|
||||||
(s!=BURN_DISC_APPENDABLE || skin->no_blank_appendable)) {
|
(s!=BURN_DISC_APPENDABLE || skin->no_blank_appendable)) {
|
||||||
@ -4015,7 +3973,13 @@ unsupported_format_type:;
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* ! do_format */
|
} else {
|
||||||
|
unsupported_format_type:;
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: SORRY : blank=%s is unsupported with media type %s\n",
|
||||||
|
fmt_text, profile_name);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
if(skin->dummy_mode) {
|
if(skin->dummy_mode) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -4027,11 +3991,11 @@ 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));
|
Cdrskin_wait_before_action(skin,1+(do_format==1));
|
||||||
#endif /* ! Cdrskin_extra_leaN */
|
#endif /* ! Cdrskin_extra_leaN */
|
||||||
|
|
||||||
skin->drive_is_busy= 1;
|
skin->drive_is_busy= 1;
|
||||||
if(do_format==0) {
|
if(do_format==0 || do_format==2) {
|
||||||
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
|
||||||
@ -4074,7 +4038,7 @@ blanking_done:;
|
|||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"\rcdrskin: %s done \n",
|
"\rcdrskin: %s done \n",
|
||||||
presperf);
|
presperf);
|
||||||
printf("%s time: %.3fs\n",(do_format?"Formatting":"Blanking"),
|
printf("%s time: %.3fs\n",(do_format==1?"Formatting":"Blanking"),
|
||||||
Sfile_microtime(0)-start_time);
|
Sfile_microtime(0)-start_time);
|
||||||
}
|
}
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
@ -5159,9 +5123,10 @@ set_blank:;
|
|||||||
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;
|
||||||
} else if(strcmp(cpt,"format_sequential")==0) {/* >>> not yet supported */
|
} 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;
|
||||||
|
skin->blank_fast= 0;
|
||||||
} else if(strcmp(cpt,"help")==0) {
|
} else if(strcmp(cpt,"help")==0) {
|
||||||
/* is handled in Cdrpreskin_setup() */;
|
/* is handled in Cdrpreskin_setup() */;
|
||||||
continue;
|
continue;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2007.01.30.220220"
|
#define Cdrskin_timestamP "2007.01.31.130100"
|
||||||
|
@ -235,9 +235,11 @@ void burn_disc_erase(struct burn_drive *drive, int fast)
|
|||||||
|
|
||||||
/* ts A70103 moved up from burn_disc_erase_sync() */
|
/* ts A70103 moved up from burn_disc_erase_sync() */
|
||||||
/* ts A60825 : allow on parole to blank appendable CDs */
|
/* ts A60825 : allow on parole to blank appendable CDs */
|
||||||
|
/* ts A70131 : allow blanking of overwriteable DVD-RW (profile 0x13) */
|
||||||
if ( ! (drive->status == BURN_DISC_FULL ||
|
if ( ! (drive->status == BURN_DISC_FULL ||
|
||||||
(drive->status == BURN_DISC_APPENDABLE &&
|
(drive->status == BURN_DISC_APPENDABLE &&
|
||||||
! libburn_back_hack_42) ) ) {
|
! libburn_back_hack_42) ||
|
||||||
|
drive->current_profile == 0x13 ) ) {
|
||||||
libdax_msgs_submit(libdax_messenger, drive->global_index,
|
libdax_msgs_submit(libdax_messenger, drive->global_index,
|
||||||
0x00020130,
|
0x00020130,
|
||||||
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
|
LIBDAX_MSGS_SEV_SORRY, LIBDAX_MSGS_PRIO_HIGH,
|
||||||
@ -246,6 +248,10 @@ void burn_disc_erase(struct burn_drive *drive, int fast)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ts A70131 : i get awful results with fast blanking DVD-RW */
|
||||||
|
if (drive->current_profile == 0x13 || drive->current_profile == 0x14)
|
||||||
|
fast = 0;
|
||||||
|
|
||||||
o.drive = drive;
|
o.drive = drive;
|
||||||
o.fast = fast;
|
o.fast = fast;
|
||||||
add_worker(drive, (WorkerFunc) erase_worker_func, &o);
|
add_worker(drive, (WorkerFunc) erase_worker_func, &o);
|
||||||
|
Loading…
Reference in New Issue
Block a user