New -zisofs parameter bpt_free_ratio=

This commit is contained in:
Thomas Schmitt 2020-10-22 13:42:51 +02:00
parent 5a6aa8a71e
commit c4d66ecb19
10 changed files with 152 additions and 78 deletions

View File

@ -201,6 +201,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->zisofs_block_size= m->zisofs_block_size_default= (1 << 15); m->zisofs_block_size= m->zisofs_block_size_default= (1 << 15);
m->zisofs_v2_block_size= m->zisofs_v2_block_size_default= (1 << 17); m->zisofs_v2_block_size= m->zisofs_v2_block_size_default= (1 << 17);
m->zisofs_block_number_target= -1; m->zisofs_block_number_target= -1;
m->zisofs_bpt_discard_free_ratio= m->zisofs_bpt_discard_free_ratio_default=
0.5;
m->do_overwrite= 2; m->do_overwrite= 2;
m->do_reassure= 0; m->do_reassure= 0;
m->drive_blacklist= NULL; m->drive_blacklist= NULL;

View File

@ -664,6 +664,13 @@ int Xorriso_set_zisofs_params(struct XorrisO *xorriso, int flag)
memset(&ctrl, 0, sizeof(ctrl)); memset(&ctrl, 0, sizeof(ctrl));
ctrl.version= 1; ctrl.version= 1;
ret= iso_zisofs_get_params(&ctrl, 0);
if(ret < 0) {
Xorriso_report_iso_error(xorriso, "", ret,
"Error when inquiring zisofs parameters before setting some",
0, "FAILURE", 1);
return(0);
}
ctrl.compression_level= xorriso->zlib_level; ctrl.compression_level= xorriso->zlib_level;
if(xorriso->zisofs_block_size == (1 << 16)) if(xorriso->zisofs_block_size == (1 << 16))
@ -681,6 +688,7 @@ int Xorriso_set_zisofs_params(struct XorrisO *xorriso, int flag)
if(xorriso->zisofs_v2_block_size == (1 << i)) if(xorriso->zisofs_v2_block_size == (1 << i))
ctrl.v2_block_size_log2= i; ctrl.v2_block_size_log2= i;
ctrl.block_number_target= xorriso->zisofs_block_number_target; ctrl.block_number_target= xorriso->zisofs_block_number_target;
ctrl.bpt_discard_free_ratio= xorriso->zisofs_bpt_discard_free_ratio;
ret= iso_zisofs_set_params(&ctrl, 0); ret= iso_zisofs_set_params(&ctrl, 0);
Xorriso_process_msg_queues(xorriso,0); Xorriso_process_msg_queues(xorriso,0);
@ -750,19 +758,26 @@ int Xorriso_status_zisofs(struct XorrisO *xorriso, char *filter, FILE *fp,
(double) xorriso->zisofs_block_number_target); (double) xorriso->zisofs_block_number_target);
Xorriso_status_result(xorriso, filter, fp, flag & 2); Xorriso_status_result(xorriso, filter, fp, flag & 2);
} }
used_blocks= Xorriso_zisofs_current_blocks(xorriso, 0); used_blocks= Xorriso_zisofs_current_blocks(xorriso, 0);
if(always || !( if(always || !(
xorriso->zisofs_max_total_blocks == xorriso->zisofs_max_total_blocks ==
xorriso->zisofs_max_total_blocks_default && xorriso->zisofs_max_total_blocks_default &&
xorriso->zisofs_max_file_blocks == xorriso->zisofs_max_file_blocks ==
xorriso->zisofs_max_file_blocks_default && xorriso->zisofs_max_file_blocks_default &&
used_blocks == 0)) { xorriso->zisofs_bpt_discard_free_ratio ==
xorriso->zisofs_bpt_discard_free_ratio_default)) {
sprintf(xorriso->result_line, sprintf(xorriso->result_line,
"-zisofs max_bpt=%.f:bpt_used=%.f:max_bpt_f=%.f\n", "-zisofs max_bpt=%.f:max_bpt_f=%.f:bpt_free_ratio=%.3f\n",
(double) xorriso->zisofs_max_total_blocks * 8.0, (double) xorriso->zisofs_max_total_blocks * 8.0,
(double) xorriso->zisofs_max_file_blocks * 8.0,
xorriso->zisofs_bpt_discard_free_ratio);
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
if(always || !(used_blocks == 0)) {
sprintf(xorriso->result_line,
"-zisofs bpt_used=%.f:bpt_ratio_used=%.3f\n",
(double) used_blocks * 8.0, (double) used_blocks * 8.0,
(double) xorriso->zisofs_max_file_blocks * 8.0); ((double) used_blocks) / (double) xorriso->zisofs_max_total_blocks);
Xorriso_status_result(xorriso, filter, fp, flag & 2); Xorriso_status_result(xorriso, filter, fp, flag & 2);
} }
if(always || !( if(always || !(

View File

@ -229,6 +229,9 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
xorriso->zisofs_v2_block_size= xorriso->zisofs_v2_block_size_default= xorriso->zisofs_v2_block_size= xorriso->zisofs_v2_block_size_default=
1 << zisofs_ctrl.v2_block_size_log2; 1 << zisofs_ctrl.v2_block_size_log2;
xorriso->zisofs_block_number_target= zisofs_ctrl.block_number_target; xorriso->zisofs_block_number_target= zisofs_ctrl.block_number_target;
xorriso->zisofs_bpt_discard_free_ratio=
xorriso->zisofs_bpt_discard_free_ratio_default=
zisofs_ctrl.bpt_discard_free_ratio;
} }
iso_node_xinfo_make_clonable(Xorriso__mark_update_xinfo, iso_node_xinfo_make_clonable(Xorriso__mark_update_xinfo,

View File

@ -2188,6 +2188,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" level=0|...|9 , block_size=32k|64k|128k , by_magic=on|off", " level=0|...|9 , block_size=32k|64k|128k , by_magic=on|off",
" version_2=off|as_needed|on , block_size_v2=32k|...|1024k", " version_2=off|as_needed|on , block_size_v2=32k|...|1024k",
" max_bpt=1k...128g , max_bpt_f=1k...128g , bpt_target=num", " max_bpt=1k...128g , max_bpt_f=1k...128g , bpt_target=num",
" bpt_free_ratio=-1|[0.0...1.0]"
"", "",
"Write-to-media commands:", "Write-to-media commands:",
" -rollback Discard the manipulated ISO image and reload it.", " -rollback Discard the manipulated ISO image and reload it.",

View File

@ -2263,8 +2263,8 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
{ {
int was_level, was_blocksize, was_v2_enabled, was_blocksize_v2; int was_level, was_blocksize, was_v2_enabled, was_blocksize_v2;
uint64_t was_max_total_blocks, was_max_file_blocks, was_block_number_target; uint64_t was_max_total_blocks, was_max_file_blocks, was_block_number_target;
int ret, l, i; int ret, l, i, sticky;
double num; double num, was_bpt_discard_free_ratio;
char *cpt, *npt, text[16]; char *cpt, *npt, text[16];
was_level= xorriso->zlib_level; was_level= xorriso->zlib_level;
@ -2274,6 +2274,7 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
was_max_file_blocks= xorriso->zisofs_max_file_blocks; was_max_file_blocks= xorriso->zisofs_max_file_blocks;
was_blocksize_v2= xorriso->zisofs_v2_block_size; was_blocksize_v2= xorriso->zisofs_v2_block_size;
was_block_number_target= xorriso->zisofs_block_number_target; was_block_number_target= xorriso->zisofs_block_number_target;
was_bpt_discard_free_ratio= xorriso->zisofs_bpt_discard_free_ratio;
npt= cpt= mode; npt= cpt= mode;
for(cpt= mode; npt!=NULL; cpt= npt+1) { for(cpt= mode; npt!=NULL; cpt= npt+1) {
npt= strchr(cpt,':'); npt= strchr(cpt,':');
@ -2298,6 +2299,7 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
strncmp(cpt, "osiz_used=", 10) == 0 || strncmp(cpt, "osiz_used=", 10) == 0 ||
strncmp(cpt, "gzip_used=", 10) == 0 || strncmp(cpt, "gzip_used=", 10) == 0 ||
strncmp(cpt, "gunzip_used=", 12) == 0 || strncmp(cpt, "gunzip_used=", 12) == 0 ||
strncmp(cpt, "bpt_ratio_used=", 15) == 0 ||
strncmp(cpt, "bpt_used=", 9) == 0) { strncmp(cpt, "bpt_used=", 9) == 0) {
/* (ignored info from -status) */; /* (ignored info from -status) */;
@ -2341,8 +2343,12 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
"-zisofs: Unsupported block pointer pool size (allowed: 1k to 128g)"); "-zisofs: Unsupported block pointer pool size (allowed: 1k to 128g)");
goto sorry_ex; goto sorry_ex;
} }
sticky= 0;
if(xorriso->zisofs_max_total_blocks == xorriso->zisofs_max_file_blocks)
sticky= 1;
xorriso->zisofs_max_total_blocks= num / 8.0; xorriso->zisofs_max_total_blocks= num / 8.0;
if(xorriso->zisofs_max_total_blocks < xorriso->zisofs_max_file_blocks) if(xorriso->zisofs_max_total_blocks < xorriso->zisofs_max_file_blocks ||
sticky)
xorriso->zisofs_max_file_blocks= xorriso->zisofs_max_total_blocks; xorriso->zisofs_max_file_blocks= xorriso->zisofs_max_total_blocks;
} else if(strncmp(cpt, "max_bpt_f=", 10) == 0) { } else if(strncmp(cpt, "max_bpt_f=", 10) == 0) {
@ -2372,6 +2378,18 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
parse_zisofs_param(cpt, 11, l, &num); parse_zisofs_param(cpt, 11, l, &num);
xorriso->zisofs_block_number_target= num; xorriso->zisofs_block_number_target= num;
} else if(strncmp(cpt, "bpt_free_ratio=", 15) == 0) {
parse_zisofs_param(cpt, 15, l, &num);
/* 0 means to libisofs "do not change" */
if(num == 0.0)
num= -1.0;
if(num != -1.0 && (num <= 0.0 || num > 1.0)) {
sprintf(xorriso->info_text,
"-zisofs: Unsupported free blockpointer ratio (allowed -1 or 0.0 to 1.0)");
goto sorry_ex;
}
xorriso->zisofs_bpt_discard_free_ratio = num;
} else if(strncmp(cpt, "default", l)==0) { } else if(strncmp(cpt, "default", l)==0) {
xorriso->zlib_level= xorriso->zlib_level_default; xorriso->zlib_level= xorriso->zlib_level_default;
xorriso->zisofs_block_size= xorriso->zisofs_block_size_default; xorriso->zisofs_block_size= xorriso->zisofs_block_size_default;
@ -2381,6 +2399,8 @@ int Xorriso_option_zisofs(struct XorrisO *xorriso, char *mode, int flag)
xorriso->zisofs_max_file_blocks= xorriso->zisofs_max_file_blocks_default; xorriso->zisofs_max_file_blocks= xorriso->zisofs_max_file_blocks_default;
xorriso->zisofs_v2_block_size= xorriso->zisofs_v2_block_size_default; xorriso->zisofs_v2_block_size= xorriso->zisofs_v2_block_size_default;
xorriso->zisofs_block_number_target= -1; xorriso->zisofs_block_number_target= -1;
xorriso->zisofs_bpt_discard_free_ratio=
xorriso->zisofs_bpt_discard_free_ratio_default;
} else { } else {
unknown_mode:; unknown_mode:;
@ -2397,6 +2417,7 @@ sorry_ex:
xorriso->zisofs_max_file_blocks= was_max_file_blocks; xorriso->zisofs_max_file_blocks= was_max_file_blocks;
xorriso->zisofs_v2_block_size= was_blocksize_v2; xorriso->zisofs_v2_block_size= was_blocksize_v2;
xorriso->zisofs_block_number_target= was_block_number_target; xorriso->zisofs_block_number_target= was_block_number_target;
xorriso->zisofs_bpt_discard_free_ratio= was_bpt_discard_free_ratio;
return(0); return(0);
} }
} }

View File

@ -9,7 +9,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 XORRISO 1 "Version 1.5.3, Oct 16, 2020" .TH XORRISO 1 "Version 1.5.3, Oct 21, 2020"
.\" 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:
@ -3154,9 +3154,19 @@ may further reduce the effective payload.
"max_bpt_f="1k|...|128g sets the limit for the memory size of the block "max_bpt_f="1k|...|128g sets the limit for the memory size of the block
pointer list of a single file. max_bpt_f is never larger than max_bpt. pointer list of a single file. max_bpt_f is never larger than max_bpt.
If either is set to violate this rule, the other gets set to the same value. If either is set to violate this rule, the other gets set to the same value.
If both values are the same before a change by max_bpt= or max_bpt_f=, then
both limits stick together unless the limit is decreased by max_bpt_f=.
.br .br
"default" same as "level=6:block_size=32k:by_magic=off: "bpt_free_ratio="\-1|[0.0...1.0] sets a threshold for switching to block
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m". pointer discarding during compression. If less than the given fraction of the
max_bpt_f= memory is free, then block pointers of compression filters get
discarded after size assessment. This causes a third read run of the input
file during the production of the ISO filesystem. Value \-1 disables this
feature.
.br
"default" is the same as "level=6:block_size=32k:by_magic=off:
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m:
bpt_free_ratio=0.5".
.TP .TP
\fB\-speed\fR code|number[k|m|c|d|b] \fB\-speed\fR code|number[k|m|c|d|b]
Set the burn speed. Default is "max" (or "0") = maximum speed as announced Set the burn speed. Default is "max" (or "0") = maximum speed as announced

View File

@ -2683,9 +2683,19 @@ according to the setting of command -acl.
"max_bpt_f="1k|...|128g sets the limit for the memory size of the "max_bpt_f="1k|...|128g sets the limit for the memory size of the
block pointer list of a single file. max_bpt_f is never larger block pointer list of a single file. max_bpt_f is never larger
than max_bpt. If either is set to violate this rule, the other than max_bpt. If either is set to violate this rule, the other
gets set to the same value. gets set to the same value. If both values are the same before a
"default" same as "level=6:block_size=32k:by_magic=off: change by max_bpt= or max_bpt_f=, then both limits stick together
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m". unless the limit is decreased by max_bpt_f=.
"bpt_free_ratio="-1|[0.0...1.0] sets a threshold for switching to
block pointer discarding during compression. If less than the
given fraction of the max_bpt_f= memory is free, then block
pointers of compression filters get discarded after size
assessment. This causes a third read run of the input file during
the production of the ISO filesystem. Value -1 disables this
feature.
"default" is the same as "level=6:block_size=32k:by_magic=off:
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m:
bpt_free_ratio=0.5".
-speed code|number[k|m|c|d|b] -speed code|number[k|m|c|d|b]
Set the burn speed. Default is "max" (or "0") = maximum speed as Set the burn speed. Default is "max" (or "0") = maximum speed as
announced by the drive. Further special speed codes are: announced by the drive. Further special speed codes are:
@ -5490,7 +5500,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown sets ownership in ISO image: Manip. (line 43) * -chown sets ownership in ISO image: Manip. (line 43)
* -chown_r sets ownership in ISO image: Manip. (line 47) * -chown_r sets ownership in ISO image: Manip. (line 47)
* -clone copies ISO directory tree: Insert. (line 185) * -clone copies ISO directory tree: Insert. (line 185)
* -close controls media closing: SetWrite. (line 451) * -close controls media closing: SetWrite. (line 461)
* -close_damaged closes damaged track and session: Writing. (line 205) * -close_damaged closes damaged track and session: Writing. (line 205)
* -close_filter_list bans filter registration: Filter. (line 50) * -close_filter_list bans filter registration: Filter. (line 50)
* -commit writes pending ISO image: Writing. (line 27) * -commit writes pending ISO image: Writing. (line 27)
@ -5520,11 +5530,11 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -drive_access control device file locking: AqDrive. (line 72) * -drive_access control device file locking: AqDrive. (line 72)
* -drive_class controls drive accessability: AqDrive. (line 43) * -drive_class controls drive accessability: AqDrive. (line 43)
* -du show directory size in ISO image: Navigate. (line 78) * -du show directory size in ISO image: Navigate. (line 78)
* -dummy controls write simulation: SetWrite. (line 443) * -dummy controls write simulation: SetWrite. (line 453)
* -dus show directory size in ISO image: Navigate. (line 81) * -dus show directory size in ISO image: Navigate. (line 81)
* -dusx show directory size on disk: Navigate. (line 88) * -dusx show directory size on disk: Navigate. (line 88)
* -dux show directory size on disk: Navigate. (line 84) * -dux show directory size on disk: Navigate. (line 84)
* -dvd_obs set write block size: SetWrite. (line 380) * -dvd_obs set write block size: SetWrite. (line 390)
* -early_stdio_test classifies stdio drives: Loading. (line 341) * -early_stdio_test classifies stdio drives: Loading. (line 341)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 229) * -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 229)
* -eject ejects drive tray: Writing. (line 50) * -eject ejects drive tray: Writing. (line 50)
@ -5544,7 +5554,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -follow softlinks and mount points: SetInsert. (line 69) * -follow softlinks and mount points: SetInsert. (line 69)
* -format formats media: Writing. (line 87) * -format formats media: Writing. (line 87)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 215) * -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 215)
* -fs sets size of fifo: SetWrite. (line 446) * -fs sets size of fifo: SetWrite. (line 456)
* -getfacl shows ACL in ISO image: Navigate. (line 60) * -getfacl shows ACL in ISO image: Navigate. (line 60)
* -getfacl_r shows ACL in ISO image: Navigate. (line 66) * -getfacl_r shows ACL in ISO image: Navigate. (line 66)
* -getfattr shows xattr in ISO image: Navigate. (line 69) * -getfattr shows xattr in ISO image: Navigate. (line 69)
@ -5589,7 +5599,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -mark sets synchronizing message: Frontend. (line 23) * -mark sets synchronizing message: Frontend. (line 23)
* -md5 controls handling of MD5 sums: Loading. (line 184) * -md5 controls handling of MD5 sums: Loading. (line 184)
* -mkdir creates ISO directory: Insert. (line 177) * -mkdir creates ISO directory: Insert. (line 177)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 386) * -modesty_on_drive keep drive buffer hungry: SetWrite. (line 396)
* -mount issues mount command for ISO session: Restore. (line 153) * -mount issues mount command for ISO session: Restore. (line 153)
* -mount_cmd composes mount command line: Inquiry. (line 49) * -mount_cmd composes mount command line: Inquiry. (line 49)
* -mount_cmd controls mount command: Inquiry. (line 65) * -mount_cmd controls mount command: Inquiry. (line 65)
@ -5608,7 +5618,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -out_charset sets output character set: SetWrite. (line 285) * -out_charset sets output character set: SetWrite. (line 285)
* -overwrite enables overwriting in ISO: SetInsert. (line 131) * -overwrite enables overwriting in ISO: SetInsert. (line 131)
* -pacifier controls pacifier text form: Emulation. (line 166) * -pacifier controls pacifier text form: Emulation. (line 166)
* -padding sets amount or mode of image padding: SetWrite. (line 474) * -padding sets amount or mode of image padding: SetWrite. (line 484)
* -page set terminal geometry: DialogCtl. (line 18) * -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 121) * -paste_in copies file into disk file: Restore. (line 121)
* -pathspecs sets meaning of = with -add: SetInsert. (line 115) * -pathspecs sets meaning of = with -add: SetInsert. (line 115)
@ -5666,12 +5676,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -signal_handling controls handling of system signals: Exception. * -signal_handling controls handling of system signals: Exception.
(line 66) (line 66)
* -sleep waits for a given time span: Scripting. (line 113) * -sleep waits for a given time span: Scripting. (line 113)
* -speed set write speed: SetWrite. (line 351) * -speed set write speed: SetWrite. (line 361)
* -split_size enables large file splitting: SetInsert. (line 145) * -split_size enables large file splitting: SetInsert. (line 145)
* -status shows current settings: Scripting. (line 44) * -status shows current settings: Scripting. (line 44)
* -status_history_max curbs -status history: Scripting. (line 52) * -status_history_max curbs -status history: Scripting. (line 52)
* -stdio_sync controls stdio buffer: SetWrite. (line 436) * -stdio_sync controls stdio buffer: SetWrite. (line 446)
* -stream_recording controls defect management: SetWrite. (line 369) * -stream_recording controls defect management: SetWrite. (line 379)
* -system_id sets system id: SetWrite. (line 205) * -system_id sets system id: SetWrite. (line 205)
* -tell_media_space reports free space: Inquiry. (line 98) * -tell_media_space reports free space: Inquiry. (line 98)
* -temp_mem_limit curbs memory consumption: Scripting. (line 96) * -temp_mem_limit curbs memory consumption: Scripting. (line 96)
@ -5684,13 +5694,13 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -update_l inserts paths if different <1>: Insert. (line 128) * -update_l inserts paths if different <1>: Insert. (line 128)
* -update_li inserts paths if different: Insert. (line 124) * -update_li inserts paths if different: Insert. (line 124)
* -update_r inserts paths if different: Insert. (line 110) * -update_r inserts paths if different: Insert. (line 110)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 424) * -use_immed_bit controls use of Immed bit: SetWrite. (line 434)
* -use_readline enables readline for dialog: DialogCtl. (line 26) * -use_readline enables readline for dialog: DialogCtl. (line 26)
* -version prints help text: Scripting. (line 22) * -version prints help text: Scripting. (line 22)
* -volid sets volume id: SetWrite. (line 168) * -volid sets volume id: SetWrite. (line 168)
* -volset_id sets volume set id: SetWrite. (line 188) * -volset_id sets volume set id: SetWrite. (line 188)
* -volume_date sets volume timestamp: SetWrite. (line 211) * -volume_date sets volume timestamp: SetWrite. (line 211)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 467) * -write_type chooses TAO or SAO/DAO: SetWrite. (line 477)
* -x enables automatic execution order of arguments: ArgSort. (line 16) * -x enables automatic execution order of arguments: ArgSort. (line 16)
* -xattr controls handling of xattr (EA): Loading. (line 172) * -xattr controls handling of xattr (EA): Loading. (line 172)
* -zisofs controls zisofs production: SetWrite. (line 296) * -zisofs controls zisofs production: SetWrite. (line 296)
@ -5723,7 +5733,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Backup, enable features, -for_backup: Loading. (line 215) * Backup, enable features, -for_backup: Loading. (line 215)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 179)
* Blank media, _definition: Media. (line 29) * Blank media, _definition: Media. (line 29)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 424) * Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 434)
* Blind growing, _definition: Methods. (line 41) * Blind growing, _definition: Methods. (line 41)
* Bootability, control, -boot_image: Bootable. (line 75) * Bootability, control, -boot_image: Bootable. (line 75)
* Bugs, reporting: Bugreport. (line 6) * Bugs, reporting: Bugreport. (line 6)
@ -5986,26 +5996,26 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 184) * Verify, file checksum, -check_md5: Verify. (line 184)
* Verify, file tree checksums, -check_md5_r: Verify. (line 198) * Verify, file tree checksums, -check_md5_r: Verify. (line 198)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 40) * Verify, preset -check_media, -check_media_defaults: Verify. (line 40)
* Write, block size, -dvd_obs: SetWrite. (line 380) * Write, block size, -dvd_obs: SetWrite. (line 390)
* Write, bootability, -boot_image: Bootable. (line 75) * Write, bootability, -boot_image: Bootable. (line 75)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 436) * Write, buffer syncing, -stdio_sync: SetWrite. (line 446)
* Write, close media, -close: SetWrite. (line 451) * Write, close media, -close: SetWrite. (line 461)
* Write, compliance to specs, -compliance: SetWrite. (line 62) * Write, compliance to specs, -compliance: SetWrite. (line 62)
* Write, defect management, -stream_recording: SetWrite. (line 369) * Write, defect management, -stream_recording: SetWrite. (line 379)
* Write, disable Rock Ridge, -rockridge: SetWrite. (line 57) * Write, disable Rock Ridge, -rockridge: SetWrite. (line 57)
* Write, drive buffer, -modesty_on_drive: SetWrite. (line 386) * Write, drive buffer, -modesty_on_drive: SetWrite. (line 396)
* Write, enable HFS+, -hfsplus: SetWrite. (line 14) * Write, enable HFS+, -hfsplus: SetWrite. (line 14)
* Write, enable Joliet, -joliet: SetWrite. (line 10) * Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 446) * Write, fifo size, -fs: SetWrite. (line 456)
* Write, free space, -tell_media_space: Inquiry. (line 98) * Write, free space, -tell_media_space: Inquiry. (line 98)
* Write, log problematic disk files, -errfile_log: Scripting. (line 116) * Write, log problematic disk files, -errfile_log: Scripting. (line 116)
* Write, log written sessions, -session_log: Scripting. (line 134) * Write, log written sessions, -session_log: Scripting. (line 134)
* Write, padding image, -padding: SetWrite. (line 474) * Write, padding image, -padding: SetWrite. (line 484)
* Write, pending ISO image, -commit: Writing. (line 27) * Write, pending ISO image, -commit: Writing. (line 27)
* Write, predict image size, -print_size: Inquiry. (line 86) * Write, predict image size, -print_size: Inquiry. (line 86)
* Write, set speed, -speed: SetWrite. (line 351) * Write, set speed, -speed: SetWrite. (line 361)
* Write, simulation, -dummy: SetWrite. (line 443) * Write, simulation, -dummy: SetWrite. (line 453)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 467) * Write, TAO or SAO/DAO, -write_type: SetWrite. (line 477)
* xattr, control handling, -xattr: Loading. (line 172) * xattr, control handling, -xattr: Loading. (line 172)
* xattr, set in ISO image, -setfattr: Manip. (line 103) * xattr, set in ISO image, -setfattr: Manip. (line 103)
* xattr, set in ISO image, -setfattr_list: Manip. (line 120) * xattr, set in ISO image, -setfattr_list: Manip. (line 120)
@ -6037,41 +6047,41 @@ Node: CmdFind88338
Node: Filter107267 Node: Filter107267
Node: Writing111889 Node: Writing111889
Node: SetWrite124144 Node: SetWrite124144
Node: Bootable151824 Node: Bootable152434
Node: Jigdo178909 Node: Jigdo179519
Node: Charset183912 Node: Charset184522
Node: Exception187241 Node: Exception187851
Node: DialogCtl193370 Node: DialogCtl193980
Node: Inquiry195972 Node: Inquiry196582
Node: Navigate204854 Node: Navigate205464
Node: Verify213561 Node: Verify214171
Node: Restore224710 Node: Restore225320
Node: Emulation233876 Node: Emulation234486
Node: Scripting244332 Node: Scripting244942
Node: Frontend252115 Node: Frontend252725
Node: Examples261741 Node: Examples262351
Node: ExDevices262919 Node: ExDevices263529
Node: ExCreate263580 Node: ExCreate264190
Node: ExDialog264880 Node: ExDialog265490
Node: ExGrowing266151 Node: ExGrowing266761
Node: ExModifying266960 Node: ExModifying267570
Node: ExBootable267470 Node: ExBootable268080
Node: ExCharset268025 Node: ExCharset268635
Node: ExPseudo268921 Node: ExPseudo269531
Node: ExCdrecord269848 Node: ExCdrecord270458
Node: ExMkisofs270168 Node: ExMkisofs270778
Node: ExGrowisofs272065 Node: ExGrowisofs272675
Node: ExException273218 Node: ExException273828
Node: ExTime273676 Node: ExTime274286
Node: ExIncBackup274134 Node: ExIncBackup274744
Node: ExRestore278160 Node: ExRestore278770
Node: ExRecovery279106 Node: ExRecovery279716
Node: Files279678 Node: Files280288
Node: Environ281012 Node: Environ281622
Node: Seealso281760 Node: Seealso282370
Node: Bugreport282477 Node: Bugreport283087
Node: Legal283068 Node: Legal283678
Node: CommandIdx284080 Node: CommandIdx284690
Node: ConceptIdx301696 Node: ConceptIdx302306
 
End Tag Table End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps @c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @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 .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.5.3, Oct 16, 2020" @c man .TH XORRISO 1 "Version 1.5.3, Oct 21, 2020"
@c man .\" Please adjust this date whenever revising the manpage. @c man .\" Please adjust this date whenever revising the manpage.
@c man .\" @c man .\"
@c man .\" Some roff macros, for reference: @c man .\" Some roff macros, for reference:
@ -3667,9 +3667,19 @@ may further reduce the effective payload.
"max_bpt_f="1k|...|128g sets the limit for the memory size of the block "max_bpt_f="1k|...|128g sets the limit for the memory size of the block
pointer list of a single file. max_bpt_f is never larger than max_bpt. pointer list of a single file. max_bpt_f is never larger than max_bpt.
If either is set to violate this rule, the other gets set to the same value. If either is set to violate this rule, the other gets set to the same value.
If both values are the same before a change by max_bpt= or max_bpt_f=, then
both limits stick together unless the limit is decreased by max_bpt_f=.
@* @*
"default" same as "level=6:block_size=32k:by_magic=off: "bpt_free_ratio="-1|[0.0...1.0] sets a threshold for switching to block
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m". pointer discarding during compression. If less than the given fraction of the
max_bpt_f= memory is free, then block pointers of compression filters get
discarded after size assessment. This causes a third read run of the input
file during the production of the ISO filesystem. Value -1 disables this
feature.
@*
"default" is the same as "level=6:block_size=32k:by_magic=off:
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m:
bpt_free_ratio=0.5".
@c man .TP @c man .TP
@item -speed code|number[k|m|c|d|b] @item -speed code|number[k|m|c|d|b]
@kindex -speed set write speed @kindex -speed set write speed

View File

@ -232,6 +232,8 @@ struct XorrisO { /* the global context of xorriso */
int zisofs_v2_block_size; int zisofs_v2_block_size;
int zisofs_v2_block_size_default; int zisofs_v2_block_size_default;
int64_t zisofs_block_number_target; int64_t zisofs_block_number_target;
double zisofs_bpt_discard_free_ratio;
double zisofs_bpt_discard_free_ratio_default;
int do_overwrite; /* 0=off, 1=on, 2=nondir */ int do_overwrite; /* 0=off, 1=on, 2=nondir */
int do_reassure; /* 0=off, 1=on, 2=tree */ int do_reassure; /* 0=off, 1=on, 2=tree */

View File

@ -1 +1 @@
#define Xorriso_timestamP "2020.10.17.133001" #define Xorriso_timestamP "2020.10.22.114038"