Made structs SpotlistiteM and SpotlisT ready for long block adresses
This commit is contained in:
@@ -2578,7 +2578,7 @@ int Xorriso__add_spot(struct xorriso_md5_state *state,
|
||||
if(ret != 0)
|
||||
return(0);
|
||||
}
|
||||
ret= Spotlist_add_item(state->spotlist, start_lba, blocks, quality, 0);
|
||||
ret= Spotlist_add_item(state->spotlist, (off_t) start_lba, (off_t) blocks, quality, 0);
|
||||
if(state->chunk != NULL) {
|
||||
uret= pthread_mutex_unlock(&(state->spot_mutex));
|
||||
if(uret != 0 && ret > 0)
|
||||
@@ -3255,10 +3255,11 @@ ex:;
|
||||
int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
struct CheckmediajoB *job, int flag)
|
||||
{
|
||||
int media_blocks= 0, read_chunk= 32, ret, mode, start_lba= 0;
|
||||
int blocks, os_errno, i, j, last_track_end= -1, track_blocks, track_lba;
|
||||
int media_blocks= 0, read_chunk= 32, ret, mode;
|
||||
int num_sessions, num_tracks, declare_untested= 0, md5_start;
|
||||
int read_capacity= -1, end_lba, hret, count, quality, profile_no;
|
||||
int os_errno, j, track_blocks;
|
||||
int read_capacity= -1, end_lba, hret, quality, profile_no;
|
||||
off_t i, blocks, last_track_end= -1, count, track_lba, start_lba= 0;
|
||||
int track_bad_claim= 0;
|
||||
char *toc_info= NULL, profile_name[80], msg[160];
|
||||
struct burn_drive *drive;
|
||||
@@ -3313,7 +3314,7 @@ int Xorriso_check_media(struct XorrisO *xorriso, struct SpotlisT **spotlist,
|
||||
mode= job->mode;
|
||||
if(job->min_lba > 0) {
|
||||
start_lba= job->min_lba;
|
||||
ret= Spotlist_add_item(*spotlist, 0, job->min_lba,
|
||||
ret= Spotlist_add_item(*spotlist, (off_t) 0, (off_t) job->min_lba,
|
||||
Xorriso_read_quality_untesteD, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
@@ -3346,8 +3347,8 @@ no_readable_medium:;
|
||||
if(job->max_lba >= 0) {
|
||||
blocks= job->max_lba + 1 - start_lba;
|
||||
xorriso->pacifier_total= blocks;
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, start_lba, blocks,
|
||||
read_chunk, start_lba, 0);
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, (int) start_lba, (int) blocks,
|
||||
read_chunk, (int) start_lba, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
|
||||
@@ -3386,7 +3387,7 @@ no_tracks_found:;
|
||||
track_bad_claim= track_lba + track_blocks;
|
||||
if(track_lba >= read_capacity) {
|
||||
sprintf(msg, "-check_media: Track %d of session %d begins after end of readable medium area.",
|
||||
j + 1, i + 1);
|
||||
j + 1, (int) (i + 1));
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
continue;
|
||||
} else {
|
||||
@@ -3398,7 +3399,7 @@ no_tracks_found:;
|
||||
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);
|
||||
j + 1, (int) (i + 1));
|
||||
Xorriso_msgs_submit(xorriso, 0, msg, 0, "WARNING", 0);
|
||||
}
|
||||
track_blocks= read_capacity - track_lba;
|
||||
@@ -3434,12 +3435,12 @@ no_tracks_found:;
|
||||
if(track_blocks <= 0)
|
||||
continue;
|
||||
if(declare_untested) {
|
||||
ret= Spotlist_add_item(*spotlist, track_lba, track_blocks,
|
||||
ret= Spotlist_add_item(*spotlist, track_lba, (off_t) track_blocks,
|
||||
Xorriso_read_quality_untesteD, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else {
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, track_lba,
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, (int) track_lba,
|
||||
track_blocks, read_chunk, md5_start,
|
||||
(i > 0) | (4 * (xorriso->do_md5 & 1)));
|
||||
if(ret <= 0)
|
||||
@@ -3459,8 +3460,8 @@ no_tracks_found:;
|
||||
quality= Xorriso_read_quality_tao_enD;
|
||||
else
|
||||
quality= Xorriso_read_quality_unreadablE;
|
||||
ret= Spotlist_add_item(*spotlist, read_capacity,
|
||||
track_bad_claim - read_capacity, quality, 0);
|
||||
ret= Spotlist_add_item(*spotlist, (off_t) read_capacity,
|
||||
(off_t) (track_bad_claim - read_capacity), quality, 0);
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
@@ -3479,7 +3480,7 @@ no_tracks_found:;
|
||||
*/
|
||||
track_lba= isoburn_get_attached_start_lba(drive);
|
||||
if(track_lba >= 0) {
|
||||
ret= isoburn_read_iso_head(drive, track_lba, &track_blocks, NULL, 0);
|
||||
ret= isoburn_read_iso_head(drive, (int) track_lba, &track_blocks, NULL, 0);
|
||||
if(ret > 0) {
|
||||
blocks= media_blocks= track_lba + track_blocks;
|
||||
}
|
||||
@@ -3490,14 +3491,14 @@ no_tracks_found:;
|
||||
if(media_blocks <= 0)
|
||||
goto libburn_whole_disc;
|
||||
xorriso->pacifier_total= blocks;
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, start_lba, blocks,
|
||||
read_chunk, start_lba, (4 * (xorriso->do_md5 & 1)));
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, (int) start_lba, (int) blocks,
|
||||
read_chunk, (int) start_lba, (4 * (xorriso->do_md5 & 1)));
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
} else if(mode == 2) {
|
||||
libburn_whole_disc:;
|
||||
/* single sweep over libburn medium capacity */
|
||||
ret= burn_get_read_capacity(drive, &blocks, 0);
|
||||
ret= burn_get_read_capacity_v2(drive, &blocks, 0);
|
||||
if(ret <= 0) {
|
||||
Xorriso_process_msg_queues(xorriso,0);
|
||||
sprintf(xorriso->info_text, "No content detected on media");
|
||||
@@ -3506,8 +3507,8 @@ libburn_whole_disc:;
|
||||
}
|
||||
blocks-= start_lba;
|
||||
xorriso->pacifier_total= blocks;
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, start_lba, blocks,
|
||||
read_chunk, start_lba, (4 * (xorriso->do_md5 & 1)));
|
||||
ret= Xorriso_check_interval(xorriso, *spotlist, job, (int) start_lba, (int) blocks,
|
||||
read_chunk, (int) start_lba, (4 * (xorriso->do_md5 & 1)));
|
||||
if(ret <= 0)
|
||||
goto ex;
|
||||
}
|
||||
@@ -3531,7 +3532,7 @@ ex:;
|
||||
end_lba= start_lba + blocks;
|
||||
}
|
||||
if(read_capacity > end_lba) {
|
||||
hret= Spotlist_add_item(*spotlist, end_lba, read_capacity - end_lba,
|
||||
hret= Spotlist_add_item(*spotlist, (off_t) end_lba, (off_t) (read_capacity - end_lba),
|
||||
Xorriso_read_quality_untesteD, 0);
|
||||
if(hret < ret)
|
||||
ret= hret;
|
||||
@@ -3539,10 +3540,11 @@ ex:;
|
||||
}
|
||||
|
||||
if(ret > 0)
|
||||
ret= Xorriso_update_in_sector_map(xorriso, *spotlist, read_chunk, job, 0);
|
||||
ret= Xorriso_update_in_sector_map(xorriso, *spotlist, (off_t) read_chunk,
|
||||
job, 0);
|
||||
|
||||
if(ret > 0) {
|
||||
ret= Xorriso_spotlist_to_sectormap(xorriso, *spotlist, read_chunk,
|
||||
ret= Xorriso_spotlist_to_sectormap(xorriso, *spotlist, (off_t) read_chunk,
|
||||
&(job->sector_map), 2);
|
||||
if(ret > 0 && job->sector_map_path[0]) {
|
||||
ret= Sectorbitmap_to_file(job->sector_map, job->sector_map_path, toc_info,
|
||||
|
Reference in New Issue
Block a user