New parameters "obs_pad" and "bdr_obs_exempt" for -dvd_obs

This commit is contained in:
Thomas Schmitt 2021-09-12 11:27:54 +02:00
parent 555048a0a1
commit 58e7eb0877
9 changed files with 150 additions and 67 deletions

View File

@ -265,6 +265,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->do_stream_recording= 0;
m->dvd_obs= 0;
m->do_obs_pad= 0;
m->bdr_obs_exempt= 0;
m->modesty_on_drive= 0;
m->min_buffer_usec= 5000;
m->max_buffer_usec= 25000;

View File

@ -349,10 +349,27 @@ int Xorriso_option_dvd_obs(struct XorrisO *xorriso, char *obs, int flag)
{
double num;
if(strcmp(obs, "default") == 0)
if(strcmp(obs, "obs_pad") == 0) {
xorriso->do_obs_pad= 1;
return(1);
} else if(strcmp(obs, "no_obs_pad") == 0) {
xorriso->do_obs_pad= 0;
return(1);
} else if(strcmp(obs, "bdr_obs_exempt")== 0) {
xorriso->bdr_obs_exempt= 1;
return(1);
} else if(strcmp(obs, "no_bdr_obs_exempt")== 0) {
xorriso->bdr_obs_exempt= 0;
return(1);
} else if(strcmp(obs, "default") == 0) {
num= 0;
else
} else if(obs[0] >= '0' && obs[0] <= '9') {
num = Scanf_io_size(obs,0);
} else {
sprintf(xorriso->info_text, "-dvd_obs : Unrecognized parameter.");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
if(num != 0 && num != 32768 && num != 65536) {
sprintf(xorriso->info_text,
"-dvd_obs : Bad size. Acceptable are 0, 32k, 64k");
@ -2241,8 +2258,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" [:\"min_usec=\"number][:\"max_usec\"=number]",
" [:\"timeout_sec=\"number]",
" Keep drive buffer hungry to ease concurrent burn run.",
" -dvd_obs \"default\"|\"32k\"|\"64k\"",
" Set number of bytes per DVD/BD write operation.",
" -dvd_obs \"default\"|\"32k\"|\"64k\"|\"obs_pad\"|\"bdr_obs_exempt\"",
" Set number of bytes per DVD/BD write operation or control",
" end alignment padding with DAO DVD-R[W] or BD-R.",
" -use_immed_bit \"on\"|\"off\"|\"default\"",
" Control whether long running SCSI commands shall run",
" asynchronously with progress messages.",

View File

@ -3535,6 +3535,20 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(xorriso->dvd_obs == 32768 || xorriso->dvd_obs == 65536)
sprintf(mode, "%dk", xorriso->dvd_obs / 1024);
sprintf(line,"-dvd_obs %s\n", mode);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->do_obs_pad == 0);
strcpy(mode, "no_obs_pad");
if(xorriso->do_obs_pad)
strcpy(mode, "obs_pad");
sprintf(line,"-dvd_obs %s\n", mode);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2);
is_default= (xorriso->bdr_obs_exempt == 0);
strcpy(mode, "no_bdr_obs_exempt");
if(xorriso->bdr_obs_exempt)
strcpy(mode, "bdr_obs_exempt");
sprintf(line,"-dvd_obs %s\n", mode);
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso, filter, fp, flag & 2);

View File

@ -186,7 +186,8 @@ int Xorriso_make_write_options(
#endif
burn_write_opts_set_dvd_obs(*burn_options, xorriso->dvd_obs);
burn_write_opts_set_obs_pad(*burn_options, !!xorriso->do_obs_pad);
burn_write_opts_set_bdr_obs_exempt(*burn_options,
!!xorriso->bdr_obs_exempt);
burn_write_opts_set_stdio_fsync(*burn_options, xorriso->stdio_sync);
burn_write_opts_set_underrun_proof(*burn_options, 1);
return(1);

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.5.5, Jun 04, 2021"
.TH XORRISO 1 "Version 1.5.5, Sep 12, 2021"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -3234,12 +3234,28 @@ in order to set an own address limit.
"data" causes full speed to start when superblock and directory entries are
written and writing of file content blocks begins.
.TP
\fB\-dvd_obs\fR "default"|"32k"|"64k"
\fB\-dvd_obs\fR "default"|"32k"|"64k"|"obs_pad"|"bdr_obs_exempt"
GNU/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, on command
\-stream_recording , and on compile time options.
.br
On all systems:
"obs_pad" pads the data of the last write operation of a DVD\-R[W] DAO session
or BD\-R session up to the full size of an output chunk.
This padding has to be applied automatically to the other DVD and BD media
types, where it causes e.g. ISO images to have trailing unclaimed blocks.
Whether it is applied automatically to BD\-R depends on "bdr_obs_exempt".
"obs_pad" can be disabled by "no_obs_pad".
.br
"bdr_obs_exempt" exempts BD\-R media from automatic unconditional transaction
end padding, provided that this padding is not requested by "obs_pad" and that
no stream_recording is requested. "bdr_obs_exempt" can be disabled by
"no_obs_exempt".
.br
This is a new feature introduced with version 1.5.6. It might become default
in later versions.
.TP
\fB\-modesty_on_drive\fR parameter[:parameters]
Control whether the drive buffer shall be kept from getting completely filled.

View File

@ -2748,12 +2748,25 @@ according to the setting of command -acl.
least 16s in order to set an own address limit.
"data" causes full speed to start when superblock and directory
entries are written and writing of file content blocks begins.
-dvd_obs "default"|"32k"|"64k"
-dvd_obs "default"|"32k"|"64k"|"obs_pad"|"bdr_obs_exempt"
GNU/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, on command -stream_recording ,
and on compile time options.
On all systems: "obs_pad" pads the data of the last write operation
of a DVD-R[W] DAO session or BD-R session up to the full size of an
output chunk. This padding has to be applied automatically to the
other DVD and BD media types, where it causes e.g. ISO images to
have trailing unclaimed blocks. Whether it is applied
automatically to BD-R depends on "bdr_obs_exempt". "obs_pad" can
be disabled by "no_obs_pad".
"bdr_obs_exempt" exempts BD-R media from automatic unconditional
transaction end padding, provided that this padding is not
requested by "obs_pad" and that no stream_recording is requested.
"bdr_obs_exempt" can be disabled by "no_obs_exempt".
This is a new feature introduced with version 1.5.6. It might
become default in later versions.
-modesty_on_drive parameter[:parameters]
Control whether the drive buffer shall be kept from getting
completely filled. Parameter "on" (or "1") keeps the program from
@ -5577,7 +5590,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 185)
* -close controls media closing: SetWrite. (line 471)
* -close controls media closing: SetWrite. (line 484)
* -close_damaged closes damaged track and session: Writing. (line 205)
* -close_filter_list bans filter registration: Filter. (line 50)
* -commit writes pending ISO image: Writing. (line 27)
@ -5607,11 +5620,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -drive_access control device file locking: AqDrive. (line 72)
* -drive_class controls drive accessability: AqDrive. (line 43)
* -du show directory size in ISO image: Navigate. (line 78)
* -dummy controls write simulation: SetWrite. (line 463)
* -dummy controls write simulation: SetWrite. (line 476)
* -dus show directory size in ISO image: Navigate. (line 81)
* -dusx show directory size on disk: Navigate. (line 88)
* -dux show directory size on disk: Navigate. (line 84)
* -dvd_obs set write block size: SetWrite. (line 400)
* -dvd_obs set write block size and end alignment: SetWrite. (line 400)
* -early_stdio_test classifies stdio drives: Loading. (line 350)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 229)
* -eject ejects drive tray: Writing. (line 50)
@ -5633,7 +5646,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -follow softlinks and mount points: SetInsert. (line 69)
* -format formats media: Writing. (line 87)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 215)
* -fs sets size of fifo: SetWrite. (line 466)
* -fs sets size of fifo: SetWrite. (line 479)
* -getfacl shows ACL in ISO image: Navigate. (line 60)
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
* -getfattr shows xattr in ISO image: Navigate. (line 69)
@ -5679,7 +5692,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 184)
* -mkdir creates ISO directory: Insert. (line 177)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 406)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 419)
* -mount issues mount command for ISO session: Restore. (line 195)
* -mount_cmd composes mount command line: Inquiry. (line 49)
* -mount_cmd controls mount command: Inquiry. (line 65)
@ -5698,7 +5711,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -out_charset sets output character set: SetWrite. (line 285)
* -overwrite enables overwriting in ISO: SetInsert. (line 131)
* -pacifier controls pacifier text form: Emulation. (line 166)
* -padding sets amount or mode of image padding: SetWrite. (line 494)
* -padding sets amount or mode of image padding: SetWrite. (line 507)
* -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 135)
* -pathspecs sets meaning of = with -add: SetInsert. (line 115)
@ -5760,7 +5773,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -split_size enables large file splitting: SetInsert. (line 145)
* -status shows current settings: Scripting. (line 44)
* -status_history_max curbs -status history: Scripting. (line 52)
* -stdio_sync controls stdio buffer: SetWrite. (line 456)
* -stdio_sync controls stdio buffer: SetWrite. (line 469)
* -stream_recording controls defect management: SetWrite. (line 389)
* -system_id sets system id: SetWrite. (line 205)
* -tell_media_space reports free space: Inquiry. (line 98)
@ -5774,13 +5787,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -update_l inserts paths if different <1>: Insert. (line 128)
* -update_li inserts paths if different: Insert. (line 124)
* -update_r inserts paths if different: Insert. (line 110)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 444)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 457)
* -use_readline enables readline for dialog: DialogCtl. (line 26)
* -version prints help text: Scripting. (line 22)
* -volid sets volume id: SetWrite. (line 168)
* -volset_id sets volume set id: SetWrite. (line 188)
* -volume_date sets volume timestamp: SetWrite. (line 211)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 487)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 500)
* -x enables automatic execution order of arguments: ArgSort. (line 16)
* -xattr controls handling of xattr (EA): Loading. (line 172)
* -zisofs controls zisofs production: SetWrite. (line 296)
@ -5813,7 +5826,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backup, enable features, -for_backup: Loading. (line 215)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 29)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 444)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 457)
* Blind growing, _definition: Methods. (line 41)
* Bootability, control, -boot_image: Bootable. (line 75)
* Bugs, reporting: Bugreport. (line 6)
@ -6081,26 +6094,26 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 184)
* Verify, file tree checksums, -check_md5_r: Verify. (line 198)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 400)
* Write, block size and end alignment, -dvd_obs: SetWrite. (line 400)
* Write, bootability, -boot_image: Bootable. (line 75)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 456)
* Write, close media, -close: SetWrite. (line 471)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 469)
* Write, close media, -close: SetWrite. (line 484)
* Write, compliance to specs, -compliance: SetWrite. (line 62)
* Write, defect management, -stream_recording: SetWrite. (line 389)
* Write, disable Rock Ridge, -rockridge: SetWrite. (line 57)
* Write, drive buffer, -modesty_on_drive: SetWrite. (line 406)
* Write, drive buffer, -modesty_on_drive: SetWrite. (line 419)
* Write, enable HFS+, -hfsplus: SetWrite. (line 14)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 466)
* Write, fifo size, -fs: SetWrite. (line 479)
* Write, free space, -tell_media_space: Inquiry. (line 98)
* Write, log problematic disk files, -errfile_log: Scripting. (line 116)
* Write, log written sessions, -session_log: Scripting. (line 134)
* Write, padding image, -padding: SetWrite. (line 494)
* Write, padding image, -padding: SetWrite. (line 507)
* Write, pending ISO image, -commit: Writing. (line 27)
* Write, predict image size, -print_size: Inquiry. (line 86)
* Write, set speed, -speed: SetWrite. (line 371)
* Write, simulation, -dummy: SetWrite. (line 463)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 487)
* Write, simulation, -dummy: SetWrite. (line 476)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 500)
* xattr, control handling, -xattr: Loading. (line 172)
* xattr, set in ISO image, -setfattr: Manip. (line 103)
* xattr, set in ISO image, -setfattr_list: Manip. (line 120)
@ -6132,41 +6145,41 @@ Node: CmdFind88992
Node: Filter107921
Node: Writing112543
Node: SetWrite124798
Node: Bootable153798
Node: Jigdo181679
Node: Charset186682
Node: Exception190011
Node: DialogCtl196140
Node: Inquiry198742
Node: Navigate207624
Node: Verify216331
Node: Restore227480
Node: Emulation239179
Node: Scripting249635
Node: Frontend257418
Node: Examples267044
Node: ExDevices268222
Node: ExCreate268883
Node: ExDialog270183
Node: ExGrowing271454
Node: ExModifying272263
Node: ExBootable272773
Node: ExCharset273328
Node: ExPseudo274224
Node: ExCdrecord275151
Node: ExMkisofs275471
Node: ExGrowisofs277368
Node: ExException278521
Node: ExTime278979
Node: ExIncBackup279437
Node: ExRestore283463
Node: ExRecovery284409
Node: Files284981
Node: Environ286315
Node: Seealso287063
Node: Bugreport287780
Node: Legal288371
Node: CommandIdx289383
Node: ConceptIdx307208
Node: Bootable154649
Node: Jigdo182530
Node: Charset187533
Node: Exception190862
Node: DialogCtl196991
Node: Inquiry199593
Node: Navigate208475
Node: Verify217182
Node: Restore228331
Node: Emulation240030
Node: Scripting250486
Node: Frontend258269
Node: Examples267895
Node: ExDevices269073
Node: ExCreate269734
Node: ExDialog271034
Node: ExGrowing272305
Node: ExModifying273114
Node: ExBootable273624
Node: ExCharset274179
Node: ExPseudo275075
Node: ExCdrecord276002
Node: ExMkisofs276322
Node: ExGrowisofs278219
Node: ExException279372
Node: ExTime279830
Node: ExIncBackup280288
Node: ExRestore284314
Node: ExRecovery285260
Node: Files285832
Node: Environ287166
Node: Seealso287914
Node: Bugreport288631
Node: Legal289222
Node: CommandIdx290234
Node: ConceptIdx308059

End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.5, Jun 04, 2021"
@c man .TH XORRISO 1 "Version 1.5.5, Sep 12, 2021"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -3754,14 +3754,30 @@ in order to set an own address limit.
"data" causes full speed to start when superblock and directory entries are
written and writing of file content blocks begins.
@c man .TP
@item -dvd_obs "default"|"32k"|"64k"
@kindex -dvd_obs set write block size
@cindex Write, block size, -dvd_obs
@item -dvd_obs "default"|"32k"|"64k"|"obs_pad"|"bdr_obs_exempt"
@kindex -dvd_obs set write block size and end alignment
@cindex Write, block size and end alignment, -dvd_obs
GNU/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, on command
-stream_recording , and on compile time options.
@*
On all systems:
"obs_pad" pads the data of the last write operation of a DVD-R[W] DAO session
or BD-R session up to the full size of an output chunk.
This padding has to be applied automatically to the other DVD and BD media
types, where it causes e.g. ISO images to have trailing unclaimed blocks.
Whether it is applied automatically to BD-R depends on "bdr_obs_exempt".
"obs_pad" can be disabled by "no_obs_pad".
@*
"bdr_obs_exempt" exempts BD-R media from automatic unconditional transaction
end padding, provided that this padding is not requested by "obs_pad" and that
no stream_recording is requested. "bdr_obs_exempt" can be disabled by
"no_obs_exempt".
@*
This is a new feature introduced with version 1.5.6. It might become default
in later versions.
@c man .TP
@item -modesty_on_drive parameter[:parameters]
@kindex -modesty_on_drive keep drive buffer hungry

View File

@ -408,6 +408,10 @@ struct XorrisO { /* the global context of xorriso */
int dvd_obs; /* DVD write chunk size: 0, 32k or 64k */
int do_obs_pad; /* 1= pad up end on all media types */
int bdr_obs_exempt; /* 1= do not unconditionally apply do_obs_pad=1
to BD-R if not stream recording
*/
int modesty_on_drive; /* "enable" of burn_drive_set_buffer_waiting()
0= disable , 1= enable waiting ,
(-1 = do not change setting)

View File

@ -1 +1 @@
#define Xorriso_timestamP "2021.09.04.075955"
#define Xorriso_timestamP "2021.09.12.092738"