From 28d19db8d0c881f70de6e4b975888e7ceeb8ab2a Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 22 Apr 2009 17:37:00 +0000 Subject: [PATCH] Made use of new libisoburn call to accelerate option -toc for large TOC --- libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- libisoburn/trunk/xorriso/xorrisoburn.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 3581cef1..a5cdd7ce 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2009.04.22.173603" +#define Xorriso_timestamP "2009.04.22.173648" diff --git a/libisoburn/trunk/xorriso/xorrisoburn.c b/libisoburn/trunk/xorriso/xorrisoburn.c index 55b42288..7173c5dc 100644 --- a/libisoburn/trunk/xorriso/xorrisoburn.c +++ b/libisoburn/trunk/xorriso/xorrisoburn.c @@ -4216,7 +4216,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) int num_sessions= 0, num_tracks= 0, lba= 0, nwa= -1, pmin, psec, pframe, ret; int track_count= 0, session_no, track_no, profile_no= -1, track_size; int last_track_start= 0, last_track_size= -1, num_data= 0, is_data= 0; - int is_inout_drive= 0, drive_role, status, num_formats; + int is_inout_drive= 0, drive_role, status, num_formats, emul_lba; int num_payload= 0, num_wasted= 0, num_nondata= 0; char profile_name[80],*respt,*devadr, *typetext= ""; struct burn_toc_entry toc_entry; @@ -4380,7 +4380,10 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) if(flag&(1|4)) ret= 0; else { - ret= isoburn_read_iso_head(drive, lba, &image_blocks, volume_id, 1); + ret= isoburn_toc_track_get_emul(tracks[track_no], &emul_lba, + &image_blocks, volume_id, 0); + if(ret <= 0) + ret= isoburn_read_iso_head(drive, lba, &image_blocks, volume_id, 1); if(image_blocks > track_size) { sprintf(xorriso->info_text, "Session %d bears ISO image size %ds larger than track size %ds",