New option --prodvd_cli_compatible
This commit is contained in:
parent
5c789efbb7
commit
5a9949ffb3
@ -16,8 +16,8 @@
|
|||||||
.\" .sp <n> insert n+1 empty lines
|
.\" .sp <n> insert n+1 empty lines
|
||||||
.\" for manpage-specific macros, see man(7)
|
.\" for manpage-specific macros, see man(7)
|
||||||
.SH NAME
|
.SH NAME
|
||||||
cdrskin \- burns preformatted data to CD-R, CD-RW, DVD+/-RW, DVD-RAM
|
cdrskin \- burns preformatted data to CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW,
|
||||||
via libburn.
|
DVD-RAM via libburn.
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B cdrskin
|
.B cdrskin
|
||||||
.RI [ options | track_source_addresses ]
|
.RI [ options | track_source_addresses ]
|
||||||
@ -29,7 +29,7 @@ via libburn.
|
|||||||
.\" respectively.
|
.\" respectively.
|
||||||
.PP
|
.PP
|
||||||
\fBcdrskin\fP is a program that provides some of cdrecord's options
|
\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.
|
You do not need to be superuser for its daily usage.
|
||||||
.PP
|
.PP
|
||||||
.B Overview of features:
|
.B Overview of features:
|
||||||
@ -124,12 +124,6 @@ Multiple cycles of blanking and overwriting with random numbers might be.
|
|||||||
.PP
|
.PP
|
||||||
.B Sequentially Recordable DVD Media:
|
.B Sequentially Recordable DVD Media:
|
||||||
.br
|
.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.
|
Currently only DVD-RW and DVD-R can be used for the Sequential recording model.
|
||||||
DVD-RW must be in state "Sequential Recording".
|
DVD-RW must be in state "Sequential Recording".
|
||||||
The media must be either blank or appendable.
|
The media must be either blank or appendable.
|
||||||
@ -254,9 +248,11 @@ Print this list of blanking types.
|
|||||||
.TP
|
.TP
|
||||||
all
|
all
|
||||||
Blank an entire CD-RW or an unformatted DVD-RW.
|
Blank an entire CD-RW or an unformatted DVD-RW.
|
||||||
|
(See also --prodvd_cli_compatible)
|
||||||
.TP
|
.TP
|
||||||
fast
|
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
|
.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.
|
||||||
@ -389,6 +385,8 @@ is a -RW and gets blanked which causes loss of its content.
|
|||||||
.br
|
.br
|
||||||
The following sessions can only be written in -tao mode. -multi is prohibited
|
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.
|
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
|
.br
|
||||||
In order to have all filesystem content accessible, the eventual ISO-9660
|
In order to have all filesystem content accessible, the eventual ISO-9660
|
||||||
filesystem of a follow-up
|
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
|
Only if used as first command line argument this option prevents reading and
|
||||||
interpretation of eventual startup files. See section FILES below.
|
interpretation of eventual startup files. See section FILES below.
|
||||||
.TP
|
.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
|
.BI \--single_track
|
||||||
Accept only the last argument of the command line as track source address.
|
Accept only the last argument of the command line as track source address.
|
||||||
.TP
|
.TP
|
||||||
|
@ -2012,6 +2012,8 @@ set_dev:;
|
|||||||
" --no_rc as first argument: do not read startup files\n");
|
" --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(" --old_pseudo_scsi_adr use and report literal Bus,Target,Lun\n");
|
||||||
printf(" rather than real SCSI and pseudo ATA.\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(
|
printf(
|
||||||
" --single_track accept only last argument as source_address\n");
|
" --single_track accept only last argument as source_address\n");
|
||||||
|
|
||||||
@ -2349,6 +2351,7 @@ struct CdrskiN {
|
|||||||
int dummy_mode;
|
int dummy_mode;
|
||||||
int force_is_set;
|
int force_is_set;
|
||||||
int single_track;
|
int single_track;
|
||||||
|
int prodvd_cli_compatible;
|
||||||
|
|
||||||
int do_devices;
|
int do_devices;
|
||||||
|
|
||||||
@ -2488,6 +2491,7 @@ int Cdrskin_new(struct CdrskiN **skin, struct CdrpreskiN *preskin, int flag)
|
|||||||
o->dummy_mode= 0;
|
o->dummy_mode= 0;
|
||||||
o->force_is_set= 0;
|
o->force_is_set= 0;
|
||||||
o->single_track= 0;
|
o->single_track= 0;
|
||||||
|
o->prodvd_cli_compatible= 0;
|
||||||
o->do_devices= 0;
|
o->do_devices= 0;
|
||||||
o->do_scanbus= 0;
|
o->do_scanbus= 0;
|
||||||
o->do_checkdrive= 0;
|
o->do_checkdrive= 0;
|
||||||
@ -4027,7 +4031,8 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
/* Classical blanking of erasable media */
|
/* 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) &&
|
||||||
|
!(profile_number == 0x13 && skin->prodvd_cli_compatible)) {
|
||||||
Cdrskin_release_drive(skin,0);
|
Cdrskin_release_drive(skin,0);
|
||||||
if(s==BURN_DISC_BLANK) {
|
if(s==BURN_DISC_BLANK) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -4049,7 +4054,8 @@ int Cdrskin_blank(struct CdrskiN *skin, int flag)
|
|||||||
fprintf(stderr,"cdrskin: FATAL : blank=... : media is not erasable\n");
|
fprintf(stderr,"cdrskin: FATAL : blank=... : media is not erasable\n");
|
||||||
return(0);
|
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 */
|
skin->blank_fast= 0; /* only with deformat_sequential_quickest */
|
||||||
|
|
||||||
} else {
|
} 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;
|
int profile_number= -1, track_type_1, mixed_mode= 0, unpredicted_size= 0, ret;
|
||||||
struct burn_drive_info *drive_info = NULL;
|
struct burn_drive_info *drive_info = NULL;
|
||||||
char profile_name[80];
|
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;
|
double fixed_size= 0.0, tao_to_sao_tsize= 0.0, dummy;
|
||||||
#ifdef Cdrskin_libburn_has_get_multi_capS
|
#ifdef Cdrskin_libburn_has_get_multi_capS
|
||||||
struct burn_multi_caps *caps = NULL;
|
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) {
|
} else if(ret==0) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: SORRY : Cannot find any suitable write mode for this media\n");
|
"cdrskin: SORRY : Cannot find any suitable write mode for this media\n");
|
||||||
|
burn_disc_free_multi_caps(&caps);
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
might_do_tao= caps->might_do_tao;
|
might_do_tao= caps->might_do_tao;
|
||||||
might_do_sao= caps->might_do_sao;
|
might_do_sao= caps->might_do_sao;
|
||||||
|
burn_disc_free_multi_caps(&caps);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for(i=0;i<skin->track_counter;i++) {
|
for(i=0;i<skin->track_counter;i++) {
|
||||||
@ -4610,6 +4618,25 @@ check_with_drive:;
|
|||||||
return(0);
|
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:;
|
it_is_done:;
|
||||||
if(skin->write_type==BURN_WRITE_SAO && unpredicted_size==1)
|
if(skin->write_type==BURN_WRITE_SAO && unpredicted_size==1)
|
||||||
for(i= 0; i<skin->track_counter; i++) {
|
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);
|
s= burn_disc_get_status(drive);
|
||||||
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);
|
||||||
|
|
||||||
|
#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);
|
ret= Cdrskin_activate_write_mode(skin,s,0);
|
||||||
if(ret<=0) {
|
if(ret<=0) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -4689,9 +4726,7 @@ burn_failed:;
|
|||||||
skin->fixed_size+= size+padding;
|
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
|
#ifdef Cdrskin_allow_sao_for_appendablE
|
||||||
;
|
;
|
||||||
#else
|
#else
|
||||||
@ -4701,17 +4736,8 @@ burn_failed:;
|
|||||||
goto burn_failed;
|
goto burn_failed;
|
||||||
}
|
}
|
||||||
#endif /* ! Cdrskin_allow_sao_for_appendablE */
|
#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
|
#ifndef Cdrskin_extra_leaN
|
||||||
|
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
||||||
@ -5546,6 +5572,9 @@ set_padsize:;
|
|||||||
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||||
printf("cdrskin: padding : %.f\n",skin->padding);
|
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) {
|
} else if(strcmp(argv[i],"-raw96r")==0) {
|
||||||
/* is handled in Cdrpreskin_setup() */;
|
/* 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