diff --git a/libisoburn/trunk/xorriso/drive_mgt.c b/libisoburn/trunk/xorriso/drive_mgt.c index 3d6c25b4..1757cdf6 100644 --- a/libisoburn/trunk/xorriso/drive_mgt.c +++ b/libisoburn/trunk/xorriso/drive_mgt.c @@ -2465,7 +2465,7 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist, { int i, j, ret, total_count= 0, sectors= -1, sector_size= -1, skip_reading; int prev_quality= -1, quality= -1, retry= 0, profile_no, is_cd= 0; - int start_sec, end_sec, first_value, fret; + int start_sec, end_sec, first_value, fret, suspect_tao_end= 0; char profile_name[80]; int start_lba= 0; struct burn_drive *drive; @@ -2616,6 +2616,7 @@ abort_check:; } to_read= read_chunk; + suspect_tao_end= 0; if(i + to_read > block_count) to_read= block_count - i; if(is_cd && i + to_read + 2 >= block_count) { @@ -2624,12 +2625,14 @@ abort_check:; */ if(to_read > 2) to_read-= 2; - else if(to_read > 1) { + else { if(flag & 1) { quality= Xorriso_read_quality_tao_enD; skip_reading= 1; - } else + } else if(to_read > 1) { to_read--; + } + suspect_tao_end= 1; } } @@ -2666,7 +2669,8 @@ abort_check:; } ret= burn_read_data(drive, ((off_t) (i + from_lba)) * (off_t) 2048, - data_pt, to_read * (off_t) 2048, &data_count, 4 * !retry); + data_pt, to_read * (off_t) 2048, &data_count, + (4 * !retry) | (16 * !!suspect_tao_end)); post_read_time= Sfile_microtime(0); time_diff= post_read_time - pre_read_time; total_time_diff+= time_diff; @@ -2686,9 +2690,15 @@ abort_check:; if(ret <= 0) goto ex; start_lba= i + from_lba + data_count / 2048; - prev_quality= Xorriso_read_quality_unreadablE; + if(suspect_tao_end && ret == -3) + prev_quality= Xorriso_read_quality_tao_enD; + else + prev_quality= Xorriso_read_quality_unreadablE; } - quality= Xorriso_read_quality_unreadablE; + if(suspect_tao_end && ret == -3) + quality= Xorriso_read_quality_tao_enD; + else + quality= Xorriso_read_quality_unreadablE; if(retry) to_read= data_count / 2048 + 1; } else diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index fac348a6..51ebc372 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2012.10.24.095235" +#define Xorriso_timestamP "2012.10.25.125559"