From 358262818ee05a1679400aa4cd9ecc5792c41c96 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sun, 12 Sep 2021 11:33:50 +0200 Subject: [PATCH] New -as cdrecord option --bdr_obs_exempt --- xorriso/emulators.c | 4 ++ xorriso/xorrecord.1 | 21 +++++++--- xorriso/xorrecord.info | 78 +++++++++++++++++++++---------------- xorriso/xorrecord.texi | 25 +++++++++--- xorriso/xorriso_timestamp.h | 2 +- 5 files changed, 85 insertions(+), 45 deletions(-) diff --git a/xorriso/emulators.c b/xorriso/emulators.c index 6c19a0e5..3929e154 100644 --- a/xorriso/emulators.c +++ b/xorriso/emulators.c @@ -89,6 +89,7 @@ int Xorriso_cdrskin_help(struct XorrisO *xorriso, int flag) "\tuse_immed_bit=on|off|default\tcontrol use of Immed bit", "\tdvd_obs=default|32k|64k\t\tbytes per DVD/BD write operation", "\t--obs_pad\t\tpad DVD DAO and stdio to full 32k or 64k", +"\t--bdr_obs_exempt\tpossibly exempt BD-R from padding to full 64k", "\tstdio_sync=on|off|end|number\twhether to fsync output to \"stdio:\"", "\t--no_rc\t\tDo not execute xorriso startup files", "\t-help\t\tprint this text to stderr and exit emulation", @@ -293,6 +294,9 @@ no_volunteer:; Xorriso_option_dvd_obs(xorriso, cpt, 0); } else if(strcmp(argv[i], "--obs_pad") == 0) { /* intentional: argv[i] */ xorriso->do_obs_pad= 1; + } else if(strcmp(argv[i], "--bdr_obs_exempt") == 0) { + /* intentional: argv[i] */ + xorriso->bdr_obs_exempt= 1; } else if(strcmp(argpt, "-eject")==0) { do_eject= 1; } else if(strncmp(argpt, "-fs=", 4)==0 || strncmp(argpt, "fs=", 3)==0) { diff --git a/xorriso/xorrecord.1 b/xorriso/xorrecord.1 index 0c9fd3fe..9f7990ae 100644 --- a/xorriso/xorrecord.1 +++ b/xorriso/xorrecord.1 @@ -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 XORRECORD 1 "Version 1.5.5, Aug 30, 2021" +.TH XORRECORD 1 "Version 1.5.5, Sep 12, 2021" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: @@ -613,16 +613,27 @@ The default depends on media type, option stream_recording=, and on compile time options. .TP \fB\--obs_pad\fR -Pad the data of last write operation of a DVD\-R[W] DAO session or -stdio: pseudo\-drive up to the full size of an output chunk. +Pad the data of the last write operation of a DVD\-R[W] DAO session, or BD\-R +session, or stdio: pseudo\-drive 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 option +\-\-bdr_obs_exempt. .br -Use this option if there is the suspicion that DAO sessions abort with -your kernel and/or DVD drive, if their size is not a multiple of 16 blocks. +Use this option if there is the suspicion that DVD\-R[W] DAO or BD\-R sessions +abort with your kernel and/or DVD drive, if their size is not a multiple of +16 blocks. .br This option may also get enabled at compile time of libburn. .TP +\fB\--bdr_obs_exempt\fR +Exempt 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. +.br +This is a new feature introduced with version 1.5.6. It might become default +in later versions. +.TP \fBmodesty_on_drive=parameter[:parameters]\fR Control whether the drive buffer shall be kept from getting completely filled. Parameter "on" (or "1") keeps the program from trying to write to the burner diff --git a/xorriso/xorrecord.info b/xorriso/xorrecord.info index f5759491..3d698b48 100644 --- a/xorriso/xorrecord.info +++ b/xorriso/xorrecord.info @@ -571,14 +571,22 @@ dvd_obs="default"|"32k"|"64k" latency problems. The default depends on media type, option stream_recording=, and on compile time options. -obs_pad - Pad the data of last write operation of a DVD-R[W] DAO session or - stdio: pseudo-drive 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. .br Use this option if there is the suspicion - that DAO sessions abort with your kernel and/or DVD drive, if their - size is not a multiple of 16 blocks. .br This option may also get - enabled at compile time of libburn. + Pad the data of the last write operation of a DVD-R[W] DAO session, + or BD-R session, or stdio: pseudo-drive 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 option --bdr_obs_exempt. .br Use + this option if there is the suspicion that DVD-R[W] DAO or BD-R + sessions abort with your kernel and/or DVD drive, if their size is + not a multiple of 16 blocks. .br This option may also get enabled + at compile time of libburn. +-bdr_obs_exempt + Exempt 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. + 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 @@ -910,6 +918,8 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T [index] * Menu: +* --bdr_obs_exempt write transaction end padding: NonCdrecord. + (line 92) * --devices get list of drives: DriveAddr. (line 8) * --drive_not_exclusive use drive even if busy: NonCdrecord. (line 12) * --grow_overwriteable_iso emulate ISO 9660 multi-session: NonCdrecord. @@ -929,7 +939,7 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * -inq inquire drive identifiers: Inquire. (line 8) * -isosize obtain track size from ISO 9660 superblock: SetBurn. (line 137) -* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 90) +* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 98) * -msinfo retrieve multi-session info: Inquire. (line 43) * -multi keep media appendable after burn run: SetBurn. (line 89) * -nopad disable adding of bytes to end of track: SetBurn. (line 151) @@ -951,13 +961,13 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T * minbuf= keep drive buffer hungry: SetBurn. (line 205) * padsize= add bytes to end of track: SetBurn. (line 144) * speed= set write speed: SetBurn. (line 189) -* stdio_sync= control stdio buffer: NonCdrecord. (line 142) +* stdio_sync= control stdio buffer: NonCdrecord. (line 150) * stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord. (line 64) * tsize= set a fixed track size: SetBurn. (line 126) -* use_immed_bit= control use of Immed bit: NonCdrecord. (line 127) +* use_immed_bit= control use of Immed bit: NonCdrecord. (line 135) * write_start_address= set block address for write start: NonCdrecord. - (line 136) + (line 144)  File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top @@ -969,7 +979,7 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Menu: * Accessing drive, wait for stdin, -waiti: SetBurn. (line 113) -* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 127) +* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 135) * Bugs, reporting: Bugreport. (line 6) * Data track, announce, -data: SetBurn. (line 157) * Defect management, control, stream_recording=: NonCdrecord. (line 64) @@ -1012,22 +1022,24 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Track size, obtain from ISO 9660, -isosize: SetBurn. (line 137) * Track size, set fixed, tsize=: SetBurn. (line 126) * Track, _definiton: Standards. (line 13) +* Transaction end padding, BD-R, -bdr_obs_exempt: NonCdrecord. + (line 92) +* Transaction end padding, enforce, -obs_pad: NonCdrecord. (line 81) * Transaction size, set, dvd_obs=: NonCdrecord. (line 74) -* Transaction size, set, dvd_obs= <1>: NonCdrecord. (line 81) * Tray, eject, -eject: SetBurn. (line 214) * Verbosity, increase, -v: Verbose. (line 16) * Verbosity, SCSI commands, -V: Verbose. (line 20) * Version, report, -version: Verbose. (line 8) * Write simulation , control, -dummy: SetBurn. (line 106) * Write start address, set, write_start_address=: NonCdrecord. - (line 136) + (line 144) * Write type, SAO/DAO, -dao: SetBurn. (line 172) * Write type, SAO/DAO, -sao: SetBurn. (line 168) * Write type, TAO, -tao: SetBurn. (line 162) -* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 142) +* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 150) * Write, drive buffer, -immed: SetBurn. (line 208) * Write, drive buffer, minbuf=: SetBurn. (line 205) -* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 90) +* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 98) * xorriso, mkisofs emulation: Xorriso. (line 6) * xorriso, options: Options. (line 6) @@ -1045,21 +1057,21 @@ Node: Inquire7618 Node: SetBurn10487 Node: Verbose21111 Node: NonCdrecord22661 -Node: Examples31044 -Node: ExDevices31705 -Node: ExMedium31923 -Node: ExBlank32186 -Node: ExFormat32407 -Node: ExDeformat32925 -Node: ExIsoSingle33192 -Node: ExIsoMulti33476 -Node: ExIsoFly35220 -Node: ExAfio36412 -Node: Files37410 -Node: Seealso37966 -Node: Bugreport38329 -Node: Legal38920 -Node: CommandIdx39849 -Node: ConceptIdx43485 +Node: Examples31491 +Node: ExDevices32152 +Node: ExMedium32370 +Node: ExBlank32633 +Node: ExFormat32854 +Node: ExDeformat33372 +Node: ExIsoSingle33639 +Node: ExIsoMulti33923 +Node: ExIsoFly35667 +Node: ExAfio36859 +Node: Files37857 +Node: Seealso38413 +Node: Bugreport38776 +Node: Legal39367 +Node: CommandIdx40296 +Node: ConceptIdx44068  End Tag Table diff --git a/xorriso/xorrecord.texi b/xorriso/xorrecord.texi index d1745ee6..ae8fb07f 100644 --- a/xorriso/xorrecord.texi +++ b/xorriso/xorrecord.texi @@ -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 XORRECORD 1 "Version 1.5.5, Aug 30, 2021" +@c man .TH XORRECORD 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: @@ -832,17 +832,30 @@ time options. @c man .TP @item --obs_pad @kindex --obs_pad write transaction end padding -@cindex Transaction size, set, dvd_obs= -Pad the data of last write operation of a DVD-R[W] DAO session or -stdio: pseudo-drive up to the full size of an output chunk. +@cindex Transaction end padding, enforce, --obs_pad +Pad the data of the last write operation of a DVD-R[W] DAO session, or BD-R +session, or stdio: pseudo-drive 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 option +@minus{}@minus{}bdr_obs_exempt. .br -Use this option if there is the suspicion that DAO sessions abort with -your kernel and/or DVD drive, if their size is not a multiple of 16 blocks. +Use this option if there is the suspicion that DVD-R[W] DAO or BD-R sessions +abort with your kernel and/or DVD drive, if their size is not a multiple of +16 blocks. .br This option may also get enabled at compile time of libburn. @c man .TP +@item --bdr_obs_exempt +@kindex --bdr_obs_exempt write transaction end padding +@cindex Transaction end padding, BD-R, --bdr_obs_exempt +Exempt 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. +@* +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 @cindex Write, drive buffer, modesty_on_drive= diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 74a28c2d..83e2c5f7 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2021.09.12.092738" +#define Xorriso_timestamP "2021.09.12.093333"