diff --git a/xorriso/base_obj.c b/xorriso/base_obj.c index 40d542ca..4ed65da7 100644 --- a/xorriso/base_obj.c +++ b/xorriso/base_obj.c @@ -227,7 +227,8 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag) m->ban_stdio_write= 0; m->do_dummy= 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->padding= 300*1024; m->do_padding_by_libisofs= 0; diff --git a/xorriso/drive_mgt.c b/xorriso/drive_mgt.c index 0ad8f1d3..a07ce508 100644 --- a/xorriso/drive_mgt.c +++ b/xorriso/drive_mgt.c @@ -529,7 +529,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr, if(ret <= 0) 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); /* <<< 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 recent_profile= 0; + int ret, high= -1, low= 0x7fffffff, is_cd= 0, i, speed; + int recent_profile= 0, inout_flag; char *respt, *speed_unit= "D"; double speed_factor= 1385000.0, cd_factor= 75.0 * 2352; struct burn_drive_info *dinfo; @@ -1606,8 +1610,14 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag) 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, - "on attempt to obtain speed descriptor list", 1 | 2); + "on attempt to obtain speed descriptor list", + 1 | inout_flag); if(ret<=0) return(0); 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); ret= 0; goto ex; } - ret= Xorriso_toc(xorriso, 3); - if(ret<=0) { - sprintf(xorriso->info_text, - "Cannot obtain overview of drive and media content"); - Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); - ret= 0; goto ex; + if(!(flag & 1)) { + ret= Xorriso_toc(xorriso, 1 | inout_flag); + if(ret<=0) { + sprintf(xorriso->info_text, + "Cannot obtain overview of drive and media content"); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); + ret= 0; goto ex; + } } for (item= speed_list; item != NULL; item= item->next) { - sprintf(xorriso->info_text, "speed= %5dk , source= %d", - item->write_speed, item->source); + sprintf(xorriso->info_text, + "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); 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; if(item->source == 1) { /* 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) if(other->source == 2 && item->write_speed == other->write_speed) break; if(other != NULL) 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, &speed_factor, &speed_unit, 0); - sprintf(respt, "Write speed : "); sprintf(respt + strlen(respt), " %5dk , %4.1fx%s\n", - item->write_speed, - ((double) item->write_speed) * 1000.0 / speed_factor, - speed_unit); + speed, ((double) speed) * 1000.0 / speed_factor, speed_unit); Xorriso_result(xorriso,0); - if(item->write_speed > high) - high= item->write_speed; - if(item->write_speed < low) - low= item->write_speed; + if(speed > high) + high= speed; + if(speed < low) + low= speed; } - /* Maybe there is ATIP info */ - if(is_cd) { + /* Maybe there is ATIP info (about write speed only) */ + if(is_cd && (flag & 4)) { ret= burn_disc_read_atip(drive); if(ret < 0) goto ex; @@ -1692,18 +1711,24 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag) if(high > -1) { Xorriso_choose_speed_factor(xorriso, low, recent_profile, &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", low, ((double) low) * 1000.0 / speed_factor, speed_unit); Xorriso_result(xorriso,0); Xorriso_choose_speed_factor(xorriso, low, recent_profile, &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", high, ((double) high) * 1000.0 / speed_factor, speed_unit); Xorriso_result(xorriso,0); 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) { sprintf(respt, "Write speed 0: %5dk , %4.1fx%s\n", item->write_speed, @@ -1712,7 +1737,8 @@ int Xorriso_list_speeds(struct XorrisO *xorriso, int flag) } } else { 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); 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 bit1= obtain outdrive, else indrive @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); 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) { to_read= 32; if(pos + to_read > end_lba) @@ -2607,6 +2665,9 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist, 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; to_read= read_chunk; post_read_time= Sfile_microtime(0); diff --git a/xorriso/opts_d_h.c b/xorriso/opts_d_h.c index a1f47081..5aee13ba 100644 --- a/xorriso/opts_d_h.c +++ b/xorriso/opts_d_h.c @@ -1533,6 +1533,9 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " those lists empty. Defaulty entry in \"risky\" is \"/dev\".", " -grow_blindly \"off\"|predicted_nwa", " 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 a particular (outdated) ISO image from a -dev or", " -indev which hosts more than one session.", @@ -1904,7 +1907,7 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag) " -dummy \"on\"|\"off\"", " If \"on\" simulate burning. Refuse if medium cannot simulate.", " -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\"", " Try to circumvent slow checkread on DVD-RAM, BD-RE, BD-R.", " -dvd_obs \"default\"|\"32k\"|\"64k\"", diff --git a/xorriso/opts_p_z.c b/xorriso/opts_p_z.c index e7ddf4d6..2e2214de 100644 --- a/xorriso/opts_p_z.c +++ b/xorriso/opts_p_z.c @@ -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 is_cd= 1, unit_found= 0, ret, profile_number; - double num; + int is_cd= 1, unit_found= 0, ret, profile_number, intspeed= 1; + double num= -2.0; char *cpt, profile_name[80]; - if(speed[0]==0 || strcmp(speed, "any")==0) { - xorriso->speed= 0; /* full speed */ + if(speed[0] == 0 || strcmp(speed, "any") == 0 || strcmp(speed, "max") == 0) { + 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); } - sscanf(speed,"%lf",&num); for(cpt= speed+strlen(speed)-1; cpt>=speed; cpt--) if(isdigit(*cpt) || *cpt=='.') break; @@ -1357,7 +1372,8 @@ dvd_speed:; bd_speed:; num*= 4495.625; } 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); if(is_cd) goto cd_speed; @@ -1373,9 +1389,13 @@ bd_speed:; Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0); return(0); } - xorriso->speed= num; - if(xorriso->speedspeed++; + intspeed= num; + if(intspeed < num) + intspeed++; + if(flag & 1) + xorriso->read_speed= intspeed; + else + xorriso->write_speed= intspeed; return(1); } diff --git a/xorriso/parse_exec.c b/xorriso/parse_exec.c index 3ade0b64..2f96c92a 100644 --- a/xorriso/parse_exec.c +++ b/xorriso/parse_exec.c @@ -515,7 +515,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv, "pacifier","padding","path_list","pathspecs","pkt_output", "preparer_id","print","print_info","print_mark","prompt", "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", "session_log","sh_style_result","signal_handling","sleep", "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", "* 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", "disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write", "early_stdio_test", "data_cache_size", @@ -1611,6 +1612,10 @@ next_command:; } else if(strcmp(cmd,"read_mkisofsrc")==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) { (*idx)++; ret= Xorriso_option_reassure(xorriso, arg1, 0); diff --git a/xorriso/text_io.c b/xorriso/text_io.c index 6f3e9ae8..c6aeb594 100644 --- a/xorriso/text_io.c +++ b/xorriso/text_io.c @@ -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) /* 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)) Xorriso_status_result(xorriso,filter,fp,flag&2); - is_default= (xorriso->speed==0); - sprintf(line,"-speed %dkB/s\n", xorriso->speed); + is_default= (xorriso->write_speed==0); + sprintf(line,"-speed %s\n", Xorriso__speedname(xorriso->write_speed)); if(!(is_default && no_defaults)) 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; dev_filter= filter; if(dev_filter != NULL) { diff --git a/xorriso/write_run.c b/xorriso/write_run.c index 95343506..e0306909 100644 --- a/xorriso/write_run.c +++ b/xorriso/write_run.c @@ -129,7 +129,8 @@ int Xorriso_make_write_options( drive_role= burn_drive_get_drive_role(drive); burn_write_opts_set_multi(*burn_options, !(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) stream_mode= 1; else if(xorriso->do_stream_recording == 2) diff --git a/xorriso/xorriso.1 b/xorriso/xorriso.1 index 7346d560..0e082c98 100644 --- a/xorriso/xorriso.1 +++ b/xorriso/xorriso.1 @@ -9,7 +9,7 @@ .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) -.TH 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. .\" .\" 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 them only after image loading. .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 Load a particular (possibly outdated) ISO session from \-dev or \-indev. 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. .TP \fB\-list_speeds\fR -Put out a list of speed values as reported by the output drive with -the loaded medium. This does not necessarily mean that the medium is writable +Put out a list of speed values as reported by the drives with the 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. +.br +The list of write speeds does not necessarily mean that the medium is writable or that these speeds are actually achievable. Especially the lists reported with empty drive or with ROM media obviously advertise 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. .br 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 and eventually override the list of other speed offers. .br Only if the drive reports contradicting speed information there will appear "Write speed 0", which tells the outcome of speed selection by command \-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 \fB\-close_damaged\fR "as_needed"|"force" Try to close the upcomming track and session if the drive reported the medium @@ -2665,8 +2703,16 @@ mkzftree. .br "default" same as "level=6:block_size=32k:by_magic=off" .TP -\fB\-speed\fR number[k|m|c|d|b] -Set the burn speed. Default is 0 = maximum speed. +\fB\-speed\fR 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: +.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 desired throughput per second in MMC compliant kB (= 1000) or MB (= 1000 kB). Media x\-speed factor can be set explicity diff --git a/xorriso/xorriso.h b/xorriso/xorriso.h index b0e2db17..4df9829a 100644 --- a/xorriso/xorriso.h +++ b/xorriso/xorriso.h @@ -1871,7 +1871,10 @@ int Xorriso_option_signal_handling(struct XorrisO *xorriso, char *mode, /* @since 1.1.8 */ 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); /* Command -split_size */ diff --git a/xorriso/xorriso.info b/xorriso/xorriso.info index eebaa008..aae8eee0 100644 --- a/xorriso/xorriso.info +++ b/xorriso/xorriso.info @@ -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 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 a particular (possibly outdated) ISO session from -dev or -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. -list_speeds - Put out a list of speed values as reported by the output drive with - the loaded medium. This does not necessarily mean that the medium + Put out a list of speed values as reported by the drives with the + 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. Especially the lists reported with empty drive or with ROM 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 desired speed as possible. 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" - and "Write speed h" may appear only with CD and eventually - override the list of other speed offers. + the best guesses for lower and upper write speed limit. "Write + speed l" and "Write speed h" may appear only with CD and + eventually override the list of other speed offers. Only if the drive reports contradicting speed information there will appear "Write speed 0", which tells the outcome of speed 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" 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. "default" same as "level=6:block_size=32k:by_magic=off" --speed number[k|m|c|d|b] - Set the burn speed. Default is 0 = maximum speed. 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. +-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: + "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 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 @@ -4793,7 +4824,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top * # starts a comment line: Scripting. (line 173) * -abort_on controls abort on error: Exception. (line 27) * -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_plainly inserts one or more paths: Insert. (line 65) * -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_use sets application use field: SetWrite. (line 258) * -as emulates mkisofs or cdrecord: Emulation. (line 13) -* -assert_volid rejects undesired images: Loading. (line 84) -* -auto_charset learns character set from image: Loading. (line 98) +* -assert_volid rejects undesired images: Loading. (line 106) +* -auto_charset learns character set from image: Loading. (line 120) * -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) * -blank erases media: Writing. (line 61) * -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) * -cdx sets working directory on disk: Navigate. (line 16) * -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_r sets ownership in ISO image: Manip. (line 54) * -clone copies ISO directory tree: Insert. (line 180) -* -close controls media closing: SetWrite. (line 349) -* -close_damaged closes damaged track and session: Writing. (line 163) +* -close controls media closing: SetWrite. (line 353) +* -close_damaged closes damaged track and session: Writing. (line 168) * -close_filter_list bans filter registration: Filter. (line 52) * -commit writes pending ISO image: Writing. (line 29) * -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) * -cpx copies files to disk: Restore. (line 95) * -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) * -device_links gets list of drives: Inquiry. (line 18) * -devices gets list of drives: Inquiry. (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) * -displacement compensate altered image start address: Loading. - (line 36) -* -drive_class controls drive accessability: Loading. (line 54) + (line 58) +* -drive_class controls drive accessability: Loading. (line 76) * -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) * -dusx show directory size on disk: Navigate. (line 102) * -dux show directory size on disk: Navigate. (line 97) -* -dvd_obs set write block size: SetWrite. (line 325) -* -early_stdio_test classifies stdio drives: Loading. (line 259) +* -dvd_obs set write block size: SetWrite. (line 329) +* -early_stdio_test classifies stdio drives: Loading. (line 281) * -eject ejects drive tray: Writing. (line 52) * -end writes pending session and ends program: Scripting. (line 167) * -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) * -findx traverses disk tree: Navigate. (line 106) * -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) -* -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_r shows ACL in ISO image: Navigate. (line 77) * -getfattr shows xattr in ISO image: Navigate. (line 81) * -getfattr_r shows xattr in ISO image: Navigate. (line 85) * -gid sets global ownership: SetWrite. (line 282) * -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) * -hfsplus enables production of HFS+ partition: SetWrite. (line 14) * -hide excludes file names from directory trees: Manip. (line 184) * -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) * -iso_rr_pattern controls pattern expansion: Manip. (line 10) * -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. (line 26) * -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) * -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) * -logfile logs output channels to file: Frontend. (line 20) * -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_single inserts path: Insert. (line 94) * -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) * -mount issues mount command for ISO session: Restore. (line 129) * -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) * -overwrite enables overwriting in ISO: SetInsert. (line 127) * -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) * -paste_in copies file into disk file: Restore. (line 124) * -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) * -read_mkisofsrc searches and reads .mkisofsrc file: Emulation. (line 151) +* -read_speed set read speed: Loading. (line 11) * -reassure enables confirmation question: DialogCtl. (line 32) * -report_about controls verbosity: Exception. (line 55) * -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) * -rollback discards pending changes: Writing. (line 9) * -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. (line 141) * -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) * -status shows current settings: Scripting. (line 47) * -status_history_max curbs -status history: Scripting. (line 56) -* -stdio_sync controls stdio buffer: SetWrite. (line 332) -* -stream_recording controls defect management: SetWrite. (line 313) +* -stdio_sync controls stdio buffer: SetWrite. (line 336) +* -stream_recording controls defect management: SetWrite. (line 317) * -system_id sets system id: SetWrite. (line 201) * -tell_media_space reports free space: Inquiry. (line 104) * -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) * -volset_id sets volume set id: SetWrite. (line 181) * -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. (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)  @@ -5027,7 +5059,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Menu: * 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_list: Manip. (line 108) * 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) * Automatic execution order, of arguments, -x: ArgSort. (line 16) * Backslash Interpretation, _definition: Processing. (line 52) -* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 193) -* Backup, enable features, -for_backup: Loading. (line 188) +* Backup, enable fast incremental, -disk_dev_ino: Loading. (line 215) +* Backup, enable features, -for_backup: Loading. (line 210) * Backup, scdbackup checksum tag, -scdbackup: Emulation. (line 177) * Blank media, _definition: Media. (line 29) * Blind growing, _definition: Methods. (line 40) @@ -5048,10 +5080,10 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top * Bugs, reporting: Bugreport. (line 6) * cdrecord, Emulation: Emulation. (line 116) * 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 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) * CHRP partition, _definition: Bootable. (line 158) * 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) * Cylinder alignment, _definition: Bootable. (line 198) * 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_r: Manip. (line 28) * 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) * disk_path, _definition: Insert. (line 6) * Drive, _definition: Drives. (line 6) -* Drive, accessability, -drive_class: Loading. (line 54) -* Drive, classify stdio, -early_stdio_test: Loading. (line 259) -* Drive, demand real MMC, -ban_stdio_write: Loading. (line 254) +* Drive, accessability, -drive_class: Loading. (line 76) +* Drive, classify stdio, -early_stdio_test: Loading. (line 281) +* Drive, demand real MMC, -ban_stdio_write: Loading. (line 276) * Drive, eject tray, -eject: Writing. (line 52) * Drive, for input and output, -dev: AqDrive. (line 12) * Drive, for input, -indev: AqDrive. (line 24) * Drive, for output, -outdev: AqDrive. (line 31) * Drive, get drive list, -device_links: Inquiry. (line 18) * Drive, get drive list, -devices: Inquiry. (line 7) -* Drive, list supported media, -list_profiles: Writing. (line 177) -* Drive, reduce activity, -calm_drive: Loading. (line 243) +* Drive, list supported media, -list_profiles: Writing. (line 182) +* Drive, reduce activity, -calm_drive: Loading. (line 265) * Drive, report SCSI commands, -scsi_log: Scripting. (line 158) * Drive, write and eject, -commit_eject: Writing. (line 56) * 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_r: Manip. (line 62) * 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+ serial number: Bootable. (line 234) * 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, 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, override change status, -changes_pending: Writing. (line 13) * 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) * MBR, _definition: Extras. (line 26) * 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, format, -format: Writing. (line 91) * 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, wait a time span, -sleep: Scripting. (line 125) * Quoted input, _definition: Processing. (line 46) +* Read, set speed, -read_speed: Loading. (line 11) * Recovery, retrieve blocks, -check_media: Verify. (line 21) * Relocation directory, set name, -rr_reloc_dir: SetWrite. (line 141) * Rename, in ISO image, -move: Manip. (line 35) @@ -5256,19 +5289,19 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top (line 67) * Rock Ridge, _definition: Extras. (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, issue mount command, -mount: Restore. (line 129) * Session, log when written, -session_log: Scripting. (line 149) * Session, mount command line, -mount_cmd: Inquiry. (line 52) * 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) * SUN Disk Label, production: Bootable. (line 220) * SUN SPARC boot images, activation: Bootable. (line 270) * Symbolic link, create, -lns: Insert. (line 175) * 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) * Timestamps, set in ISO image, -alter_date: Manip. (line 154) * 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 tree checksums, -check_md5_r: Verify. (line 170) * 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, buffer syncing, -stdio_sync: SetWrite. (line 332) -* Write, close media, -close: SetWrite. (line 349) +* Write, buffer syncing, -stdio_sync: SetWrite. (line 336) +* Write, close media, -close: SetWrite. (line 353) * 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, enable HFS+, -hfsplus: SetWrite. (line 14) * 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, log problematic disk files, -errfile_log: Scripting. (line 129) * 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, predict image size, -print_size: Inquiry. (line 91) * Write, set speed, -speed: SetWrite. (line 298) -* Write, simulation, -dummy: SetWrite. (line 338) -* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 355) +* Write, simulation, -dummy: SetWrite. (line 342) +* Write, TAO or SAO/DAO, -write_type: SetWrite. (line 359) * 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_list: Manip. (line 134) * xattr, set in ISO image, -setfattr_r: Manip. (line 131) @@ -5324,47 +5357,47 @@ Node: Commands24622 Node: ArgSort26299 Node: AqDrive27791 Node: Loading30836 -Node: Insert46505 -Node: SetInsert56704 -Node: Manip65281 -Node: CmdFind74790 -Node: Filter89832 -Node: Writing94388 -Node: SetWrite104085 -Node: Bootable123552 -Node: Jigdo139942 -Node: Charset144189 -Node: Exception146951 -Node: DialogCtl153071 -Node: Inquiry155669 -Node: Navigate161986 -Node: Verify170284 -Node: Restore179316 -Node: Emulation186403 -Node: Scripting196705 -Node: Frontend204476 -Node: Examples214083 -Node: ExDevices215261 -Node: ExCreate215920 -Node: ExDialog217205 -Node: ExGrowing218470 -Node: ExModifying219275 -Node: ExBootable219779 -Node: ExCharset220331 -Node: ExPseudo221152 -Node: ExCdrecord222050 -Node: ExMkisofs222367 -Node: ExGrowisofs223707 -Node: ExException224842 -Node: ExTime225296 -Node: ExIncBackup225755 -Node: ExRestore229735 -Node: ExRecovery230668 -Node: Files231238 -Node: Seealso232537 -Node: Bugreport233260 -Node: Legal233841 -Node: CommandIdx234852 -Node: ConceptIdx251441 +Node: Insert47670 +Node: SetInsert57869 +Node: Manip66446 +Node: CmdFind75955 +Node: Filter90997 +Node: Writing95553 +Node: SetWrite105545 +Node: Bootable125256 +Node: Jigdo141646 +Node: Charset145893 +Node: Exception148655 +Node: DialogCtl154775 +Node: Inquiry157373 +Node: Navigate163690 +Node: Verify171988 +Node: Restore181020 +Node: Emulation188107 +Node: Scripting198409 +Node: Frontend206180 +Node: Examples215787 +Node: ExDevices216965 +Node: ExCreate217624 +Node: ExDialog218909 +Node: ExGrowing220174 +Node: ExModifying220979 +Node: ExBootable221483 +Node: ExCharset222035 +Node: ExPseudo222856 +Node: ExCdrecord223754 +Node: ExMkisofs224071 +Node: ExGrowisofs225411 +Node: ExException226546 +Node: ExTime227000 +Node: ExIncBackup227459 +Node: ExRestore231439 +Node: ExRecovery232372 +Node: Files232942 +Node: Seealso234241 +Node: Bugreport234964 +Node: Legal235545 +Node: CommandIdx236556 +Node: ConceptIdx253218  End Tag Table diff --git a/xorriso/xorriso.texi b/xorriso/xorriso.texi index 80aafa72..5ca87c44 100644 --- a/xorriso/xorriso.texi +++ b/xorriso/xorriso.texi @@ -50,7 +50,7 @@ @c man .\" First parameter, NAME, should be all caps @c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection @c man .\" other parameters are allowed: see man(7), man(1) -@c man .TH 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 .\" @c man .\" Some roff macros, for reference: @@ -910,6 +910,40 @@ them only after image loading. @table @asis @sp 1 @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 @kindex -load addresses a particular session as input @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 @kindex -list_speeds lists available write speeds @cindex Media, list write speeds, -list_speeds -Put out a list of speed values as reported by the output drive with -the loaded medium. This does not necessarily mean that the medium is writable +Put out a list of speed values as reported by the drives with the 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. Especially the lists reported with empty drive or with ROM media obviously advertise 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. @* 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 and eventually override the list of other speed offers. @* Only if the drive reports contradicting speed information there will appear "Write speed 0", which tells the outcome of speed 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". @c man .TP @item -close_damaged "as_needed"|"force" @kindex -close_damaged closes damaged track and session @@ -3153,10 +3193,18 @@ mkzftree. @* "default" same as "level=6:block_size=32k:by_magic=off" @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 @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 desired throughput per second in MMC compliant kB (= 1000) or MB (= 1000 kB). Media x-speed factor can be set explicity diff --git a/xorriso/xorriso_private.h b/xorriso/xorriso_private.h index efb155b9..f2a2ed59 100644 --- a/xorriso/xorriso_private.h +++ b/xorriso/xorriso_private.h @@ -341,7 +341,11 @@ struct XorrisO { /* the global context of xorriso */ int ban_stdio_write; int do_dummy; 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 padding; /* number of bytes to add after ISO 9660 image */ int do_padding_by_libisofs; /* 0= by libburn , 1= by libisofs */ diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 98340354..4bffc5ba 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2013.10.05.073918" +#define Xorriso_timestamP "2013.10.08.175702"