New option -stream_recording
This commit is contained in:
parent
106ab1fb0c
commit
b9f01ef512
@ -1202,8 +1202,15 @@ 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.
|
||||
.TP
|
||||
\fB\-stream_recording\fR "on"|"off"
|
||||
Setting "on" tries to circumvent the management of defects on DVD-RAM and
|
||||
DVD+RW. Defect management keeps partly damaged media usable. But it reduces
|
||||
write speed to half nominal speed even if the media is in perfect shape.
|
||||
For the case of flawless media, one may use -stream_recording "on" to get
|
||||
full speed.
|
||||
.TP
|
||||
\fB\-dummy\fR "on"|"off"
|
||||
If "on" simulate burning or refuse with FAILURE event if
|
||||
If "on" then simulate burning or refuse with FAILURE event if
|
||||
no simulation is possible, do neither blank nor format.
|
||||
.TP
|
||||
\fB-fs\fR number["k"|"m"]
|
||||
|
@ -2790,6 +2790,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
||||
m->speed= 0;
|
||||
m->fs= 4*512; /* 4 MiB */
|
||||
m->padding= 300*1024;
|
||||
m->do_stream_recording= 0;
|
||||
m->keep_boot_image= 0;
|
||||
m->patch_isolinux_image= 0;
|
||||
m->allow_graft_points= 0;
|
||||
@ -4066,6 +4067,12 @@ 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->do_stream_recording==0);
|
||||
sprintf(line,"-stream_recording %s\n",
|
||||
xorriso->do_stream_recording ? "on" : "off");
|
||||
if(!(is_default && no_defaults))
|
||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||
|
||||
is_default= (xorriso->fs==4*512);
|
||||
if((xorriso->fs/512)*512==xorriso->fs)
|
||||
sprintf(line,"-fs %dm\n", xorriso->fs/512);
|
||||
@ -9612,6 +9619,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
||||
" If \"on\" simulate burning. Refuse if media cannot simulate.",
|
||||
" -speed number[\"k\"|\"m\"|\"[x]CD\"|\"[x]DVD\"]",
|
||||
" Set the burn speed. Default is 0 = maximum speed.",
|
||||
" -stream_recording \"on\"|\"off\"",
|
||||
" Try to circumvent slow checkread on DVD-RAM and BD-RE.",
|
||||
" -fs number[\"k\"|\"m\"]",
|
||||
" Set the size of the fifo buffer. (Default is 4m)",
|
||||
" -eject \"in\"|\"out\"|\"all\"",
|
||||
@ -11137,6 +11146,18 @@ int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num,
|
||||
}
|
||||
|
||||
|
||||
/* Option -stream_recording */
|
||||
int Xorriso_option_stream_recording(struct XorrisO *xorriso, char *mode,
|
||||
int flag)
|
||||
{
|
||||
if(strcmp(mode,"on")==0 || mode[0]==0)
|
||||
xorriso->do_stream_recording= 1;
|
||||
else
|
||||
xorriso->do_stream_recording= 0;
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
/* Option -tell_media_space */
|
||||
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag)
|
||||
{
|
||||
@ -11501,7 +11522,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
||||
"padding","path_list","pathspecs","pkt_output","print","prompt",
|
||||
"prog","publisher","reassure","report_about","rom_toc_scan",
|
||||
"session_log","speed","split_size","status","status_history_max",
|
||||
"temp_mem_limit","uid","volid","use_readline",
|
||||
"stream_recording","temp_mem_limit","uid","volid","use_readline",
|
||||
""
|
||||
};
|
||||
static char arg2_commands[][40]= {
|
||||
@ -12028,6 +12049,10 @@ next_command:;
|
||||
sscanf(arg1,"%d",&num1);
|
||||
ret= Xorriso_option_status_history_max(xorriso, num1, 0);
|
||||
|
||||
} else if(strcmp(cmd,"stream_recording")==0) {
|
||||
(*idx)++;
|
||||
ret= Xorriso_option_stream_recording(xorriso, arg1, 0);
|
||||
|
||||
} else if(strcmp(cmd,"tell_media_space")==0) {
|
||||
Xorriso_option_tell_media_space(xorriso, 0);
|
||||
|
||||
|
@ -233,6 +233,10 @@ int Xorriso_option_compare(struct XorrisO *xorriso, char *disk_path,
|
||||
int Xorriso_option_cpri( struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -cpx */
|
||||
int Xorriso_option_cpx(struct XorrisO *xorriso, int argc, char **argv,
|
||||
int *idx, int flag);
|
||||
|
||||
/* Option -cut_out */
|
||||
int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
|
||||
char *start, char *count, char *iso_rr_path, int flag);
|
||||
@ -461,6 +465,10 @@ int Xorriso_option_status(struct XorrisO *xorriso, char *mode, int flag);
|
||||
int Xorriso_option_status_history_max(struct XorrisO *xorriso, int num1,
|
||||
int flag);
|
||||
|
||||
/* Option -stream_recording */
|
||||
int Xorriso_option_stream_recording(struct XorrisO *xorriso, char *mode,
|
||||
int flag);
|
||||
|
||||
/* Option -tell_media_space */
|
||||
int Xorriso_option_tell_media_space(struct XorrisO *xorriso, int flag);
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<HEAD>
|
||||
<META NAME="description" CONTENT="xorriso, creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions">
|
||||
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, scdbackup">
|
||||
<META NAME="keywords" CONTENT="xorriso, libburn, libburnia, burn, CD, DVD, ISO, ISO 9660, RockRidge, Rock Ridge, linux, recording, burning, CD-R, CD-RW, DVD-R, DVD-RW, DVD+RW, DVD+R, DVD+R DL, BD-RE, scdbackup">
|
||||
<META NAME="robots" CONTENT="follow">
|
||||
<TITLE>xorriso homepage english</TITLE>
|
||||
</HEAD>
|
||||
@ -33,10 +33,10 @@ optical media or to filesystem objects.
|
||||
|
||||
<P>
|
||||
<H2>Hardware requirements:</H2>
|
||||
A CD/DVD recorder suitable for
|
||||
A CD/DVD/BD recorder suitable for
|
||||
<A HREF="http://libburnia-project.org">http://libburnia-project.org</A> <BR>
|
||||
(SCSI , ATA , USB , or SATA writers compliant to standard MMC-3 for CD
|
||||
and to MMC-5 for DVD).
|
||||
and to MMC-5 for DVD or BD).
|
||||
<BR>
|
||||
</P>
|
||||
|
||||
@ -59,7 +59,7 @@ GPL software included:<BR>
|
||||
</H2>
|
||||
<DL>
|
||||
<DT>libburn-0.4.9</DT>
|
||||
<DD>reads and writes data from and to CD and DVD.</DD>
|
||||
<DD>reads and writes data from and to CD, DVD, BD-RE.</DD>
|
||||
<DD>(founded by Derek Foreman and Ben Jansens,
|
||||
furthered since August 2006 by team of libburnia-project.org)</DD>
|
||||
<DT>libisofs-0.6.4</DT>
|
||||
@ -86,7 +86,7 @@ For ports to other usable systems <A HREF="#contact">contact us</A>.
|
||||
<H2>Special features:</H2>
|
||||
<UL>
|
||||
<LI>
|
||||
ISO 9660 formatter and burner for CD or DVD are fixely integrated.
|
||||
ISO 9660 formatter and burner for CD, DVD, BD-RE are fixely integrated.
|
||||
</LI>
|
||||
<LI>
|
||||
Operates on an existing ISO image or creates a new one.
|
||||
@ -287,7 +287,8 @@ output will be redirected to stderr in this case.</DT>
|
||||
</DL>
|
||||
|
||||
|
||||
Testers wanted who are willing to risk some double layer DVD media.
|
||||
Testers wanted who are willing to risk some double layer DVD media or
|
||||
are interested in using BD-R media.
|
||||
|
||||
</P>
|
||||
|
||||
@ -347,16 +348,19 @@ Enhancements towards previous stable version xorriso-0.1.4.pl00:
|
||||
<DT><H3>Development snapshot, version 0.1.7 :</H3></DT>
|
||||
<DD>Bug fixes towards xorriso-0.1.6.pl00:
|
||||
<UL>
|
||||
<LI>-indev -outdev modifying to overwriteable target yielded unmountable results</LI>
|
||||
<!--
|
||||
-->
|
||||
<LI>- none yet -</LI>
|
||||
-->
|
||||
</UL>
|
||||
</DD>
|
||||
<DD>Enhancements towards stable version 0.1.6.pl00:
|
||||
<UL>
|
||||
<LI>New options -osirrox and -cpx</LI>
|
||||
<LI>New option -stream_recording</LI>
|
||||
<!--
|
||||
-->
|
||||
<LI>- none yet -</LI>
|
||||
-->
|
||||
</UL>
|
||||
</DD>
|
||||
<DD> </DD>
|
||||
|
@ -151,6 +151,7 @@ struct XorrisO { /* the global context of xorriso */
|
||||
int speed; /* in libburn units : 1000 bytes/second , 0 = Max, -1 = Min */
|
||||
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_stream_recording;
|
||||
|
||||
int keep_boot_image;
|
||||
int patch_isolinux_image;
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2008.05.26.181210"
|
||||
#define Xorriso_timestamP "2008.05.27.201513"
|
||||
|
@ -814,6 +814,8 @@ int Xorriso_make_write_options(
|
||||
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);
|
||||
burn_write_opts_set_stream_recording(*burn_options,
|
||||
!! xorriso->do_stream_recording);
|
||||
burn_write_opts_set_underrun_proof(*burn_options, 1);
|
||||
return(1);
|
||||
}
|
||||
@ -2718,7 +2720,6 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
char *img_path_pt;
|
||||
IsoNode *node= NULL;
|
||||
int done= 0, is_dir= 0, ret, target_is_dir, source_is_dir, stbuf_ret;
|
||||
int target_is_split;
|
||||
struct stat stbuf, target_stbuf;
|
||||
struct PermiteM *perm_stack_mem;
|
||||
|
||||
@ -2766,8 +2767,16 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef Osirrox_not_yeT
|
||||
/* >>> */
|
||||
int source_is_split= 0;
|
||||
|
||||
if(is_dir)
|
||||
source_is_split= Xorriso_is_split(xorriso, node, 0);
|
||||
#endif
|
||||
|
||||
}
|
||||
for(npt= apt; !done; apt= npt+1) {
|
||||
npt= strchr(apt, '/');
|
||||
if(npt==NULL) {
|
||||
@ -2783,24 +2792,20 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
continue;
|
||||
}
|
||||
source_is_dir= (is_dir || (flag&1) || !done);
|
||||
|
||||
stbuf_ret= stat(path, &target_stbuf);
|
||||
if(stbuf_ret!=-1) {
|
||||
target_is_dir= S_ISDIR(target_stbuf.st_mode);
|
||||
target_is_split= 0;
|
||||
|
||||
#ifdef Osirrox_not_yeT
|
||||
/* >>> */
|
||||
if(target_is_dir)
|
||||
target_is_split= Xorriso_is_split(xorriso, node, 0);
|
||||
/* >>> Take into respect source_is_split */
|
||||
#endif
|
||||
if((!target_is_dir) && source_is_dir) {
|
||||
|
||||
if(!((target_is_dir && !target_is_split) && source_is_dir)) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
|
||||
/* handle overwrite situation */;
|
||||
/* handle overwrite situation */
|
||||
if(xorriso->do_overwrite==1 ||
|
||||
(xorriso->do_overwrite==2 && !(target_is_dir && !target_is_split))) {
|
||||
(xorriso->do_overwrite==2 && !target_is_dir)) {
|
||||
ret= Xorriso_rmx(xorriso, (off_t) 0, path, 1|8);
|
||||
if(ret<=0)
|
||||
return(ret);
|
||||
@ -2813,11 +2818,10 @@ int Xorriso_restore(struct XorrisO *xorriso,
|
||||
stbuf_ret= -1;
|
||||
goto handle_path_node;
|
||||
}
|
||||
|
||||
Xorriso_msgs_submit(xorriso, 0, disk_path, 0, "ERRFILE", 0);
|
||||
sprintf(xorriso->info_text,
|
||||
"While restoring '%s' : '%s' exists and may not be overwritten",
|
||||
disk_path, path);
|
||||
"While restoring '%s' : '%s' exists and may not be overwritten",
|
||||
disk_path, path);
|
||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||
return(0);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user