Adapted -chek_media to peculiarities of DVD and BD
This commit is contained in:
@ -2610,6 +2610,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 eccb_size= 16;
|
||||
int start_sec, end_sec, first_value, fret, suspect_tao_end= 0;
|
||||
char profile_name[80];
|
||||
int start_lba= 0;
|
||||
@ -2657,10 +2658,15 @@ int Xorriso_check_interval(struct XorrisO *xorriso, struct SpotlisT *spotlist,
|
||||
goto ex;
|
||||
ret= burn_disc_get_profile(drive, &profile_no, profile_name);
|
||||
if(ret > 0) {
|
||||
if(profile_no >= 0x08 && profile_no <= 0x0a)
|
||||
if(profile_no >= 0x08 && profile_no <= 0x0a) {
|
||||
is_cd= 1;
|
||||
eccb_size= 1;
|
||||
} else if(profile_no >= 0x40 && profile_no <= 0x43) {
|
||||
eccb_size= 32;
|
||||
} else if(burn_drive_get_drive_role(drive) != 1) {
|
||||
eccb_size= 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(job->sector_map != NULL) {
|
||||
Sectorbitmap_get_layout(job->sector_map, §ors, §or_size, 0);
|
||||
@ -2815,7 +2821,6 @@ abort_check:;
|
||||
goto ex;
|
||||
data_pt= state.chunk[state.chunk_w_idx];
|
||||
}
|
||||
|
||||
ret= burn_read_data(drive, ((off_t) (i + from_lba)) * (off_t) 2048,
|
||||
data_pt, to_read * (off_t) 2048, &data_count,
|
||||
(4 * !retry) | (16 * !!suspect_tao_end));
|
||||
@ -2847,10 +2852,12 @@ abort_check:;
|
||||
quality= Xorriso_read_quality_tao_enD;
|
||||
else
|
||||
quality= Xorriso_read_quality_unreadablE;
|
||||
if(retry)
|
||||
to_read= data_count / 2048 + 1;
|
||||
} else
|
||||
if(retry) /* skip one eccb_size */
|
||||
to_read= data_count / 2048 + eccb_size;
|
||||
|
||||
} else { /* (can hardly happen) */
|
||||
quality= Xorriso_read_quality_partiaL;
|
||||
}
|
||||
fret= Xorriso_eval_problem_status(xorriso, ret, 1|2);
|
||||
if(fret<0)
|
||||
goto ex;
|
||||
|
Reference in New Issue
Block a user