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_v2_block_size= m->zisofs_v2_block_size_default= (1 << 17);
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_reassure= 0;
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));
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;
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))
ctrl.v2_block_size_log2= i;
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);
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);
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
used_blocks= Xorriso_zisofs_current_blocks(xorriso, 0);
if(always || !(
xorriso->zisofs_max_total_blocks ==
xorriso->zisofs_max_total_blocks_default &&
xorriso->zisofs_max_file_blocks ==
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,
"-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_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) xorriso->zisofs_max_file_blocks * 8.0);
((double) used_blocks) / (double) xorriso->zisofs_max_total_blocks);
Xorriso_status_result(xorriso, filter, fp, flag & 2);
}
if(always || !(

View File

@ -229,6 +229,9 @@ LIBISOBURN_MISCONFIGURATION_ = 0;
xorriso->zisofs_v2_block_size= xorriso->zisofs_v2_block_size_default=
1 << zisofs_ctrl.v2_block_size_log2;
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,

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",
" version_2=off|as_needed|on , block_size_v2=32k|...|1024k",
" max_bpt=1k...128g , max_bpt_f=1k...128g , bpt_target=num",
" bpt_free_ratio=-1|[0.0...1.0]"
"",
"Write-to-media commands:",
" -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;
uint64_t was_max_total_blocks, was_max_file_blocks, was_block_number_target;
int ret, l, i;
double num;
int ret, l, i, sticky;
double num, was_bpt_discard_free_ratio;
char *cpt, *npt, text[16];
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_blocksize_v2= xorriso->zisofs_v2_block_size;
was_block_number_target= xorriso->zisofs_block_number_target;
was_bpt_discard_free_ratio= xorriso->zisofs_bpt_discard_free_ratio;
npt= cpt= mode;
for(cpt= mode; npt!=NULL; cpt= npt+1) {
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, "gzip_used=", 10) == 0 ||
strncmp(cpt, "gunzip_used=", 12) == 0 ||
strncmp(cpt, "bpt_ratio_used=", 15) == 0 ||
strncmp(cpt, "bpt_used=", 9) == 0) {
/* (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)");
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;
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;
} 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);
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) {
xorriso->zlib_level= xorriso->zlib_level_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_v2_block_size= xorriso->zisofs_v2_block_size_default;
xorriso->zisofs_block_number_target= -1;
xorriso->zisofs_bpt_discard_free_ratio=
xorriso->zisofs_bpt_discard_free_ratio_default;
} else {
unknown_mode:;
@ -2397,6 +2417,7 @@ sorry_ex:
xorriso->zisofs_max_file_blocks= was_max_file_blocks;
xorriso->zisofs_v2_block_size= was_blocksize_v2;
xorriso->zisofs_block_number_target= was_block_number_target;
xorriso->zisofs_bpt_discard_free_ratio= was_bpt_discard_free_ratio;
return(0);
}
}

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.3, Oct 16, 2020"
.TH XORRISO 1 "Version 1.5.3, Oct 21, 2020"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" 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
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 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
"default" 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="\-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.
.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
\fB\-speed\fR code|number[k|m|c|d|b]
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
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
gets set to the same value.
"default" same as "level=6:block_size=32k:by_magic=off:
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m".
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=.
"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]
Set the burn speed. Default is "max" (or "0") = maximum speed as
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_r sets ownership in ISO image: Manip. (line 47)
* -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_filter_list bans filter registration: Filter. (line 50)
* -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_class controls drive accessability: AqDrive. (line 43)
* -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)
* -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 380)
* -dvd_obs set write block size: SetWrite. (line 390)
* -early_stdio_test classifies stdio drives: Loading. (line 341)
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 229)
* -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)
* -format formats media: Writing. (line 87)
* -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_r shows ACL in ISO image: Navigate. (line 66)
* -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)
* -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 386)
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 396)
* -mount issues mount command for ISO session: Restore. (line 153)
* -mount_cmd composes mount command line: Inquiry. (line 49)
* -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)
* -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 474)
* -padding sets amount or mode of image padding: SetWrite. (line 484)
* -page set terminal geometry: DialogCtl. (line 18)
* -paste_in copies file into disk file: Restore. (line 121)
* -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.
(line 66)
* -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)
* -status shows current settings: Scripting. (line 44)
* -status_history_max curbs -status history: Scripting. (line 52)
* -stdio_sync controls stdio buffer: SetWrite. (line 436)
* -stream_recording controls defect management: SetWrite. (line 369)
* -stdio_sync controls stdio buffer: SetWrite. (line 446)
* -stream_recording controls defect management: SetWrite. (line 379)
* -system_id sets system id: SetWrite. (line 205)
* -tell_media_space reports free space: Inquiry. (line 98)
* -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_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 424)
* -use_immed_bit controls use of Immed bit: SetWrite. (line 434)
* -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 467)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 477)
* -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)
@ -5723,7 +5733,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 424)
* Blank, format, Immed bit, -use_immed_bit: SetWrite. (line 434)
* Blind growing, _definition: Methods. (line 41)
* Bootability, control, -boot_image: Bootable. (line 75)
* 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 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 380)
* Write, block size, -dvd_obs: SetWrite. (line 390)
* Write, bootability, -boot_image: Bootable. (line 75)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 436)
* Write, close media, -close: SetWrite. (line 451)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 446)
* Write, close media, -close: SetWrite. (line 461)
* 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, 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 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, log problematic disk files, -errfile_log: Scripting. (line 116)
* 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, predict image size, -print_size: Inquiry. (line 86)
* Write, set speed, -speed: SetWrite. (line 351)
* Write, simulation, -dummy: SetWrite. (line 443)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 467)
* Write, set speed, -speed: SetWrite. (line 361)
* Write, simulation, -dummy: SetWrite. (line 453)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 477)
* 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)
@ -6037,41 +6047,41 @@ Node: CmdFind88338
Node: Filter107267
Node: Writing111889
Node: SetWrite124144
Node: Bootable151824
Node: Jigdo178909
Node: Charset183912
Node: Exception187241
Node: DialogCtl193370
Node: Inquiry195972
Node: Navigate204854
Node: Verify213561
Node: Restore224710
Node: Emulation233876
Node: Scripting244332
Node: Frontend252115
Node: Examples261741
Node: ExDevices262919
Node: ExCreate263580
Node: ExDialog264880
Node: ExGrowing266151
Node: ExModifying266960
Node: ExBootable267470
Node: ExCharset268025
Node: ExPseudo268921
Node: ExCdrecord269848
Node: ExMkisofs270168
Node: ExGrowisofs272065
Node: ExException273218
Node: ExTime273676
Node: ExIncBackup274134
Node: ExRestore278160
Node: ExRecovery279106
Node: Files279678
Node: Environ281012
Node: Seealso281760
Node: Bugreport282477
Node: Legal283068
Node: CommandIdx284080
Node: ConceptIdx301696
Node: Bootable152434
Node: Jigdo179519
Node: Charset184522
Node: Exception187851
Node: DialogCtl193980
Node: Inquiry196582
Node: Navigate205464
Node: Verify214171
Node: Restore225320
Node: Emulation234486
Node: Scripting244942
Node: Frontend252725
Node: Examples262351
Node: ExDevices263529
Node: ExCreate264190
Node: ExDialog265490
Node: ExGrowing266761
Node: ExModifying267570
Node: ExBootable268080
Node: ExCharset268635
Node: ExPseudo269531
Node: ExCdrecord270458
Node: ExMkisofs270778
Node: ExGrowisofs272675
Node: ExException273828
Node: ExTime274286
Node: ExIncBackup274744
Node: ExRestore278770
Node: ExRecovery279716
Node: Files280288
Node: Environ281622
Node: Seealso282370
Node: Bugreport283087
Node: Legal283678
Node: CommandIdx284690
Node: ConceptIdx302306

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.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 .\"
@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
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 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:
version_2=off:block_size_v2=128k:max_bpt=256m:max_bpt_f=256m".
"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".
@c man .TP
@item -speed code|number[k|m|c|d|b]
@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_default;
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_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"