New write extension option isoburn_igopt_no_emul_toc

This commit is contained in:
Thomas Schmitt 2010-05-23 07:25:41 +00:00
parent 475e02e54d
commit 646056fc6e
4 changed files with 26 additions and 2 deletions

View File

@ -465,6 +465,15 @@ int isoburn_prepare_disc_aux(struct burn_drive *in_d, struct burn_drive *out_d,
opts->vol_expiration_time, opts->vol_effective_time,
opts->vol_uuid);
if(opts->no_emul_toc) {
if(out_o->nwa == out_o->zero_nwa &&
out_o->zero_nwa == Libisoburn_overwriteable_starT &&
out_o->emulation_mode == 1) {
out_o->nwa= 0;
out_o->zero_nwa= 0;
out_o->min_start_byte= 0;
}
}
ret = isoburn_disc_track_lba_nwa(out_d, NULL, 0, &lba, &nwa);
opts->effective_lba= nwa;
ret= isoburn_get_msc2(out_o, NULL, &nwa, 0);
@ -574,6 +583,7 @@ int isoburn_prepare_blind_grow(struct burn_drive *d, struct burn_disc **disc,
o->nwa= o->zero_nwa= 0;
else
o->zero_nwa= 0;
o->min_start_byte= 0;
ret= isoburn_prepare_disc_aux(d, out_drive, disc, opts, 2);
if (ret<=0)
return ret;
@ -908,6 +918,7 @@ int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext)
o->aaip= !!(ext & 32);
o->session_md5= !!(ext & 64);
o->file_md5= (ext & (128 | 256)) >> 7;
o->no_emul_toc= !!(ext & 512);
return(1);
}
@ -916,7 +927,8 @@ int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext)
{
*ext= (!!o->rockridge) | ((!!o->joliet)<<1) | ((!!o->iso1999)<<2) |
((!!o->hardlinks) << 3) | ((!!o->aaip) << 5) |
((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7);
((!!o->session_md5) << 6) | ((o->file_md5 & 3) << 7) |
((!!o->no_emul_toc) << 9);
return(1);
}

View File

@ -340,6 +340,11 @@ struct isoburn_imgen_opts {
*/
unsigned int file_md5 :2;
/* On overwriteable media or random access files do not write the first
session to LBA 32, but rather to LBA 0 directly.
*/
unsigned int no_emul_toc :1;
/* relaxed constraints */
/*

View File

@ -945,6 +945,12 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
compare this with the MD5 of the actual copying. If they do
not match then issue MISHAP event.
See also libisofs.h iso_write_opts_set_record_md5()
bit9= no_emul_toc
@since 0.5.8
On overwriteable media or random access files do not write
the first session to LBA 32 and do not copy the first 64kB
of the first session to LBA 0, but rather write the first
session to LBA 0 directly.
@return 1 success, <=0 failure
*/
#define isoburn_igopt_rockridge 1
@ -955,6 +961,7 @@ int isoburn_igopt_get_level(struct isoburn_imgen_opts *o, int *level);
#define isoburn_igopt_session_md5 64
#define isoburn_igopt_file_md5 128
#define isoburn_igopt_file_stability 256
#define isoburn_igopt_no_emul_toc 512
int isoburn_igopt_set_extensions(struct isoburn_imgen_opts *o, int ext);
int isoburn_igopt_get_extensions(struct isoburn_imgen_opts *o, int *ext);

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.05.21.134500"
#define Xorriso_timestamP "2010.05.23.072450"