New -rom_toc_scan sub option "force" to get DVD/BD table-of-content on Solaris

This commit is contained in:
Thomas Schmitt 2009-10-07 08:05:00 +00:00
parent a45363ea3e
commit ca1919dda0
5 changed files with 27 additions and 8 deletions

View File

@ -2,7 +2,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 "Oct 05, 2009"
.TH XORRISO 1 "Oct 07, 2009"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -779,7 +779,7 @@ The speed advantage appears only if the loaded session was produced with
Note that -disk_dev_ino "off" is totally in effect only if -hardlinks is "off",
too.
.TP
\fB\-rom_toc_scan\fR "on"|"off"[:"emul_on"|"emul_off"]
\fB\-rom_toc_scan\fR "on"|"force"|"off"[:"emul_on"|"emul_off"]
Read-only drives do not tell the actual media type but show any media as
ROM (e.g. as DVD-ROM). The session history of MMC multi-session media might
be truncated to first and last session or even be completely false.
@ -792,6 +792,11 @@ than the drive's table of content. At its end it can cause read attempts
to invalid addresses and thus ugly drive behavior.
Setting "on" enables that scan for alleged read-only media.
.br
Some operating systems are not able to mount the most recent session of
multi-session DVD or BD. If on such a system xorriso has no own MMC
capabilities then it may still find that session from a scanned table of
content. Setting "force" handles any media like a ROM media with setting "on".
.br
On the other hand the emulation of session history on overwriteable media
can hamper reading of partly damaged media. Setting "off:emul_off" disables
the elsewise trustworthy table-of-content scan for those media.
@ -1898,12 +1903,16 @@ or -rollback.
If you insist in -volid "ISOIMAGE", set it again after those commands.
.TP
\fB\-publisher\fR text
Set the publisher id string to be written with the next -commit. Permissible
are up to 128 characters. This setting gets overridden by image loading.
Set the publisher id string to be written with the next -commit. This may
identify the person or organisation who specified what shall be recorded.
Permissible are up to 128 characters. This setting gets overridden by
image loading.
.TP
\fB\-application_id\fR text
Set the application id string to be written with the next -commit. Permissible
are up to 128 characters. This setting gets overridden by image loading.
Set the application id string to be written with the next -commit. This may
identify the specification of how the data are recorded.
Permissible are up to 128 characters. This setting gets overridden by
image loading.
.TP
\fB\-out_charset\fR character_set_name
Set the character set to which file names get converted when writing an

View File

@ -7142,6 +7142,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
is_default= (xorriso->toc_emulation_flag == 0);
sprintf(line,"-rom_toc_scan %s%s\n",
xorriso->toc_emulation_flag & 4 ? "force" :
xorriso->toc_emulation_flag & 1 ? "on" : "off",
xorriso->toc_emulation_flag & 2 ? ":emul_off" : "");
if(!(is_default && no_defaults))
@ -12233,6 +12234,8 @@ too_long:;
}
/* @param flag bit0= with adr_mode sbsector: adr_value is possibly 16 too high
*/
int Xorriso_decode_load_adr(struct XorrisO *xorriso, char *cmd,
char *adr_mode, char *adr_value,
int *entity_code, char entity_id[81],
@ -17990,10 +17993,13 @@ int Xorriso_option_rom_toc_scan(struct XorrisO *xorriso, char *mode, int flag)
l= npt-cpt;
if(l==0)
goto unknown_mode;
xorriso->toc_emulation_flag&= ~4;
if(strncmp(cpt, "off", l) == 0)
xorriso->toc_emulation_flag&= ~1;
else if(strncmp(cpt, "on", l) == 0)
xorriso->toc_emulation_flag|= 1;
else if(strncmp(cpt, "force", l) == 0)
xorriso->toc_emulation_flag|= 4;
else if(strncmp(cpt, "emul_off", l) == 0)
xorriso->toc_emulation_flag|= 2;
else if(strncmp(cpt, "emul_on", l) == 0)

View File

@ -185,6 +185,8 @@ struct XorrisO { /* the global context of xorriso */
scan -ROM profiles for ISO sessions
bit1= bit4 for isoburn_drive_aquire()
do not emulate TOC on overwriteable media
bit2= bit7 for isoburn_drive_aquire()
pretend any media to be -ROM
*/
int image_start_mode; /* From what address to load the ISO image

View File

@ -1 +1 @@
#define Xorriso_timestamP "2009.10.07.075634"
#define Xorriso_timestamP "2009.10.07.080042"

View File

@ -1027,6 +1027,8 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, int flag)
if(dinfo==NULL) {
aquire_flag= 1 | ((flag&(8|4))>>1) | ((xorriso->toc_emulation_flag & 3)<<3);
if(xorriso->toc_emulation_flag & 4)
aquire_flag|= 128;
if(!(xorriso->do_aaip & 1))
aquire_flag|= 32;
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32)))