Improved -check_media handling of last two blocks in initial CD TAO session
This commit is contained in:
parent
3fce53d739
commit
90c587e475
@ -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,13 +2625,15 @@ 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;
|
||||
}
|
||||
}
|
||||
|
||||
if(sector_size == read_chunk && from_lba % read_chunk == 0
|
||||
@ -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,8 +2690,14 @@ abort_check:;
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
start_lba= i + from_lba + data_count / 2048;
|
||||
if(suspect_tao_end && ret == -3)
|
||||
prev_quality= Xorriso_read_quality_tao_enD;
|
||||
else
|
||||
prev_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;
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2012.10.24.095235"
|
||||
#define Xorriso_timestamP "2012.10.25.125559"
|
||||
|
Loading…
Reference in New Issue
Block a user