New options dvd_obs= and stdio_fsync=
This commit is contained in:
parent
dea30cc8c8
commit
cb668c06dd
@ -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 "Sep 10, 2009"
|
.TH CDRSKIN 1 "Nov 15, 2009"
|
||||||
.\" 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:
|
||||||
@ -899,6 +899,13 @@ Both, write_start_address and direct_write_amount size must be aligned to a
|
|||||||
media dependend transaction size. With DVD-RAM, BD-RE, DVD+RW this is 2k, with
|
media dependend transaction size. With DVD-RAM, BD-RE, DVD+RW this is 2k, with
|
||||||
overwriteable DVD-RW it is 32k.
|
overwriteable DVD-RW it is 32k.
|
||||||
.TP
|
.TP
|
||||||
|
.BI dvd_obs= default|32k|64k
|
||||||
|
Linux specific:
|
||||||
|
Set the number of bytes to be transmitted with each write operation to DVD
|
||||||
|
or BD media. A number of 64 KB may improve throughput with bus systems which
|
||||||
|
show latency problems. The default depends on media type and option
|
||||||
|
stream_recording= .
|
||||||
|
.TP
|
||||||
.BI fallback_program= command
|
.BI fallback_program= command
|
||||||
Set a command name to be executed if cdrskin encounters a known cdrecord
|
Set a command name to be executed if cdrskin encounters a known cdrecord
|
||||||
option which it does not yet support. If a non-empty command is given with
|
option which it does not yet support. If a non-empty command is given with
|
||||||
@ -1013,6 +1020,22 @@ which can only do DAO but not Incremental Streaming.
|
|||||||
.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
|
||||||
|
.BI stdio_sync= on|off|number
|
||||||
|
Set the number of bytes after which to force output to drives with prefix
|
||||||
|
"stdio:". This forcing keeps the memory from being clogged with lots of
|
||||||
|
pending data for slow devices. Default "on" is the same as "16m".
|
||||||
|
Forced output can be disabled by "off".
|
||||||
|
.TP
|
||||||
|
.BI stream_recording= on|off|number
|
||||||
|
By setting "on" request that compliance to the desired speed setting is
|
||||||
|
preferred over management of write errors. With DVD-RAM and BD this can
|
||||||
|
bring effective write speed near to the nominal write speed of the media.
|
||||||
|
But it will also disable the automatic use of replacement blocks
|
||||||
|
if write errors occur. It might as well be disliked or ignored by the drive.
|
||||||
|
.br
|
||||||
|
If a number is given, then error management stays enabled for all byte
|
||||||
|
addresses below that number. Any number below 16s is the same as "off".
|
||||||
|
.TP
|
||||||
.BI tao_to_sao_tsize= size
|
.BI tao_to_sao_tsize= size
|
||||||
Set an exact fixed size for the next track to be in effect only if the track
|
Set an exact fixed size for the next track to be in effect only if the track
|
||||||
source cannot deliver a size prediction and no tsize= was specified and an
|
source cannot deliver a size prediction and no tsize= was specified and an
|
||||||
@ -1199,17 +1222,6 @@ Linux specific:
|
|||||||
Use and report literal Bus,Target,Lun addresses rather than real SCSI and
|
Use and report literal Bus,Target,Lun addresses rather than real SCSI and
|
||||||
pseudo ATA addresses. This method is outdated and was never compatible with
|
pseudo ATA addresses. This method is outdated and was never compatible with
|
||||||
original cdrecord.
|
original cdrecord.
|
||||||
.TP
|
|
||||||
.BI stream_recording="on"|"off"|number
|
|
||||||
By setting "on" request that compliance to the desired speed setting is
|
|
||||||
preferred over management of write errors. With DVD-RAM and BD this can
|
|
||||||
bring effective write speed near to the nominal write speed of the media.
|
|
||||||
But it will also disable the automatic use of replacement blocks
|
|
||||||
if write errors occur. It might as well be disliked or ignored by the drive.
|
|
||||||
.br
|
|
||||||
If a number is given, then error management stays enabled for all byte
|
|
||||||
addresses below that number. Any number below 16s is the same as "off".
|
|
||||||
.TP
|
|
||||||
.BI --xa1-ignore
|
.BI --xa1-ignore
|
||||||
Silently interpret option -xa1 as -data. This may be necessary if a frontent
|
Silently interpret option -xa1 as -data. This may be necessary if a frontent
|
||||||
does not prepare -xa1 block headers but insists in using option -xa1.
|
does not prepare -xa1 block headers but insists in using option -xa1.
|
||||||
|
@ -148,6 +148,10 @@ or
|
|||||||
Move them down to Cdrskin_libburn_from_pykix_svN on version leap
|
Move them down to Cdrskin_libburn_from_pykix_svN on version leap
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* burn_write_opts_set_dvd_obs() and burn_write_opts_set_stdio_fsync()
|
||||||
|
*/
|
||||||
|
#define Cdrskin_libburn_has_fsync_obS 1
|
||||||
|
|
||||||
#endif /* Cdrskin_libburn_0_7_3 */
|
#endif /* Cdrskin_libburn_0_7_3 */
|
||||||
|
|
||||||
#ifndef Cdrskin_libburn_versioN
|
#ifndef Cdrskin_libburn_versioN
|
||||||
@ -2695,6 +2699,11 @@ set_dev:;
|
|||||||
printf(
|
printf(
|
||||||
" --drive_scsi_exclusive try to exclusively reserve device files\n");
|
" --drive_scsi_exclusive try to exclusively reserve device files\n");
|
||||||
printf(" /dev/srN, /dev/scdM, /dev/stK of drive.\n");
|
printf(" /dev/srN, /dev/scdM, /dev/stK of drive.\n");
|
||||||
|
#ifdef Cdrskin_libburn_has_fsync_obS
|
||||||
|
printf(" dvd_obs=\"default\"|number\n");
|
||||||
|
printf(
|
||||||
|
" set number of bytes per DVD/BD write: 32k or 64k\n");
|
||||||
|
#endif
|
||||||
#ifdef Cdrskin_burn_drive_eject_brokeN
|
#ifdef Cdrskin_burn_drive_eject_brokeN
|
||||||
printf(
|
printf(
|
||||||
" eject_device=<path> set the device address for command eject\n");
|
" eject_device=<path> set the device address for command eject\n");
|
||||||
@ -2745,6 +2754,13 @@ set_dev:;
|
|||||||
printf(
|
printf(
|
||||||
" byte addresses below that number.\n");
|
" byte addresses below that number.\n");
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef Cdrskin_libburn_has_fsync_obS
|
||||||
|
printf(" stdio_sync=\"default\"|\"off\"|number\n");
|
||||||
|
printf(
|
||||||
|
" set number of bytes after which to force output\n");
|
||||||
|
printf(
|
||||||
|
" to drives with prefix \"stdio:\".\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef Cdrskin_allow_libburn_taO
|
#ifdef Cdrskin_allow_libburn_taO
|
||||||
printf(
|
printf(
|
||||||
@ -3191,6 +3207,8 @@ struct CdrskiN {
|
|||||||
int dummy_mode;
|
int dummy_mode;
|
||||||
int force_is_set;
|
int force_is_set;
|
||||||
int stream_recording_is_set; /* see burn_write_opts_set_stream_recording() */
|
int stream_recording_is_set; /* see burn_write_opts_set_stream_recording() */
|
||||||
|
int dvd_obs; /* DVD write chunk size: 0, 32k or 64k */
|
||||||
|
int stdio_sync; /* stdio fsync interval: -1, 0, >=32 */
|
||||||
int single_track;
|
int single_track;
|
||||||
int prodvd_cli_compatible;
|
int prodvd_cli_compatible;
|
||||||
|
|
||||||
@ -3409,6 +3427,8 @@ 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->stream_recording_is_set= 0;
|
o->stream_recording_is_set= 0;
|
||||||
|
o->dvd_obs= 0;
|
||||||
|
o->stdio_sync= 0;
|
||||||
o->single_track= 0;
|
o->single_track= 0;
|
||||||
o->prodvd_cli_compatible= 0;
|
o->prodvd_cli_compatible= 0;
|
||||||
o->do_devices= 0;
|
o->do_devices= 0;
|
||||||
@ -6951,6 +6971,10 @@ burn_failed:;
|
|||||||
#ifdef Cdrskin_libburn_has_stream_recordinG
|
#ifdef Cdrskin_libburn_has_stream_recordinG
|
||||||
burn_write_opts_set_stream_recording(o, skin->stream_recording_is_set);
|
burn_write_opts_set_stream_recording(o, skin->stream_recording_is_set);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef Cdrskin_libburn_has_fsync_obS
|
||||||
|
burn_write_opts_set_dvd_obs(o, skin->dvd_obs);
|
||||||
|
burn_write_opts_set_stdio_fsync(o, skin->stdio_sync);
|
||||||
|
#endif
|
||||||
|
|
||||||
if(skin->dummy_mode) {
|
if(skin->dummy_mode) {
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@ -7825,6 +7849,22 @@ set_driveropts:;
|
|||||||
} else if(strcmp(argv[i],"-dummy")==0) {
|
} else if(strcmp(argv[i],"-dummy")==0) {
|
||||||
skin->dummy_mode= 1;
|
skin->dummy_mode= 1;
|
||||||
|
|
||||||
|
} else if(strncmp(argv[i], "-dvd_obs=", 9)==0) {
|
||||||
|
value_pt= argv[i] + 9;
|
||||||
|
goto dvd_obs;
|
||||||
|
} else if(strncmp(argv[i], "dvd_obs=", 8)==0) {
|
||||||
|
value_pt= argv[i] + 8;
|
||||||
|
dvd_obs:;
|
||||||
|
if(strcmp(value_pt, "default") == 0)
|
||||||
|
num= 0;
|
||||||
|
else
|
||||||
|
num = Scanf_io_size(value_pt,0);
|
||||||
|
if(num != 0 && num != 32768 && num != 65536) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: SORRY : Option dvd_obs= accepts only sizes 0, 32k, 64k\n");
|
||||||
|
} else
|
||||||
|
skin->dvd_obs= num;
|
||||||
|
|
||||||
} else if(strcmp(argv[i],"-eject")==0) {
|
} else if(strcmp(argv[i],"-eject")==0) {
|
||||||
skin->do_eject= 1;
|
skin->do_eject= 1;
|
||||||
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||||
@ -8215,6 +8255,26 @@ set_speed:;
|
|||||||
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
if(skin->verbosity>=Cdrskin_verbose_cmD)
|
||||||
ClN(printf("cdrskin: speed : %f\n",skin->x_speed));
|
ClN(printf("cdrskin: speed : %f\n",skin->x_speed));
|
||||||
|
|
||||||
|
} else if(strncmp(argv[i], "-stdio_sync=", 12)==0) {
|
||||||
|
value_pt= argv[i] + 12;
|
||||||
|
goto stdio_sync;
|
||||||
|
} else if(strncmp(argv[i], "stdio_sync=", 11)==0) {
|
||||||
|
value_pt= argv[i] + 11;
|
||||||
|
stdio_sync:;
|
||||||
|
if(strcmp(value_pt, "default") == 0 || strcmp(value_pt, "on") == 0)
|
||||||
|
num= 0;
|
||||||
|
else if(strcmp(value_pt, "off") == 0)
|
||||||
|
num= -1;
|
||||||
|
else
|
||||||
|
num = Scanf_io_size(value_pt,0);
|
||||||
|
if(num > 0)
|
||||||
|
num/= 2048;
|
||||||
|
if(num != -1 && num != 0 && (num < 32 || num > 512 * 1024)) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: SORRY : Option stdio_sync= accepts only sizes -1, 0, 32k ... 1g\n");
|
||||||
|
} else
|
||||||
|
skin->stdio_sync= num;
|
||||||
|
|
||||||
} else if(strncmp(argv[i],"-stream_recording=",18)==0) {
|
} else if(strncmp(argv[i],"-stream_recording=",18)==0) {
|
||||||
value_pt= argv[i]+18;
|
value_pt= argv[i]+18;
|
||||||
goto set_stream_recording;
|
goto set_stream_recording;
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2009.11.15.153140"
|
#define Cdrskin_timestamP "2009.11.15.165016"
|
||||||
|
Loading…
Reference in New Issue
Block a user