New option --prodvd_cli_compatible
This commit is contained in:
parent
8dccb584b4
commit
cad7531058
@ -16,8 +16,8 @@
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
cdrskin \- burns preformatted data to CD-R, CD-RW, DVD+/-RW, DVD-RAM
|
||||
via libburn.
|
||||
cdrskin \- burns preformatted data to CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW,
|
||||
DVD-RAM via libburn.
|
||||
.SH SYNOPSIS
|
||||
.B cdrskin
|
||||
.RI [ options | track_source_addresses ]
|
||||
@ -29,7 +29,7 @@ via libburn.
|
||||
.\" respectively.
|
||||
.PP
|
||||
\fBcdrskin\fP is a program that provides some of cdrecord's options
|
||||
in a compatible way for CD media. With DVD it has its own ways for now.
|
||||
in a compatible way for CD media. With DVD it has its own ways.
|
||||
You do not need to be superuser for its daily usage.
|
||||
.PP
|
||||
.B Overview of features:
|
||||
@ -124,12 +124,6 @@ Multiple cycles of blanking and overwriting with random numbers might be.
|
||||
.PP
|
||||
.B Sequentially Recordable DVD Media:
|
||||
.br
|
||||
---------------
|
||||
.br
|
||||
Note: The support for sequentially recordable media is still emerging.
|
||||
.br
|
||||
---------------
|
||||
.br
|
||||
Currently only DVD-RW and 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.
|
||||
@ -254,9 +248,11 @@ Print this list of blanking types.
|
||||
.TP
|
||||
all
|
||||
Blank an entire CD-RW or an unformatted DVD-RW.
|
||||
(See also --prodvd_cli_compatible)
|
||||
.TP
|
||||
fast
|
||||
Minimally blank an entire CD-RW or fully blank an unformatted DVD-RW.
|
||||
Minimally blank an entire CD-RW or blank an unformatted DVD-RW.
|
||||
(See also --prodvd_cli_compatible)
|
||||
.TP
|
||||
format_overwrite
|
||||
Format a DVD-RW to "Restricted Overwrite". The user should bring some patience.
|
||||
@ -389,6 +385,8 @@ is a -RW and gets blanked which causes loss of its content.
|
||||
.br
|
||||
The following sessions can only be written in -tao mode. -multi is prohibited
|
||||
with overwriteable DVD media and with DVD-R[W] DAO write mode.
|
||||
Option --prodvd_cli_compatible eventually makes -multi tolerable but cannot
|
||||
make it work.
|
||||
.br
|
||||
In order to have all filesystem content accessible, the eventual ISO-9660
|
||||
filesystem of a follow-up
|
||||
@ -566,6 +564,17 @@ option which ends by "=". The list is ended by an empty line.
|
||||
Only if used as first command line argument this option prevents reading and
|
||||
interpretation of eventual startup files. See section FILES below.
|
||||
.TP
|
||||
.BI \--prodvd_cli_compatible
|
||||
Activates behavior modifications with some DVD situations which bring cdrskin
|
||||
nearer to the behavior of cdrecord-ProDVD:
|
||||
.br
|
||||
Option -multi with unsuitable media is not an error but simply has no effect.
|
||||
.br
|
||||
Options blank=fast and blank=all deformat overwriteable DVD-RW media.
|
||||
.br
|
||||
Option blank=fast does indeed minmal blanking with DVD-RW. This may yield media
|
||||
which can only do DAO but not Incremental streaming.
|
||||
.TP
|
||||
.BI \--single_track
|
||||
Accept only the last argument of the command line as track source address.
|
||||
.TP
|
||||
|
@ -2012,6 +2012,8 @@ set_dev:;
|
||||
" --no_rc as first argument: do not read startup files\n");
|
||||
printf(" --old_pseudo_scsi_adr use and report literal Bus,Target,Lun\n");
|
||||
printf(" rather than real SCSI and pseudo ATA.\n");
|
||||
printf(" --prodvd_cli_compatible react on some DVD types more like\n");
|
||||
printf(" cdrecord-ProDVD with blank= and -multi\n");
|
||||
printf(
|
||||
" --single_track accept only last argument as source_address\n");
|
||||
|
||||
@ -2349,6 +2351,7 @@ struct CdrskiN {
|
||||
int dummy_mode;
|
||||
int force_is_set;
|
||||
int single_track;
|
||||
int prodvd_cli_compatible;
|
||||
|
||||
int do_devices;
|
||||
|
||||
@ -2488,6 +2491,7 @@ int Cdrskin_new(struct CdrskiN **skin, struct CdrpreskiN *preskin, int flag)
|
||||
o->dummy_mode= 0;
|
||||
o->force_is_set= 0;
|
||||
o->single_track= 0;
|
||||
o->prodvd_cli_compatible= 0;
|
||||
o->do_devices= 0;
|
||||
o->do_scanbus= 0;
|
||||
o->do_checkdrive= 0;
|
||||
@ -4027,7 +4031,8 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
||||
/* Classical blanking of erasable media */
|
||||
|
||||
if(s!=BURN_DISC_FULL &&
|
||||
(s!=BURN_DISC_APPENDABLE || skin->no_blank_appendable)) {
|
||||
(s!=BURN_DISC_APPENDABLE || skin->no_blank_appendable) &&
|
||||
!(profile_number == 0x13 && skin->prodvd_cli_compatible)) {
|
||||
Cdrskin_release_drive(skin,0);
|
||||
if(s==BURN_DISC_BLANK) {
|
||||
fprintf(stderr,
|
||||
@ -4049,7 +4054,8 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
||||
fprintf(stderr,"cdrskin: FATAL : blank=... : media is not erasable\n");
|
||||
return(0);
|
||||
}
|
||||
if(profile_number == 0x14 || profile_number == 0x13)
|
||||
if((profile_number == 0x14 || profile_number == 0x13) &&
|
||||
!skin->prodvd_cli_compatible)
|
||||
skin->blank_fast= 0; /* only with deformat_sequential_quickest */
|
||||
|
||||
} else {
|
||||
@ -4449,7 +4455,7 @@ int Cdrskin_activate_write_mode(struct CdrskiN *skin, enum burn_disc_status s,
|
||||
int profile_number= -1, track_type_1, mixed_mode= 0, unpredicted_size= 0, ret;
|
||||
struct burn_drive_info *drive_info = NULL;
|
||||
char profile_name[80];
|
||||
int might_do_tao= 0, might_do_sao= 1;
|
||||
int might_do_tao= 0, might_do_sao= 1, allows_multi= 1;
|
||||
double fixed_size= 0.0, tao_to_sao_tsize= 0.0, dummy;
|
||||
#ifdef Cdrskin_libburn_has_get_multi_capS
|
||||
struct burn_multi_caps *caps = NULL;
|
||||
@ -4473,10 +4479,12 @@ int Cdrskin_activate_write_mode(struct CdrskiN *skin, enum burn_disc_status s,
|
||||
} else if(ret==0) {
|
||||
fprintf(stderr,
|
||||
"cdrskin: SORRY : Cannot find any suitable write mode for this media\n");
|
||||
burn_disc_free_multi_caps(&caps);
|
||||
return(0);
|
||||
}
|
||||
might_do_tao= caps->might_do_tao;
|
||||
might_do_sao= caps->might_do_sao;
|
||||
burn_disc_free_multi_caps(&caps);
|
||||
#endif
|
||||
|
||||
for(i=0;i<skin->track_counter;i++) {
|
||||
@ -4610,6 +4618,25 @@ check_with_drive:;
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef Cdrskin_libburn_has_get_multi_capS
|
||||
ret = burn_disc_get_multi_caps(skin->grabbed_drive,skin->write_type,&caps,0);
|
||||
if (ret>0)
|
||||
allows_multi= caps->multi_session;
|
||||
burn_disc_free_multi_caps(&caps);
|
||||
#endif
|
||||
if(skin->multi && !allows_multi) {
|
||||
if(skin->prodvd_cli_compatible) {
|
||||
skin->multi= 0;
|
||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
||||
fprintf(stderr, "cdrskin: NOTE : Ignored option -multi.\n");
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"cdrskin: SORRY : Cannot keep this media appendable after write by -multi\n");
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
it_is_done:;
|
||||
if(skin->write_type==BURN_WRITE_SAO && unpredicted_size==1)
|
||||
for(i= 0; i<skin->track_counter; i++) {
|
||||
@ -4656,6 +4683,16 @@ int Cdrskin_burn(struct CdrskiN *skin, int flag)
|
||||
s= burn_disc_get_status(drive);
|
||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
||||
Cdrskin_report_disc_status(skin,s,0);
|
||||
|
||||
#ifdef Cdrskin_allow_libburn_taO
|
||||
if (s!=BURN_DISC_APPENDABLE && s!=BURN_DISC_BLANK) {
|
||||
#else
|
||||
if (s!=BURN_DISC_BLANK) {
|
||||
#endif
|
||||
Cdrskin_release_drive(skin,0);
|
||||
fprintf(stderr,"cdrskin: FATAL : no writeable media detected.\n");
|
||||
goto burn_failed;
|
||||
}
|
||||
ret= Cdrskin_activate_write_mode(skin,s,0);
|
||||
if(ret<=0) {
|
||||
fprintf(stderr,
|
||||
@ -4689,9 +4726,7 @@ burn_failed:;
|
||||
skin->fixed_size+= size+padding;
|
||||
}
|
||||
|
||||
#ifdef Cdrskin_libburn_has_multI
|
||||
if (s == BURN_DISC_APPENDABLE) {
|
||||
|
||||
if (s==BURN_DISC_APPENDABLE) {
|
||||
#ifdef Cdrskin_allow_sao_for_appendablE
|
||||
;
|
||||
#else
|
||||
@ -4701,16 +4736,7 @@ burn_failed:;
|
||||
goto burn_failed;
|
||||
}
|
||||
#endif /* ! Cdrskin_allow_sao_for_appendablE */
|
||||
|
||||
} else if (s != BURN_DISC_BLANK) {
|
||||
#else
|
||||
if (s != BURN_DISC_BLANK) {
|
||||
#endif
|
||||
Cdrskin_release_drive(skin,0);
|
||||
fprintf(stderr,"cdrskin: FATAL : no writeable media detected.\n");
|
||||
goto burn_failed;
|
||||
}
|
||||
|
||||
|
||||
#ifndef Cdrskin_extra_leaN
|
||||
|
||||
@ -5546,6 +5572,9 @@ set_padsize:;
|
||||
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||
printf("cdrskin: padding : %.f\n",skin->padding);
|
||||
|
||||
} else if(strcmp(argv[i],"--prodvd_cli_compatible")==0) {
|
||||
skin->prodvd_cli_compatible= 1;
|
||||
|
||||
} else if(strcmp(argv[i],"-raw96r")==0) {
|
||||
/* is handled in Cdrpreskin_setup() */;
|
||||
|
||||
|
@ -1 +1 @@
|
||||
#define Cdrskin_timestamP "2007.02.07.162836"
|
||||
#define Cdrskin_timestamP "2007.02.08.210744"
|
||||
|
Loading…
Reference in New Issue
Block a user