Improved handling of TAO CD tracks by -check_media
This commit is contained in:
parent
24ef645552
commit
223dadda1d
@ -2840,15 +2840,11 @@ abort_check:;
|
|||||||
/* Read last 2 blocks of CD track separately, because with TAO tracks
|
/* Read last 2 blocks of CD track separately, because with TAO tracks
|
||||||
they are always unreadable but with SAO tracks they contain data.
|
they are always unreadable but with SAO tracks they contain data.
|
||||||
*/
|
*/
|
||||||
if(to_read > 2)
|
if(to_read > 2) {
|
||||||
to_read-= 2;
|
to_read-= 2;
|
||||||
else {
|
} else {
|
||||||
if(flag & 1) {
|
if(to_read > 1)
|
||||||
quality= Xorriso_read_quality_tao_enD;
|
|
||||||
skip_reading= 1;
|
|
||||||
} else if(to_read > 1) {
|
|
||||||
to_read--;
|
to_read--;
|
||||||
}
|
|
||||||
suspect_tao_end= 1;
|
suspect_tao_end= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3173,10 +3169,18 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
|||||||
j + 1, i + 1);
|
j + 1, i + 1);
|
||||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||||
continue;
|
continue;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
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 {
|
} else {
|
||||||
sprintf(msg, "-check_media: Track %d of session %d extends over the end of readable medium area.",
|
sprintf(msg, "-check_media: Track %d of session %d extends over the end of readable medium area.",
|
||||||
j + 1, i + 1);
|
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;
|
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) {
|
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,
|
ret= Spotlist_add_item(*spotlist, read_capacity,
|
||||||
track_bad_claim - read_capacity,
|
track_bad_claim - read_capacity, quality, 0);
|
||||||
Xorriso_read_quality_unreadablE, 0);
|
|
||||||
if(ret <= 0)
|
if(ret <= 0)
|
||||||
goto ex;
|
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