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 .\" 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 "Oct 05, 2009" .TH XORRISO 1 "Oct 07, 2009"
.\" 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:
@ -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", Note that -disk_dev_ino "off" is totally in effect only if -hardlinks is "off",
too. too.
.TP .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 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 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. 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. to invalid addresses and thus ugly drive behavior.
Setting "on" enables that scan for alleged read-only media. Setting "on" enables that scan for alleged read-only media.
.br .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 On the other hand the emulation of session history on overwriteable media
can hamper reading of partly damaged media. Setting "off:emul_off" disables can hamper reading of partly damaged media. Setting "off:emul_off" disables
the elsewise trustworthy table-of-content scan for those media. 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. If you insist in -volid "ISOIMAGE", set it again after those commands.
.TP .TP
\fB\-publisher\fR text \fB\-publisher\fR text
Set the publisher id string to be written with the next -commit. Permissible Set the publisher id string to be written with the next -commit. This may
are up to 128 characters. This setting gets overridden by image loading. 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 .TP
\fB\-application_id\fR text \fB\-application_id\fR text
Set the application id string to be written with the next -commit. Permissible Set the application id string to be written with the next -commit. This may
are up to 128 characters. This setting gets overridden by image loading. identify the specification of how the data are recorded.
Permissible are up to 128 characters. This setting gets overridden by
image loading.
.TP .TP
\fB\-out_charset\fR character_set_name \fB\-out_charset\fR character_set_name
Set the character set to which file names get converted when writing an 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); is_default= (xorriso->toc_emulation_flag == 0);
sprintf(line,"-rom_toc_scan %s%s\n", 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 & 1 ? "on" : "off",
xorriso->toc_emulation_flag & 2 ? ":emul_off" : ""); xorriso->toc_emulation_flag & 2 ? ":emul_off" : "");
if(!(is_default && no_defaults)) 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, int Xorriso_decode_load_adr(struct XorrisO *xorriso, char *cmd,
char *adr_mode, char *adr_value, char *adr_mode, char *adr_value,
int *entity_code, char entity_id[81], 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; l= npt-cpt;
if(l==0) if(l==0)
goto unknown_mode; goto unknown_mode;
xorriso->toc_emulation_flag&= ~4;
if(strncmp(cpt, "off", l) == 0) if(strncmp(cpt, "off", l) == 0)
xorriso->toc_emulation_flag&= ~1; xorriso->toc_emulation_flag&= ~1;
else if(strncmp(cpt, "on", l) == 0) else if(strncmp(cpt, "on", l) == 0)
xorriso->toc_emulation_flag|= 1; 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) else if(strncmp(cpt, "emul_off", l) == 0)
xorriso->toc_emulation_flag|= 2; xorriso->toc_emulation_flag|= 2;
else if(strncmp(cpt, "emul_on", l) == 0) 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 scan -ROM profiles for ISO sessions
bit1= bit4 for isoburn_drive_aquire() bit1= bit4 for isoburn_drive_aquire()
do not emulate TOC on overwriteable media 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 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) { if(dinfo==NULL) {
aquire_flag= 1 | ((flag&(8|4))>>1) | ((xorriso->toc_emulation_flag & 3)<<3); 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)) if(!(xorriso->do_aaip & 1))
aquire_flag|= 32; aquire_flag|= 32;
if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32))) if((xorriso->ino_behavior & (1 | 2)) && !(xorriso->do_aaip & (4 | 32)))