Improved handling of TAO CD tracks by -check_media
This commit is contained in:
parent
51f9961eba
commit
b384e51f82
@ -2840,15 +2840,11 @@ abort_check:;
|
||||
/* Read last 2 blocks of CD track separately, because with TAO tracks
|
||||
they are always unreadable but with SAO tracks they contain data.
|
||||
*/
|
||||
if(to_read > 2)
|
||||
if(to_read > 2) {
|
||||
to_read-= 2;
|
||||
else {
|
||||
if(flag & 1) {
|
||||
quality= Xorriso_read_quality_tao_enD;
|
||||
skip_reading= 1;
|
||||
} else if(to_read > 1) {
|
||||
} else {
|
||||
if(to_read > 1)
|
||||
to_read--;
|
||||
}
|
||||
suspect_tao_end= 1;
|
||||
}
|
||||
}
|
||||
@ -3174,9 +3170,17 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
continue;
|
||||
} else {
|
||||
sprintf(msg, "-check_media: Track %d of session %d extends over the end of readable medium area.",
|
||||
|
||||
if(profile_no >= 0x08 && profile_no <= 0x0a &&
|
||||
track_lba + track_blocks == read_capacity + 2 &&
|
||||
i == num_sessions - 1 && j == num_tracks - 1) {
|
||||
sprintf(msg, "-check_media: Last CD track exceeds readable area by 2 blocks. Assuming TAO.");
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "DEBUG", 0);
|
||||
} else {
|
||||
sprintf(msg, "-check_media: Track %d of session %d extends over the end of readable medium area.",
|
||||
j + 1, i + 1);
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
}
|
||||
track_blocks= read_capacity - track_lba;
|
||||
}
|
||||
}
|
||||
@ -3227,9 +3231,16 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
}
|
||||
|
||||
if(track_bad_claim > read_capacity) {
|
||||
count= Spotlist_count(*spotlist, 0);
|
||||
Spotlist_get_item(*spotlist, count - 1, &track_lba, &blocks, &quality, 0);
|
||||
if(profile_no >= 0x08 && profile_no <= 0x0a &&
|
||||
track_bad_claim - read_capacity == 2 &&
|
||||
quality != Xorriso_read_quality_tao_enD)
|
||||
quality= Xorriso_read_quality_tao_enD;
|
||||
else
|
||||
quality= Xorriso_read_quality_unreadablE;
|
||||
ret= Spotlist_add_item(*spotlist, read_capacity,
|
||||
track_bad_claim - read_capacity,
|
||||
Xorriso_read_quality_unreadablE, 0);
|
||||
track_bad_claim - read_capacity, quality, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
#define Xorriso_timestamP "2016.03.01.141456"
|
||||
#define Xorriso_timestamP "2016.03.08.075457"
|
||||
|
Loading…
Reference in New Issue
Block a user