New command -read_speed

This commit is contained in:
Thomas Schmitt 2013-10-08 17:58:09 +00:00
parent 2c84085e05
commit 5ae4e4eec9
13 changed files with 417 additions and 168 deletions

View File

@ -227,7 +227,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
m->ban_stdio_write= 0; m->ban_stdio_write= 0;
m->do_dummy= 0; m->do_dummy= 0;
m->do_close= 0; m->do_close= 0;
m->speed= 0; m->write_speed= 0; /* max */
m->read_speed= -2; /* do not set */
m->fs= 4*512; /* 4 MiB */ m->fs= 4*512; /* 4 MiB */
m->padding= 300*1024; m->padding= 300*1024;
m->do_padding_by_libisofs= 0; m->do_padding_by_libisofs= 0;

View File

@ -529,7 +529,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
if(ret <= 0) if(ret <= 0)
goto ex; goto ex;
} }
if(xorriso->read_speed != -2)
burn_drive_set_speed(drive, xorriso->read_speed, 0);
read_ret= ret= isoburn_read_image(drive, ropts, &volset); read_ret= ret= isoburn_read_image(drive, ropts, &volset);
/* <<< Resetting to normal thresholds */ /* <<< Resetting to normal thresholds */
@ -1592,12 +1593,15 @@ int Xorriso_choose_speed_factor(struct XorrisO *xorriso,
} }
/* @return <=0 error, 1 success /* @flag bit0= do not issue TOC
bit1= Report about outdev (else indev)
bit2= Report about write speed (else read speed)
@return <=0 error, 1 success
*/ */
int Xorriso_list_speeds(struct XorrisO *xorriso, int flag) int Xorriso_list_speeds_sub(struct XorrisO *xorriso, int flag)
{ {
int ret, high= -1, low= 0x7fffffff, is_cd= 0, i; int ret, high= -1, low= 0x7fffffff, is_cd= 0, i, speed;
int recent_profile= 0; int recent_profile= 0, inout_flag;
char *respt, *speed_unit= "D"; char *respt, *speed_unit= "D";
double speed_factor= 1385000.0, cd_factor= 75.0 * 2352; double speed_factor= 1385000.0, cd_factor= 75.0 * 2352;
struct burn_drive_info *dinfo; struct burn_drive_info *dinfo;
@ -1606,8 +1610,14 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
respt= xorriso->result_line; respt= xorriso->result_line;
inout_flag= (flag & 2);
if(inout_flag && xorriso->out_drive_handle == NULL)
inout_flag= 0;
else if(xorriso->in_drive_handle == NULL)
inout_flag= 2;
ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive, ret= Xorriso_get_drive_handles(xorriso, &dinfo, &drive,
"on attempt to obtain speed descriptor list", 1 | 2); "on attempt to obtain speed descriptor list",
1 | inout_flag);
if(ret<=0) if(ret<=0)
return(0); return(0);
if(ret == 2) if(ret == 2)
@ -1618,18 +1628,21 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= 0; goto ex; ret= 0; goto ex;
} }
ret= Xorriso_toc(xorriso, 3); if(!(flag & 1)) {
if(ret<=0) { ret= Xorriso_toc(xorriso, 1 | inout_flag);
sprintf(xorriso->info_text, if(ret<=0) {
"Cannot obtain overview of drive and media content"); sprintf(xorriso->info_text,
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); "Cannot obtain overview of drive and media content");
ret= 0; goto ex; Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= 0; goto ex;
}
} }
for (item= speed_list; item != NULL; item= item->next) { for (item= speed_list; item != NULL; item= item->next) {
sprintf(xorriso->info_text, "speed= %5dk , source= %d", sprintf(xorriso->info_text,
item->write_speed, item->source); "read_speed= %5dk , write_speed= %5dk , source= %d",
item->read_speed, item->write_speed, item->source);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
if(item->profile_loaded >= 0x08 && item->profile_loaded <= 0x0a) if(item->profile_loaded >= 0x08 && item->profile_loaded <= 0x0a)
@ -1638,29 +1651,35 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
recent_profile= item->profile_loaded; recent_profile= item->profile_loaded;
if(item->source == 1) { if(item->source == 1) {
/* CD mode page 2Ah : report only if not same speed by GET PERFORMANCE */ /* CD mode page 2Ah : report only if not same speed by GET PERFORMANCE */
if(!(flag & 4))
continue; /* 2Ah only tells write speed */
for(other= speed_list; other != NULL; other= other->next) for(other= speed_list; other != NULL; other= other->next)
if(other->source == 2 && item->write_speed == other->write_speed) if(other->source == 2 && item->write_speed == other->write_speed)
break; break;
if(other != NULL) if(other != NULL)
continue; continue;
} }
Xorriso_choose_speed_factor(xorriso, item->write_speed, if(flag & 4) {
sprintf(respt, "Write speed : ");
speed= item->write_speed;
} else {
sprintf(respt, "Read speed : ");
speed= item->read_speed;
}
Xorriso_choose_speed_factor(xorriso, speed,
item->profile_loaded, item->profile_loaded,
&speed_factor, &speed_unit, 0); &speed_factor, &speed_unit, 0);
sprintf(respt, "Write speed : ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n", sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
item->write_speed, speed, ((double) speed) * 1000.0 / speed_factor, speed_unit);
((double) item->write_speed) * 1000.0 / speed_factor,
speed_unit);
Xorriso_result(xorriso,0); Xorriso_result(xorriso,0);
if(item->write_speed > high) if(speed > high)
high= item->write_speed; high= speed;
if(item->write_speed < low) if(speed < low)
low= item->write_speed; low= speed;
} }
/* Maybe there is ATIP info */ /* Maybe there is ATIP info (about write speed only) */
if(is_cd) { if(is_cd && (flag & 4)) {
ret= burn_disc_read_atip(drive); ret= burn_disc_read_atip(drive);
if(ret < 0) if(ret < 0)
goto ex; goto ex;
@ -1692,18 +1711,24 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
if(high > -1) { if(high > -1) {
Xorriso_choose_speed_factor(xorriso, low, recent_profile, Xorriso_choose_speed_factor(xorriso, low, recent_profile,
&speed_factor, &speed_unit, 0); &speed_factor, &speed_unit, 0);
sprintf(respt, "Write speed L: "); if(flag & 4)
sprintf(respt, "Write speed L: ");
else
sprintf(respt, "Read speed L : ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n", sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
low, ((double) low) * 1000.0 / speed_factor, speed_unit); low, ((double) low) * 1000.0 / speed_factor, speed_unit);
Xorriso_result(xorriso,0); Xorriso_result(xorriso,0);
Xorriso_choose_speed_factor(xorriso, low, recent_profile, Xorriso_choose_speed_factor(xorriso, low, recent_profile,
&speed_factor, &speed_unit, 0); &speed_factor, &speed_unit, 0);
sprintf(respt, "Write speed H: "); if(flag & 4)
sprintf(respt, "Write speed H: ");
else
sprintf(respt, "Read speed H : ");
sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n", sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n",
high, ((double) high) * 1000.0 / speed_factor, speed_unit); high, ((double) high) * 1000.0 / speed_factor, speed_unit);
Xorriso_result(xorriso,0); Xorriso_result(xorriso,0);
ret= burn_drive_get_best_speed(drive, 0, &item, 2); ret= burn_drive_get_best_speed(drive, 0, &item, 2);
if(ret > 0 && item != NULL) if(ret > 0 && item != NULL && (flag & 4))
if(item->write_speed != high) { if(item->write_speed != high) {
sprintf(respt, "Write speed 0: %5dk , %4.1fx%s\n", sprintf(respt, "Write speed 0: %5dk , %4.1fx%s\n",
item->write_speed, item->write_speed,
@ -1712,7 +1737,8 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
} }
} else { } else {
sprintf(xorriso->info_text, sprintf(xorriso->info_text,
"Could not get any write speed information from drive"); "Could not get any %s speed information from drive",
(flag & 4) ? "write" : "read");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
ret= 0; goto ex; ret= 0; goto ex;
} }
@ -1724,6 +1750,35 @@ ex:;
} }
int Xorriso_list_speeds(struct XorrisO *xorriso, int flag)
{
int ret;
if(xorriso->out_drive_handle == NULL && xorriso->in_drive_handle == NULL) {
Xorriso_msgs_submit(xorriso, 0,
"No drive aquired on attempt to list speeds", 0, "FAILURE", 0);
return(0);
}
if(xorriso->in_drive_handle != NULL) {
ret= Xorriso_list_speeds_sub(xorriso, 0);
if(ret <= 0)
return(ret);
}
if(xorriso->out_drive_handle != NULL &&
xorriso->out_drive_handle != xorriso->in_drive_handle) {
ret= Xorriso_list_speeds_sub(xorriso, 2);
if(ret <= 0)
return(ret);
}
if(xorriso->out_drive_handle != NULL) {
ret= Xorriso_list_speeds_sub(xorriso, 1 | 2 | 4);
if(ret <= 0)
return(ret);
}
return(1);
}
/* @param flag bit0= cdrecord style /* @param flag bit0= cdrecord style
bit1= obtain outdrive, else indrive bit1= obtain outdrive, else indrive
@return <=0 error, 1 success @return <=0 error, 1 success
@ -2088,6 +2143,9 @@ int Xorriso_check_md5_range(struct XorrisO *xorriso, off_t start_lba,
Xorriso_no_malloc_memory(xorriso, NULL, 0); Xorriso_no_malloc_memory(xorriso, NULL, 0);
goto ex; goto ex;
} }
if(xorriso->read_speed != -2)
burn_drive_set_speed(drive, xorriso->read_speed, 0);
Xorriso_process_msg_queues(xorriso,0);
for(pos= start_lba; pos < end_lba; pos+= 32) { for(pos= start_lba; pos < end_lba; pos+= 32) {
to_read= 32; to_read= 32;
if(pos + to_read > end_lba) if(pos + to_read > end_lba)
@ -2607,6 +2665,9 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
goto ex; goto ex;
} }
if(xorriso->read_speed != -2)
burn_drive_set_speed(drive, xorriso->read_speed, 0);
Xorriso_process_msg_queues(xorriso,0);
start_lba= from_lba; start_lba= from_lba;
to_read= read_chunk; to_read= read_chunk;
post_read_time= Sfile_microtime(0); post_read_time= Sfile_microtime(0);

View File

@ -1533,6 +1533,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" those lists empty. Defaulty entry in \"risky\" is \"/dev\".", " those lists empty. Defaulty entry in \"risky\" is \"/dev\".",
" -grow_blindly \"off\"|predicted_nwa", " -grow_blindly \"off\"|predicted_nwa",
" Switch between modifying and blind growing.", " Switch between modifying and blind growing.",
" -read_speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
" Set the read speed. Default is \"none\" = do not set speed",
" before reading.",
" -load \"session\"|\"track\"|\"lba\"|\"sbsector\"|\"volid\"|\"auto\" id", " -load \"session\"|\"track\"|\"lba\"|\"sbsector\"|\"volid\"|\"auto\" id",
" Load a particular (outdated) ISO image from a -dev or", " Load a particular (outdated) ISO image from a -dev or",
" -indev which hosts more than one session.", " -indev which hosts more than one session.",
@ -1904,7 +1907,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -dummy \"on\"|\"off\"", " -dummy \"on\"|\"off\"",
" If \"on\" simulate burning. Refuse if medium cannot simulate.", " If \"on\" simulate burning. Refuse if medium cannot simulate.",
" -speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]", " -speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
" Set the burn speed. Default is 0 = maximum speed.", " Set the burn speed. Default is \"max\" = maximum speed.",
" -stream_recording \"on\"|\"off\"", " -stream_recording \"on\"|\"off\"",
" Try to circumvent slow checkread on DVD-RAM, BD-RE, BD-R.", " Try to circumvent slow checkread on DVD-RAM, BD-RE, BD-R.",
" -dvd_obs \"default\"|\"32k\"|\"64k\"", " -dvd_obs \"default\"|\"32k\"|\"64k\"",

View File

@ -1318,19 +1318,34 @@ int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag)
} }
/* Option -speed */ /* Commands -speed , -read_speed */
/* @param flag bit0= -read_speed rather than -speed
*/
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag) int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag)
{ {
int is_cd= 1, unit_found= 0, ret, profile_number; int is_cd= 1, unit_found= 0, ret, profile_number, intspeed= 1;
double num; double num= -2.0;
char *cpt, profile_name[80]; char *cpt, profile_name[80];
if(speed[0]==0 || strcmp(speed, "any")==0) { if(speed[0] == 0 || strcmp(speed, "any") == 0 || strcmp(speed, "max") == 0) {
xorriso->speed= 0; /* full speed */ intspeed= 0;
} else if(strcmp(speed, "min") == 0) {
intspeed= -1;
} else if(strcmp(speed, "none") == 0) {
intspeed= -2;
} else {
sscanf(speed,"%lf",&num);
if(num <= 0)
intspeed= num;
}
if(intspeed <= 0) {
if(flag & 1)
xorriso->read_speed= intspeed;
else
xorriso->write_speed= intspeed;
return(1); return(1);
} }
sscanf(speed,"%lf",&num);
for(cpt= speed+strlen(speed)-1; cpt>=speed; cpt--) for(cpt= speed+strlen(speed)-1; cpt>=speed; cpt--)
if(isdigit(*cpt) || *cpt=='.') if(isdigit(*cpt) || *cpt=='.')
break; break;
@ -1357,7 +1372,8 @@ dvd_speed:;
bd_speed:; bd_speed:;
num*= 4495.625; num*= 4495.625;
} else { } else {
ret= Xorriso_get_profile(xorriso, &profile_number, profile_name, 2); ret= Xorriso_get_profile(xorriso, &profile_number, profile_name,
2 * !(flag & 1));
is_cd= (ret==2); is_cd= (ret==2);
if(is_cd) if(is_cd)
goto cd_speed; goto cd_speed;
@ -1373,9 +1389,13 @@ bd_speed:;
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0); return(0);
} }
xorriso->speed= num; intspeed= num;
if(xorriso->speed<num) if(intspeed < num)
xorriso->speed++; intspeed++;
if(flag & 1)
xorriso->read_speed= intspeed;
else
xorriso->write_speed= intspeed;
return(1); return(1);
} }

View File

@ -515,7 +515,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
"pacifier","padding","path_list","pathspecs","pkt_output", "pacifier","padding","path_list","pathspecs","pkt_output",
"preparer_id","print","print_info","print_mark","prompt", "preparer_id","print","print_info","print_mark","prompt",
"prog","prog_help","publisher","quoted_not_list","quoted_path_list", "prog","prog_help","publisher","quoted_not_list","quoted_path_list",
"reassure","report_about","rockridge", "read_speed","reassure","report_about","rockridge",
"rom_toc_scan","rr_reloc_dir","scsi_log", "rom_toc_scan","rr_reloc_dir","scsi_log",
"session_log","sh_style_result","signal_handling","sleep", "session_log","sh_style_result","signal_handling","sleep",
"speed","split_size","status","status_history_max", "speed","split_size","status","status_history_max",
@ -649,7 +649,8 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
"mount_opts", "mount_cmd", "session_string", "mount_opts", "mount_cmd", "session_string",
"* Influencing the behavior of image loading:", "* Influencing the behavior of image loading:",
"load", "displacement", "drive_class", "assert_volid", "in_charset", "read_speed", "load", "displacement",
"drive_class", "assert_volid", "in_charset",
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup", "auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write", "disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
"early_stdio_test", "data_cache_size", "early_stdio_test", "data_cache_size",
@ -1611,6 +1612,10 @@ next_command:;
} else if(strcmp(cmd,"read_mkisofsrc")==0) { } else if(strcmp(cmd,"read_mkisofsrc")==0) {
ret= Xorriso_option_read_mkisofsrc(xorriso, 0); ret= Xorriso_option_read_mkisofsrc(xorriso, 0);
} else if(strcmp(cmd,"read_speed")==0) {
(*idx)++;
ret= Xorriso_option_speed(xorriso, arg1, 1);
} else if(strcmp(cmd,"reassure")==0) { } else if(strcmp(cmd,"reassure")==0) {
(*idx)++; (*idx)++;
ret= Xorriso_option_reassure(xorriso, arg1, 0); ret= Xorriso_option_reassure(xorriso, arg1, 0);

View File

@ -2439,6 +2439,25 @@ int Xorriso_boot_status_sysarea(struct XorrisO *xorriso, char *filter,
} }
static char *Xorriso__speedname(int speed)
{
static char name[64];
if(speed > 0) {
sprintf(name, "%dkB/s", speed);
return(name);
} else if(speed == 0) {
return("max");
} else if(speed == -1) {
return("min");
} else if(speed == -2) {
return("none");
}
sprintf(name, "%d", speed);
return(name);
}
int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag) int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
/* /*
bit0= do only report non-default settings bit0= do only report non-default settings
@ -3042,8 +3061,8 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
if(!(is_default && no_defaults)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2); Xorriso_status_result(xorriso,filter,fp,flag&2);
is_default= (xorriso->speed==0); is_default= (xorriso->write_speed==0);
sprintf(line,"-speed %dkB/s\n", xorriso->speed); sprintf(line,"-speed %s\n", Xorriso__speedname(xorriso->write_speed));
if(!(is_default && no_defaults)) if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2); Xorriso_status_result(xorriso,filter,fp,flag&2);
@ -3360,6 +3379,11 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
} }
} }
is_default= (xorriso->read_speed == -2);
sprintf(line,"-read_speed %s\n", Xorriso__speedname(xorriso->read_speed));
if(!(is_default && no_defaults))
Xorriso_status_result(xorriso,filter,fp,flag&2);
do_single= 0; do_single= 0;
dev_filter= filter; dev_filter= filter;
if(dev_filter != NULL) { if(dev_filter != NULL) {

View File

@ -129,7 +129,8 @@ int Xorriso_make_write_options(
drive_role= burn_drive_get_drive_role(drive); drive_role= burn_drive_get_drive_role(drive);
burn_write_opts_set_multi(*burn_options, burn_write_opts_set_multi(*burn_options,
!(xorriso->do_close || drive_role==0 || drive_role==3)); !(xorriso->do_close || drive_role==0 || drive_role==3));
burn_drive_set_speed(drive, xorriso->speed, xorriso->speed); if(xorriso->write_speed != -2)
burn_drive_set_speed(drive, 0, xorriso->write_speed);
if(xorriso->do_stream_recording == 1) if(xorriso->do_stream_recording == 1)
stream_mode= 1; stream_mode= 1;
else if(xorriso->do_stream_recording == 2) else if(xorriso->do_stream_recording == 2)

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.3.3, Sep 07, 2013" .TH XORRISO 1 "Version 1.3.3, Oct 08, 2013"
.\" 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:
@ -692,6 +692,38 @@ The following commands should normally be performed before loading an image
by acquiring an input drive. In rare cases it is desirable to activate by acquiring an input drive. In rare cases it is desirable to activate
them only after image loading. them only after image loading.
.TP .TP
\fB\-read_speed\fR code|number[k|m|c|d|b]
Set the speed for reading. Default is "none", which avoids to send a speed
setting command to the drive before reading begins.
.br
Further special speed codes are:
.br
"max" (or "0") selects maximum speed as announced by the drive.
.br
"min" (or "\-1") selects minimum speed as announced by the drive.
.br
Speed can be given in media dependent numbers or as a
desired throughput per second in MMC compliant kB (= 1000)
or MB (= 1000 kB). Media x\-speed factor can be set explicity
by "c" for CD, "d" for DVD, "b" for BD, "x" is optional.
.br
Example speeds:
.br
706k = 706kB/s = 4c = 4xCD
.br
5540k = 5540kB/s = 4d = 4xDVD
.br
If there is no hint about the speed unit attached, then the
medium in the \-indev will decide. Default unit is CD = 176.4k.
.br
MMC drives usually activate their own idea of speed and take
the speed value given by the burn program only as upper limit
for their own decision.
.br
Depending on the drive, the reported read speeds can be deceivingly low.
Often it is possible to achieve higher read speeds by bold values
like "20xDVD" or "16xBD".
.TP
\fB\-load\fR entity id \fB\-load\fR entity id
Load a particular (possibly outdated) ISO session from \-dev or \-indev. Load a particular (possibly outdated) ISO session from \-dev or \-indev.
Usually all available sessions are shown with command \-toc. Usually all available sessions are shown with command \-toc.
@ -2291,8 +2323,11 @@ MMC format codes are manifold. Most important are:
Smaller format size with DVD\-RAM, BD\-RE, or BD\-R means more reserve space. Smaller format size with DVD\-RAM, BD\-RE, or BD\-R means more reserve space.
.TP .TP
\fB\-list_speeds\fR \fB\-list_speeds\fR
Put out a list of speed values as reported by the output drive with Put out a list of speed values as reported by the drives with the loaded
the loaded medium. This does not necessarily mean that the medium is writable media. The list tells read speeds of the input drive and of the output
drive. Further it tells write speeds of the output drive.
.br
The list of write speeds does not necessarily mean that the medium is writable
or that these speeds are actually achievable. Especially the or that these speeds are actually achievable. Especially the
lists reported with empty drive or with ROM media obviously advertise lists reported with empty drive or with ROM media obviously advertise
speeds for other media. speeds for other media.
@ -2302,13 +2337,16 @@ The drive is supposed to choose a safe speed that is as near to the desired
speed as possible. speed as possible.
.br .br
At the end of the list, "Write speed L" and "Write speed H" At the end of the list, "Write speed L" and "Write speed H"
are the best guesses for lower and upper speed limit. are the best guesses for lower and upper write speed limit.
"Write speed l" and "Write speed h" may appear only with CD "Write speed l" and "Write speed h" may appear only with CD
and eventually override the list of other speed offers. and eventually override the list of other speed offers.
.br .br
Only if the drive reports contradicting speed information there will appear Only if the drive reports contradicting speed information there will appear
"Write speed 0", which tells the outcome of speed selection by command "Write speed 0", which tells the outcome of speed selection by command
\-speed 0, if it deviates from "Write speed H". \-speed 0, if it deviates from "Write speed H".
.br
"Read speed L" and "Read speed H" tell the minimum and maximum read speeds,
as would be chosen by \-read_speed "min" resp. "max".
.TP .TP
\fB\-close_damaged\fR "as_needed"|"force" \fB\-close_damaged\fR "as_needed"|"force"
Try to close the upcomming track and session if the drive reported the medium Try to close the upcomming track and session if the drive reported the medium
@ -2665,8 +2703,16 @@ mkzftree.
.br .br
"default" same as "level=6:block_size=32k:by_magic=off" "default" same as "level=6:block_size=32k:by_magic=off"
.TP .TP
\fB\-speed\fR number[k|m|c|d|b] \fB\-speed\fR code|number[k|m|c|d|b]
Set the burn speed. Default is 0 = maximum speed. Set the burn speed. Default is "max" (or "0") = maximum speed as announced
by the drive.
Further special speed codes are:
.br
"min" (or "\-1") selects minimum speed as announced by the drive.
.br
"none" avoids to send a speed setting command to the drive before
burning begins.
.br
Speed can be given in media dependent numbers or as a Speed can be given in media dependent numbers or as a
desired throughput per second in MMC compliant kB (= 1000) desired throughput per second in MMC compliant kB (= 1000)
or MB (= 1000 kB). Media x\-speed factor can be set explicity or MB (= 1000 kB). Media x\-speed factor can be set explicity

View File

@ -1871,7 +1871,10 @@ int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode,
/* @since 1.1.8 */ /* @since 1.1.8 */
int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag); int Xorriso_option_sleep(struct XorrisO *xorriso, char *duration, int flag);
/* Command -speed */ /* Command -speed , -read_speed */
/* @param flag bit0= @since 1.3.4
-read_speed rather than -speed
*/
int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag); int Xorriso_option_speed(struct XorrisO *xorriso, char *speed, int flag);
/* Command -split_size */ /* Command -split_size */

View File

@ -645,6 +645,28 @@ The following commands should normally be performed before loading an
image by acquiring an input drive. In rare cases it is desirable to image by acquiring an input drive. In rare cases it is desirable to
activate them only after image loading. activate them only after image loading.
-read_speed code|number[k|m|c|d|b]
Set the speed for reading. Default is "none", which avoids to send
a speed setting command to the drive before reading begins.
Further special speed codes are:
"max" (or "0") selects maximum speed as announced by the drive.
"min" (or "-1") selects minimum speed as announced by the drive.
Speed can be given in media dependent numbers or as a desired
throughput per second in MMC compliant kB (= 1000) or MB (= 1000
kB). Media x-speed factor can be set explicity by "c" for CD, "d"
for DVD, "b" for BD, "x" is optional.
Example speeds:
706k = 706kB/s = 4c = 4xCD
5540k = 5540kB/s = 4d = 4xDVD
If there is no hint about the speed unit attached, then the medium
in the -indev will decide. Default unit is CD = 176.4k.
MMC drives usually activate their own idea of speed and take the
speed value given by the burn program only as upper limit for
their own decision.
Depending on the drive, the reported read speeds can be
deceivingly low. Often it is possible to achieve higher read
speeds by bold values like "20xDVD" or "16xBD".
-load entity id -load entity id
Load a particular (possibly outdated) ISO session from -dev or Load a particular (possibly outdated) ISO session from -dev or
-indev. Usually all available sessions are shown with command -indev. Usually all available sessions are shown with command
@ -2032,8 +2054,11 @@ File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Command
reserve space. reserve space.
-list_speeds -list_speeds
Put out a list of speed values as reported by the output drive with Put out a list of speed values as reported by the drives with the
the loaded medium. This does not necessarily mean that the medium loaded media. The list tells read speeds of the input drive and of
the output drive. Further it tells write speeds of the output
drive.
The list of write speeds does not necessarily mean that the medium
is writable or that these speeds are actually achievable. is writable or that these speeds are actually achievable.
Especially the lists reported with empty drive or with ROM media Especially the lists reported with empty drive or with ROM media
obviously advertise speeds for other media. obviously advertise speeds for other media.
@ -2041,12 +2066,14 @@ File: xorriso.info, Node: Writing, Next: SetWrite, Prev: Filter, Up: Command
The drive is supposed to choose a safe speed that is as near to The drive is supposed to choose a safe speed that is as near to
the desired speed as possible. the desired speed as possible.
At the end of the list, "Write speed L" and "Write speed H" are At the end of the list, "Write speed L" and "Write speed H" are
the best guesses for lower and upper speed limit. "Write speed l" the best guesses for lower and upper write speed limit. "Write
and "Write speed h" may appear only with CD and eventually speed l" and "Write speed h" may appear only with CD and
override the list of other speed offers. eventually override the list of other speed offers.
Only if the drive reports contradicting speed information there Only if the drive reports contradicting speed information there
will appear "Write speed 0", which tells the outcome of speed will appear "Write speed 0", which tells the outcome of speed
selection by command -speed 0, if it deviates from "Write speed H". selection by command -speed 0, if it deviates from "Write speed H".
"Read speed L" and "Read speed H" tell the minimum and maximum
read speeds, as would be chosen by -read_speed "min" resp. "max".
-close_damaged "as_needed"|"force" -close_damaged "as_needed"|"force"
Try to close the upcomming track and session if the drive reported Try to close the upcomming track and session if the drive reported
@ -2364,12 +2391,16 @@ according to the setting of command -acl.
compressed, e.g. by program mkzftree. compressed, e.g. by program mkzftree.
"default" same as "level=6:block_size=32k:by_magic=off" "default" same as "level=6:block_size=32k:by_magic=off"
-speed number[k|m|c|d|b] -speed code|number[k|m|c|d|b]
Set the burn speed. Default is 0 = maximum speed. Speed can be Set the burn speed. Default is "max" (or "0") = maximum speed as
given in media dependent numbers or as a desired throughput per announced by the drive. Further special speed codes are:
second in MMC compliant kB (= 1000) or MB (= 1000 kB). Media "min" (or "-1") selects minimum speed as announced by the drive.
x-speed factor can be set explicity by "c" for CD, "d" for DVD, "none" avoids to send a speed setting command to the drive before
"b" for BD, "x" is optional. burning begins.
Speed can be given in media dependent numbers or as a desired
throughput per second in MMC compliant kB (= 1000) or MB (= 1000
kB). Media x-speed factor can be set explicity by "c" for CD, "d"
for DVD, "b" for BD, "x" is optional.
Example speeds: Example speeds:
706k = 706kB/s = 4c = 4xCD 706k = 706kB/s = 4c = 4xCD
5540k = 5540kB/s = 4d = 4xDVD 5540k = 5540kB/s = 4d = 4xDVD
@ -4793,7 +4824,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* # starts a comment line: Scripting. (line 173) * # starts a comment line: Scripting. (line 173)
* -abort_on controls abort on error: Exception. (line 27) * -abort_on controls abort on error: Exception. (line 27)
* -abstract_file sets abstract file name: SetWrite. (line 233) * -abstract_file sets abstract file name: SetWrite. (line 233)
* -acl controls handling of ACLs: Loading. (line 146) * -acl controls handling of ACLs: Loading. (line 168)
* -add inserts one or more paths: Insert. (line 46) * -add inserts one or more paths: Insert. (line 46)
* -add_plainly inserts one or more paths: Insert. (line 65) * -add_plainly inserts one or more paths: Insert. (line 65)
* -alter_date sets timestamps in ISO image: Manip. (line 154) * -alter_date sets timestamps in ISO image: Manip. (line 154)
@ -4803,14 +4834,14 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -application_id sets application id: SetWrite. (line 192) * -application_id sets application id: SetWrite. (line 192)
* -application_use sets application use field: SetWrite. (line 258) * -application_use sets application use field: SetWrite. (line 258)
* -as emulates mkisofs or cdrecord: Emulation. (line 13) * -as emulates mkisofs or cdrecord: Emulation. (line 13)
* -assert_volid rejects undesired images: Loading. (line 84) * -assert_volid rejects undesired images: Loading. (line 106)
* -auto_charset learns character set from image: Loading. (line 98) * -auto_charset learns character set from image: Loading. (line 120)
* -backslash_codes enables backslash conversion: Scripting. (line 78) * -backslash_codes enables backslash conversion: Scripting. (line 78)
* -ban_stdio_write demands real drive: Loading. (line 254) * -ban_stdio_write demands real drive: Loading. (line 276)
* -biblio_file sets biblio file name: SetWrite. (line 240) * -biblio_file sets biblio file name: SetWrite. (line 240)
* -blank erases media: Writing. (line 61) * -blank erases media: Writing. (line 61)
* -boot_image controls bootability: Bootable. (line 26) * -boot_image controls bootability: Bootable. (line 26)
* -calm_drive reduces drive activity: Loading. (line 243) * -calm_drive reduces drive activity: Loading. (line 265)
* -cd sets working directory in ISO: Navigate. (line 7) * -cd sets working directory in ISO: Navigate. (line 7)
* -cdx sets working directory on disk: Navigate. (line 16) * -cdx sets working directory on disk: Navigate. (line 16)
* -changes_pending overrides change status: Writing. (line 13) * -changes_pending overrides change status: Writing. (line 13)
@ -4826,8 +4857,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -chown sets ownership in ISO image: Manip. (line 49) * -chown sets ownership in ISO image: Manip. (line 49)
* -chown_r sets ownership in ISO image: Manip. (line 54) * -chown_r sets ownership in ISO image: Manip. (line 54)
* -clone copies ISO directory tree: Insert. (line 180) * -clone copies ISO directory tree: Insert. (line 180)
* -close controls media closing: SetWrite. (line 349) * -close controls media closing: SetWrite. (line 353)
* -close_damaged closes damaged track and session: Writing. (line 163) * -close_damaged closes damaged track and session: Writing. (line 168)
* -close_filter_list bans filter registration: Filter. (line 52) * -close_filter_list bans filter registration: Filter. (line 52)
* -commit writes pending ISO image: Writing. (line 29) * -commit writes pending ISO image: Writing. (line 29)
* -commit_eject writes and ejects: Writing. (line 56) * -commit_eject writes and ejects: Writing. (line 56)
@ -4842,23 +4873,23 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -cpr inserts like with cp -r: Insert. (line 156) * -cpr inserts like with cp -r: Insert. (line 156)
* -cpx copies files to disk: Restore. (line 95) * -cpx copies files to disk: Restore. (line 95)
* -cut_out inserts piece of data file: Insert. (line 130) * -cut_out inserts piece of data file: Insert. (line 130)
* -data_cache_size adjusts read cache size: Loading. (line 272) * -data_cache_size adjusts read cache size: Loading. (line 294)
* -dev acquires one drive for input and output: AqDrive. (line 12) * -dev acquires one drive for input and output: AqDrive. (line 12)
* -device_links gets list of drives: Inquiry. (line 18) * -device_links gets list of drives: Inquiry. (line 18)
* -devices gets list of drives: Inquiry. (line 7) * -devices gets list of drives: Inquiry. (line 7)
* -dialog enables dialog mode: DialogCtl. (line 7) * -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 193) * -disk_dev_ino fast incremental backup: Loading. (line 215)
* -disk_pattern controls pattern expansion: Insert. (line 35) * -disk_pattern controls pattern expansion: Insert. (line 35)
* -displacement compensate altered image start address: Loading. * -displacement compensate altered image start address: Loading.
(line 36) (line 58)
* -drive_class controls drive accessability: Loading. (line 54) * -drive_class controls drive accessability: Loading. (line 76)
* -du show directory size in ISO image: Navigate. (line 89) * -du show directory size in ISO image: Navigate. (line 89)
* -dummy controls write simulation: SetWrite. (line 338) * -dummy controls write simulation: SetWrite. (line 342)
* -dus show directory size in ISO image: Navigate. (line 93) * -dus show directory size in ISO image: Navigate. (line 93)
* -dusx show directory size on disk: Navigate. (line 102) * -dusx show directory size on disk: Navigate. (line 102)
* -dux show directory size on disk: Navigate. (line 97) * -dux show directory size on disk: Navigate. (line 97)
* -dvd_obs set write block size: SetWrite. (line 325) * -dvd_obs set write block size: SetWrite. (line 329)
* -early_stdio_test classifies stdio drives: Loading. (line 259) * -early_stdio_test classifies stdio drives: Loading. (line 281)
* -eject ejects drive tray: Writing. (line 52) * -eject ejects drive tray: Writing. (line 52)
* -end writes pending session and ends program: Scripting. (line 167) * -end writes pending session and ends program: Scripting. (line 167)
* -errfile_log logs problematic disk files: Scripting. (line 129) * -errfile_log logs problematic disk files: Scripting. (line 129)
@ -4873,21 +4904,21 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -find traverses and alters ISO tree: CmdFind. (line 7) * -find traverses and alters ISO tree: CmdFind. (line 7)
* -findx traverses disk tree: Navigate. (line 106) * -findx traverses disk tree: Navigate. (line 106)
* -follow softlinks and mount points: SetInsert. (line 76) * -follow softlinks and mount points: SetInsert. (line 76)
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 188) * -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 210)
* -format formats media: Writing. (line 91) * -format formats media: Writing. (line 91)
* -fs sets size of fifo: SetWrite. (line 342) * -fs sets size of fifo: SetWrite. (line 346)
* -getfacl shows ACL in ISO image: Navigate. (line 70) * -getfacl shows ACL in ISO image: Navigate. (line 70)
* -getfacl_r shows ACL in ISO image: Navigate. (line 77) * -getfacl_r shows ACL in ISO image: Navigate. (line 77)
* -getfattr shows xattr in ISO image: Navigate. (line 81) * -getfattr shows xattr in ISO image: Navigate. (line 81)
* -getfattr_r shows xattr in ISO image: Navigate. (line 85) * -getfattr_r shows xattr in ISO image: Navigate. (line 85)
* -gid sets global ownership: SetWrite. (line 282) * -gid sets global ownership: SetWrite. (line 282)
* -grow_blindly overides next writeable address: AqDrive. (line 46) * -grow_blindly overides next writeable address: AqDrive. (line 46)
* -hardlinks controls handling of hard links: Loading. (line 110) * -hardlinks controls handling of hard links: Loading. (line 132)
* -help prints help text: Scripting. (line 20) * -help prints help text: Scripting. (line 20)
* -hfsplus enables production of HFS+ partition: SetWrite. (line 14) * -hfsplus enables production of HFS+ partition: SetWrite. (line 14)
* -hide excludes file names from directory trees: Manip. (line 184) * -hide excludes file names from directory trees: Manip. (line 184)
* -history brings text into readline history: Scripting. (line 44) * -history brings text into readline history: Scripting. (line 44)
* -in_charset sets input character set: Loading. (line 92) * -in_charset sets input character set: Loading. (line 114)
* -indev acquires a drive for input: AqDrive. (line 24) * -indev acquires a drive for input: AqDrive. (line 24)
* -iso_rr_pattern controls pattern expansion: Manip. (line 10) * -iso_rr_pattern controls pattern expansion: Manip. (line 10)
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33) * -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33)
@ -4899,10 +4930,10 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -list_extras lists compile time extra features: Scripting. * -list_extras lists compile time extra features: Scripting.
(line 26) (line 26)
* -list_formats lists available formats: Writing. (line 134) * -list_formats lists available formats: Writing. (line 134)
* -list_profiles lists supported media: Writing. (line 177) * -list_profiles lists supported media: Writing. (line 182)
* -list_speeds lists available write speeds: Writing. (line 146) * -list_speeds lists available write speeds: Writing. (line 146)
* -lns creates ISO symbolic link: Insert. (line 175) * -lns creates ISO symbolic link: Insert. (line 175)
* -load addresses a particular session as input: Loading. (line 11) * -load addresses a particular session as input: Loading. (line 33)
* -local_charset sets terminal character set: Charset. (line 47) * -local_charset sets terminal character set: Charset. (line 47)
* -logfile logs output channels to file: Frontend. (line 20) * -logfile logs output channels to file: Frontend. (line 20)
* -ls lists files in ISO image: Navigate. (line 26) * -ls lists files in ISO image: Navigate. (line 26)
@ -4917,7 +4948,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -map_l inserts paths from disk file: Insert. (line 98) * -map_l inserts paths from disk file: Insert. (line 98)
* -map_single inserts path: Insert. (line 94) * -map_single inserts path: Insert. (line 94)
* -mark sets synchronizing message: Frontend. (line 25) * -mark sets synchronizing message: Frontend. (line 25)
* -md5 controls handling of MD5 sums: Loading. (line 159) * -md5 controls handling of MD5 sums: Loading. (line 181)
* -mkdir creates ISO directory: Insert. (line 170) * -mkdir creates ISO directory: Insert. (line 170)
* -mount issues mount command for ISO session: Restore. (line 129) * -mount issues mount command for ISO session: Restore. (line 129)
* -mount_cmd composes mount command line: Inquiry. (line 52) * -mount_cmd composes mount command line: Inquiry. (line 52)
@ -4937,7 +4968,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -outdev acquires a drive for output: AqDrive. (line 31) * -outdev acquires a drive for output: AqDrive. (line 31)
* -overwrite enables overwriting in ISO: SetInsert. (line 127) * -overwrite enables overwriting in ISO: SetInsert. (line 127)
* -pacifier controls pacifier text form: Emulation. (line 163) * -pacifier controls pacifier text form: Emulation. (line 163)
* -padding sets amount or mode of image padding: SetWrite. (line 363) * -padding sets amount or mode of image padding: SetWrite. (line 367)
* -page set terminal geometry: DialogCtl. (line 19) * -page set terminal geometry: DialogCtl. (line 19)
* -paste_in copies file into disk file: Restore. (line 124) * -paste_in copies file into disk file: Restore. (line 124)
* -path_list inserts paths from disk file: Insert. (line 79) * -path_list inserts paths from disk file: Insert. (line 79)
@ -4959,6 +4990,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -quoted_path_list inserts paths from disk file: Insert. (line 84) * -quoted_path_list inserts paths from disk file: Insert. (line 84)
* -read_mkisofsrc searches and reads .mkisofsrc file: Emulation. * -read_mkisofsrc searches and reads .mkisofsrc file: Emulation.
(line 151) (line 151)
* -read_speed set read speed: Loading. (line 11)
* -reassure enables confirmation question: DialogCtl. (line 32) * -reassure enables confirmation question: DialogCtl. (line 32)
* -report_about controls verbosity: Exception. (line 55) * -report_about controls verbosity: Exception. (line 55)
* -return_with controls exit value: Exception. (line 39) * -return_with controls exit value: Exception. (line 39)
@ -4969,7 +5001,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
(line 52) (line 52)
* -rollback discards pending changes: Writing. (line 9) * -rollback discards pending changes: Writing. (line 9)
* -rollback_end ends program without writing: Scripting. (line 170) * -rollback_end ends program without writing: Scripting. (line 170)
* -rom_toc_scan searches for sessions: Loading. (line 214) * -rom_toc_scan searches for sessions: Loading. (line 236)
* -rr_reloc_dir sets name of relocation directory: SetWrite. * -rr_reloc_dir sets name of relocation directory: SetWrite.
(line 141) (line 141)
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 177) * -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 177)
@ -4995,8 +5027,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -split_size enables large file splitting: SetInsert. (line 140) * -split_size enables large file splitting: SetInsert. (line 140)
* -status shows current settings: Scripting. (line 47) * -status shows current settings: Scripting. (line 47)
* -status_history_max curbs -status history: Scripting. (line 56) * -status_history_max curbs -status history: Scripting. (line 56)
* -stdio_sync controls stdio buffer: SetWrite. (line 332) * -stdio_sync controls stdio buffer: SetWrite. (line 336)
* -stream_recording controls defect management: SetWrite. (line 313) * -stream_recording controls defect management: SetWrite. (line 317)
* -system_id sets system id: SetWrite. (line 201) * -system_id sets system id: SetWrite. (line 201)
* -tell_media_space reports free space: Inquiry. (line 104) * -tell_media_space reports free space: Inquiry. (line 104)
* -temp_mem_limit curbs memory consumption: Scripting. (line 103) * -temp_mem_limit curbs memory consumption: Scripting. (line 103)
@ -5011,10 +5043,10 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -volid sets volume id: SetWrite. (line 160) * -volid sets volume id: SetWrite. (line 160)
* -volset_id sets volume set id: SetWrite. (line 181) * -volset_id sets volume set id: SetWrite. (line 181)
* -volume_date sets volume timestamp: SetWrite. (line 208) * -volume_date sets volume timestamp: SetWrite. (line 208)
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 355) * -write_type chooses TAO or SAO/DAO: SetWrite. (line 359)
* -x enables automatic execution order of arguments: ArgSort. * -x enables automatic execution order of arguments: ArgSort.
(line 16) (line 16)
* -xattr controls handling of xattr (EA): Loading. (line 154) * -xattr controls handling of xattr (EA): Loading. (line 176)
* -zisofs controls zisofs production: SetWrite. (line 286) * -zisofs controls zisofs production: SetWrite. (line 286)
 
@ -5027,7 +5059,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Menu: * Menu:
* ACL, _definition: Extras. (line 49) * ACL, _definition: Extras. (line 49)
* ACL, control handling, -acl: Loading. (line 146) * ACL, control handling, -acl: Loading. (line 168)
* ACL, set in ISO image, -setfacl: Manip. (line 80) * ACL, set in ISO image, -setfacl: Manip. (line 80)
* ACL, set in ISO image, -setfacl_list: Manip. (line 108) * ACL, set in ISO image, -setfacl_list: Manip. (line 108)
* ACL, set in ISO image, -setfacl_r: Manip. (line 105) * ACL, set in ISO image, -setfacl_r: Manip. (line 105)
@ -5039,8 +5071,8 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Appended Filesystem Image, -append_partition: Bootable. (line 249) * Appended Filesystem Image, -append_partition: Bootable. (line 249)
* Automatic execution order, of arguments, -x: ArgSort. (line 16) * Automatic execution order, of arguments, -x: ArgSort. (line 16)
* Backslash Interpretation, _definition: Processing. (line 52) * Backslash Interpretation, _definition: Processing. (line 52)
* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 193) * Backup, enable fast incremental, -disk_dev_ino: Loading. (line 215)
* Backup, enable features, -for_backup: Loading. (line 188) * Backup, enable features, -for_backup: Loading. (line 210)
* Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 177) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 177)
* Blank media, _definition: Media. (line 29) * Blank media, _definition: Media. (line 29)
* Blind growing, _definition: Methods. (line 40) * Blind growing, _definition: Methods. (line 40)
@ -5048,10 +5080,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Bugs, reporting: Bugreport. (line 6) * Bugs, reporting: Bugreport. (line 6)
* cdrecord, Emulation: Emulation. (line 116) * cdrecord, Emulation: Emulation. (line 116)
* Character Set, _definition: Charset. (line 6) * Character Set, _definition: Charset. (line 6)
* Character Set, for input, -in_charset: Loading. (line 92) * Character Set, for input, -in_charset: Loading. (line 114)
* Character Set, for input/output, -charset: Charset. (line 43) * Character Set, for input/output, -charset: Charset. (line 43)
* Character Set, for output, -out_charset: SetWrite. (line 272) * Character Set, for output, -out_charset: SetWrite. (line 272)
* Character set, learn from image, -auto_charset: Loading. (line 98) * Character set, learn from image, -auto_charset: Loading. (line 120)
* Character Set, of terminal, -local_charset: Charset. (line 47) * Character Set, of terminal, -local_charset: Charset. (line 47)
* CHRP partition, _definition: Bootable. (line 158) * CHRP partition, _definition: Bootable. (line 158)
* Closed media, _definition: Media. (line 43) * Closed media, _definition: Media. (line 43)
@ -5060,7 +5092,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Create, new ISO image, _definition: Methods. (line 6) * Create, new ISO image, _definition: Methods. (line 6)
* Cylinder alignment, _definition: Bootable. (line 198) * Cylinder alignment, _definition: Bootable. (line 198)
* Cylinder size, _definition: Bootable. (line 187) * Cylinder size, _definition: Bootable. (line 187)
* Damaged track and session, close, -close_damaged: Writing. (line 163) * Damaged track and session, close, -close_damaged: Writing. (line 168)
* Delete, from ISO image, -rm: Manip. (line 21) * Delete, from ISO image, -rm: Manip. (line 21)
* Delete, from ISO image, -rm_r: Manip. (line 28) * Delete, from ISO image, -rm_r: Manip. (line 28)
* Delete, ISO directory, -rmdir: Manip. (line 32) * Delete, ISO directory, -rmdir: Manip. (line 32)
@ -5076,17 +5108,17 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Directory, delete, -rmdir: Manip. (line 32) * Directory, delete, -rmdir: Manip. (line 32)
* disk_path, _definition: Insert. (line 6) * disk_path, _definition: Insert. (line 6)
* Drive, _definition: Drives. (line 6) * Drive, _definition: Drives. (line 6)
* Drive, accessability, -drive_class: Loading. (line 54) * Drive, accessability, -drive_class: Loading. (line 76)
* Drive, classify stdio, -early_stdio_test: Loading. (line 259) * Drive, classify stdio, -early_stdio_test: Loading. (line 281)
* Drive, demand real MMC, -ban_stdio_write: Loading. (line 254) * Drive, demand real MMC, -ban_stdio_write: Loading. (line 276)
* Drive, eject tray, -eject: Writing. (line 52) * Drive, eject tray, -eject: Writing. (line 52)
* Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 24) * Drive, for input, -indev: AqDrive. (line 24)
* Drive, for output, -outdev: AqDrive. (line 31) * Drive, for output, -outdev: AqDrive. (line 31)
* Drive, get drive list, -device_links: Inquiry. (line 18) * Drive, get drive list, -device_links: Inquiry. (line 18)
* Drive, get drive list, -devices: Inquiry. (line 7) * Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, list supported media, -list_profiles: Writing. (line 177) * Drive, list supported media, -list_profiles: Writing. (line 182)
* Drive, reduce activity, -calm_drive: Loading. (line 243) * Drive, reduce activity, -calm_drive: Loading. (line 265)
* Drive, report SCSI commands, -scsi_log: Scripting. (line 158) * Drive, report SCSI commands, -scsi_log: Scripting. (line 158)
* Drive, write and eject, -commit_eject: Writing. (line 56) * Drive, write and eject, -commit_eject: Writing. (line 56)
* EA, _definition: Extras. (line 65) * EA, _definition: Extras. (line 65)
@ -5116,13 +5148,13 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Group, in ISO image, -chgrp: Manip. (line 57) * Group, in ISO image, -chgrp: Manip. (line 57)
* Group, in ISO image, -chgrp_r: Manip. (line 62) * Group, in ISO image, -chgrp_r: Manip. (line 62)
* Growing, _definition: Methods. (line 19) * Growing, _definition: Methods. (line 19)
* Hard links, control handling, -hardlinks: Loading. (line 110) * Hard links, control handling, -hardlinks: Loading. (line 132)
* HFS+ allocation block size: Bootable. (line 237) * HFS+ allocation block size: Bootable. (line 237)
* HFS+ serial number: Bootable. (line 234) * HFS+ serial number: Bootable. (line 234)
* hidden, set in ISO image, -hide: Manip. (line 184) * hidden, set in ISO image, -hide: Manip. (line 184)
* Image reading, cache size, -data_cache_size: Loading. (line 272) * Image reading, cache size, -data_cache_size: Loading. (line 294)
* Image, _definition: Model. (line 9) * Image, _definition: Model. (line 9)
* Image, demand volume ID, -assert_volid: Loading. (line 84) * Image, demand volume ID, -assert_volid: Loading. (line 106)
* Image, discard pending changes, -rollback: Writing. (line 9) * Image, discard pending changes, -rollback: Writing. (line 9)
* Image, override change status, -changes_pending: Writing. (line 13) * Image, override change status, -changes_pending: Writing. (line 13)
* Image, set abstract file name, -abstract_file: SetWrite. (line 233) * Image, set abstract file name, -abstract_file: SetWrite. (line 233)
@ -5167,7 +5199,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* List delimiter, _definition: Processing. (line 9) * List delimiter, _definition: Processing. (line 9)
* MBR, _definition: Extras. (line 26) * MBR, _definition: Extras. (line 26)
* MBR, set, -boot_image system_area=: Bootable. (line 126) * MBR, set, -boot_image system_area=: Bootable. (line 126)
* MD5, control handling, -md5: Loading. (line 159) * MD5, control handling, -md5: Loading. (line 181)
* Media, erase, -blank: Writing. (line 61) * Media, erase, -blank: Writing. (line 61)
* Media, format, -format: Writing. (line 91) * Media, format, -format: Writing. (line 91)
* Media, list formats, -list_formats: Writing. (line 134) * Media, list formats, -list_formats: Writing. (line 134)
@ -5239,6 +5271,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Program, status history, -status_history_max: Scripting. (line 56) * Program, status history, -status_history_max: Scripting. (line 56)
* Program, wait a time span, -sleep: Scripting. (line 125) * Program, wait a time span, -sleep: Scripting. (line 125)
* Quoted input, _definition: Processing. (line 46) * Quoted input, _definition: Processing. (line 46)
* Read, set speed, -read_speed: Loading. (line 11)
* Recovery, retrieve blocks, -check_media: Verify. (line 21) * Recovery, retrieve blocks, -check_media: Verify. (line 21)
* Relocation directory, set name, -rr_reloc_dir: SetWrite. (line 141) * Relocation directory, set name, -rr_reloc_dir: SetWrite. (line 141)
* Rename, in ISO image, -move: Manip. (line 35) * Rename, in ISO image, -move: Manip. (line 35)
@ -5256,19 +5289,19 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
(line 67) (line 67)
* Rock Ridge, _definition: Extras. (line 6) * Rock Ridge, _definition: Extras. (line 6)
* Session, _definition: Model. (line 6) * Session, _definition: Model. (line 6)
* Session, altered start address, -displacement: Loading. (line 36) * Session, altered start address, -displacement: Loading. (line 58)
* Session, info string, -session_string: Inquiry. (line 78) * Session, info string, -session_string: Inquiry. (line 78)
* Session, issue mount command, -mount: Restore. (line 129) * Session, issue mount command, -mount: Restore. (line 129)
* Session, log when written, -session_log: Scripting. (line 149) * Session, log when written, -session_log: Scripting. (line 149)
* Session, mount command line, -mount_cmd: Inquiry. (line 52) * Session, mount command line, -mount_cmd: Inquiry. (line 52)
* Session, mount parameters, -mount_opts: Inquiry. (line 68) * Session, mount parameters, -mount_opts: Inquiry. (line 68)
* Session, select as input, -load: Loading. (line 11) * Session, select as input, -load: Loading. (line 33)
* Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27) * Sorting order, for -x, -list_arg_sorting: ArgSort. (line 27)
* SUN Disk Label, production: Bootable. (line 220) * SUN Disk Label, production: Bootable. (line 220)
* SUN SPARC boot images, activation: Bootable. (line 270) * SUN SPARC boot images, activation: Bootable. (line 270)
* Symbolic link, create, -lns: Insert. (line 175) * Symbolic link, create, -lns: Insert. (line 175)
* System area, _definition: Bootable. (line 126) * System area, _definition: Bootable. (line 126)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 214) * Table-of-content, search sessions, -rom_toc_scan: Loading. (line 236)
* Table-of-content, show, -toc: Inquiry. (line 28) * Table-of-content, show, -toc: Inquiry. (line 28)
* Timestamps, set in ISO image, -alter_date: Manip. (line 154) * Timestamps, set in ISO image, -alter_date: Manip. (line 154)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 180) * Timestamps, set in ISO image, -alter_date_r: Manip. (line 180)
@ -5281,27 +5314,27 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Verify, file checksum, -check_md5: Verify. (line 154) * Verify, file checksum, -check_md5: Verify. (line 154)
* Verify, file tree checksums, -check_md5_r: Verify. (line 170) * Verify, file tree checksums, -check_md5_r: Verify. (line 170)
* Verify, preset -check_media, -check_media_defaults: Verify. (line 41) * Verify, preset -check_media, -check_media_defaults: Verify. (line 41)
* Write, block size, -dvd_obs: SetWrite. (line 325) * Write, block size, -dvd_obs: SetWrite. (line 329)
* Write, bootability, -boot_image: Bootable. (line 26) * Write, bootability, -boot_image: Bootable. (line 26)
* Write, buffer syncing, -stdio_sync: SetWrite. (line 332) * Write, buffer syncing, -stdio_sync: SetWrite. (line 336)
* Write, close media, -close: SetWrite. (line 349) * Write, close media, -close: SetWrite. (line 353)
* Write, compliance to specs, -compliance: SetWrite. (line 58) * Write, compliance to specs, -compliance: SetWrite. (line 58)
* Write, defect management, -stream_recording: SetWrite. (line 313) * Write, defect management, -stream_recording: SetWrite. (line 317)
* Write, disable Rock Ridge, -rockridge: SetWrite. (line 52) * Write, disable Rock Ridge, -rockridge: SetWrite. (line 52)
* 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 342) * Write, fifo size, -fs: SetWrite. (line 346)
* Write, free space, -tell_media_space: Inquiry. (line 104) * Write, free space, -tell_media_space: Inquiry. (line 104)
* Write, log problematic disk files, -errfile_log: Scripting. (line 129) * Write, log problematic disk files, -errfile_log: Scripting. (line 129)
* Write, log written sessions, -session_log: Scripting. (line 149) * Write, log written sessions, -session_log: Scripting. (line 149)
* Write, padding image, -padding: SetWrite. (line 363) * Write, padding image, -padding: SetWrite. (line 367)
* Write, pending ISO image, -commit: Writing. (line 29) * Write, pending ISO image, -commit: Writing. (line 29)
* Write, predict image size, -print_size: Inquiry. (line 91) * Write, predict image size, -print_size: Inquiry. (line 91)
* Write, set speed, -speed: SetWrite. (line 298) * Write, set speed, -speed: SetWrite. (line 298)
* Write, simulation, -dummy: SetWrite. (line 338) * Write, simulation, -dummy: SetWrite. (line 342)
* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 355) * Write, TAO or SAO/DAO, -write_type: SetWrite. (line 359)
* xattr, _definition: Extras. (line 65) * xattr, _definition: Extras. (line 65)
* xattr, control handling, -xattr: Loading. (line 154) * xattr, control handling, -xattr: Loading. (line 176)
* xattr, set in ISO image, -setfattr: Manip. (line 118) * xattr, set in ISO image, -setfattr: Manip. (line 118)
* xattr, set in ISO image, -setfattr_list: Manip. (line 134) * xattr, set in ISO image, -setfattr_list: Manip. (line 134)
* xattr, set in ISO image, -setfattr_r: Manip. (line 131) * xattr, set in ISO image, -setfattr_r: Manip. (line 131)
@ -5324,47 +5357,47 @@ Node: Commands24622
Node: ArgSort26299 Node: ArgSort26299
Node: AqDrive27791 Node: AqDrive27791
Node: Loading30836 Node: Loading30836
Node: Insert46505 Node: Insert47670
Node: SetInsert56704 Node: SetInsert57869
Node: Manip65281 Node: Manip66446
Node: CmdFind74790 Node: CmdFind75955
Node: Filter89832 Node: Filter90997
Node: Writing94388 Node: Writing95553
Node: SetWrite104085 Node: SetWrite105545
Node: Bootable123552 Node: Bootable125256
Node: Jigdo139942 Node: Jigdo141646
Node: Charset144189 Node: Charset145893
Node: Exception146951 Node: Exception148655
Node: DialogCtl153071 Node: DialogCtl154775
Node: Inquiry155669 Node: Inquiry157373
Node: Navigate161986 Node: Navigate163690
Node: Verify170284 Node: Verify171988
Node: Restore179316 Node: Restore181020
Node: Emulation186403 Node: Emulation188107
Node: Scripting196705 Node: Scripting198409
Node: Frontend204476 Node: Frontend206180
Node: Examples214083 Node: Examples215787
Node: ExDevices215261 Node: ExDevices216965
Node: ExCreate215920 Node: ExCreate217624
Node: ExDialog217205 Node: ExDialog218909
Node: ExGrowing218470 Node: ExGrowing220174
Node: ExModifying219275 Node: ExModifying220979
Node: ExBootable219779 Node: ExBootable221483
Node: ExCharset220331 Node: ExCharset222035
Node: ExPseudo221152 Node: ExPseudo222856
Node: ExCdrecord222050 Node: ExCdrecord223754
Node: ExMkisofs222367 Node: ExMkisofs224071
Node: ExGrowisofs223707 Node: ExGrowisofs225411
Node: ExException224842 Node: ExException226546
Node: ExTime225296 Node: ExTime227000
Node: ExIncBackup225755 Node: ExIncBackup227459
Node: ExRestore229735 Node: ExRestore231439
Node: ExRecovery230668 Node: ExRecovery232372
Node: Files231238 Node: Files232942
Node: Seealso232537 Node: Seealso234241
Node: Bugreport233260 Node: Bugreport234964
Node: Legal233841 Node: Legal235545
Node: CommandIdx234852 Node: CommandIdx236556
Node: ConceptIdx251441 Node: ConceptIdx253218
 
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.3.3, Sep 07, 2013" @c man .TH XORRISO 1 "Version 1.3.3, Oct 08, 2013"
@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:
@ -910,6 +910,40 @@ them only after image loading.
@table @asis @table @asis
@sp 1 @sp 1
@c man .TP @c man .TP
@item -read_speed code|number[k|m|c|d|b]
@kindex -read_speed set read speed
@cindex Read, set speed, -read_speed
Set the speed for reading. Default is "none", which avoids to send a speed
setting command to the drive before reading begins.
@*
Further special speed codes are:
@*
"max" (or "0") selects maximum speed as announced by the drive.
@*
"min" (or "-1") selects minimum speed as announced by the drive.
@*
Speed can be given in media dependent numbers or as a
desired throughput per second in MMC compliant kB (= 1000)
or MB (= 1000 kB). Media x-speed factor can be set explicity
by "c" for CD, "d" for DVD, "b" for BD, "x" is optional.
@*
Example speeds:
@*
706k = 706kB/s = 4c = 4xCD
@*
5540k = 5540kB/s = 4d = 4xDVD
@*
If there is no hint about the speed unit attached, then the
medium in the -indev will decide. Default unit is CD = 176.4k.
@*
MMC drives usually activate their own idea of speed and take
the speed value given by the burn program only as upper limit
for their own decision.
@*
Depending on the drive, the reported read speeds can be deceivingly low.
Often it is possible to achieve higher read speeds by bold values
like "20xDVD" or "16xBD".
@c man .TP
@item -load entity id @item -load entity id
@kindex -load addresses a particular session as input @kindex -load addresses a particular session as input
@cindex Session, select as input, -load @cindex Session, select as input, -load
@ -2728,8 +2762,11 @@ Smaller format size with DVD-RAM, BD-RE, or BD-R means more reserve space.
@item -list_speeds @item -list_speeds
@kindex -list_speeds lists available write speeds @kindex -list_speeds lists available write speeds
@cindex Media, list write speeds, -list_speeds @cindex Media, list write speeds, -list_speeds
Put out a list of speed values as reported by the output drive with Put out a list of speed values as reported by the drives with the loaded
the loaded medium. This does not necessarily mean that the medium is writable media. The list tells read speeds of the input drive and of the output
drive. Further it tells write speeds of the output drive.
@*
The list of write speeds does not necessarily mean that the medium is writable
or that these speeds are actually achievable. Especially the or that these speeds are actually achievable. Especially the
lists reported with empty drive or with ROM media obviously advertise lists reported with empty drive or with ROM media obviously advertise
speeds for other media. speeds for other media.
@ -2739,13 +2776,16 @@ The drive is supposed to choose a safe speed that is as near to the desired
speed as possible. speed as possible.
@* @*
At the end of the list, "Write speed L" and "Write speed H" At the end of the list, "Write speed L" and "Write speed H"
are the best guesses for lower and upper speed limit. are the best guesses for lower and upper write speed limit.
"Write speed l" and "Write speed h" may appear only with CD "Write speed l" and "Write speed h" may appear only with CD
and eventually override the list of other speed offers. and eventually override the list of other speed offers.
@* @*
Only if the drive reports contradicting speed information there will appear Only if the drive reports contradicting speed information there will appear
"Write speed 0", which tells the outcome of speed selection by command "Write speed 0", which tells the outcome of speed selection by command
-speed 0, if it deviates from "Write speed H". -speed 0, if it deviates from "Write speed H".
@*
"Read speed L" and "Read speed H" tell the minimum and maximum read speeds,
as would be chosen by -read_speed "min" resp. "max".
@c man .TP @c man .TP
@item -close_damaged "as_needed"|"force" @item -close_damaged "as_needed"|"force"
@kindex -close_damaged closes damaged track and session @kindex -close_damaged closes damaged track and session
@ -3153,10 +3193,18 @@ mkzftree.
@* @*
"default" same as "level=6:block_size=32k:by_magic=off" "default" same as "level=6:block_size=32k:by_magic=off"
@c man .TP @c man .TP
@item -speed 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
@cindex Write, set speed, -speed @cindex Write, set speed, -speed
Set the burn speed. Default is 0 = maximum speed. Set the burn speed. Default is "max" (or "0") = maximum speed as announced
by the drive.
Further special speed codes are:
@*
"min" (or "-1") selects minimum speed as announced by the drive.
@*
"none" avoids to send a speed setting command to the drive before
burning begins.
@*
Speed can be given in media dependent numbers or as a Speed can be given in media dependent numbers or as a
desired throughput per second in MMC compliant kB (= 1000) desired throughput per second in MMC compliant kB (= 1000)
or MB (= 1000 kB). Media x-speed factor can be set explicity or MB (= 1000 kB). Media x-speed factor can be set explicity

View File

@ -341,7 +341,11 @@ struct XorrisO { /* the global context of xorriso */
int ban_stdio_write; int ban_stdio_write;
int do_dummy; int do_dummy;
int do_close; int do_close;
int speed; /* in libburn units : 1000 bytes/second , 0 = Max, -1 = Min */
int write_speed; /* Write speed in libburn units : 1000 bytes/second ,
0 = Max, -1 = Min, -2= do not set */
int read_speed; /* Read speed. See above */
int fs; /* fifo size in 2048 byte chunks : at most 1 GB */ int fs; /* fifo size in 2048 byte chunks : at most 1 GB */
int padding; /* number of bytes to add after ISO 9660 image */ int padding; /* number of bytes to add after ISO 9660 image */
int do_padding_by_libisofs; /* 0= by libburn , 1= by libisofs */ int do_padding_by_libisofs; /* 0= by libburn , 1= by libisofs */

View File

@ -1 +1 @@
#define Xorriso_timestamP "2013.10.05.073918" #define Xorriso_timestamP "2013.10.08.175702"