diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 728db93e..be19c86a 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2008.04.03.204051" +#define Xorriso_timestamP "2008.04.05.112055" diff --git a/xorriso/xorrisoburn.c b/xorriso/xorrisoburn.c index 2cc49724..ef34ea63 100644 --- a/xorriso/xorrisoburn.c +++ b/xorriso/xorrisoburn.c @@ -2193,6 +2193,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) int track_count= 0, session_no, track_no, profile_no= -1; int last_track_start= 0, last_track_size= -1, num_data= 0, is_data= 0; int is_inout_drive= 0, drive_role; + int num_payload= 0, num_wasted= 0, num_nondata= 0; char profile_name[80],*respt,*devadr; struct burn_disc *disc= NULL; struct burn_session **sessions; @@ -2286,7 +2287,7 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) sprintf(respt+strlen(respt), "leadout lba: %9d\n", nwa); if(!(flag&1)) Xorriso_result(xorriso,0); - num_data= last_track_size= nwa; + num_payload= num_data= last_track_size= nwa; num_sessions= 1; } else { sessions= burn_disc_get_sessions(disc, &num_sessions); @@ -2311,6 +2312,8 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) track_count, ((toc_entry.control&7)<4?"audio":"data "), lba); if(!(flag&1)) Xorriso_result(xorriso,0); + if(track_no>0) + num_payload+= lba - last_track_start; last_track_start= lba; if((toc_entry.control&7)>=4) /* data track */ is_data= 1; @@ -2328,15 +2331,23 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag) if(!(flag&1)) Xorriso_result(xorriso,0); last_track_size= lba - last_track_start; + num_payload+= last_track_size; if(is_data) num_data+= last_track_size; } } if(xorriso->request_to_abort) return(1); + num_wasted= lba - num_payload; + num_nondata= lba - num_data; Sfile_scale(((double) num_data) * 2048.0, mem_text,5,1e4,1); - sprintf(respt, "Media summary: %d session%s, %d data blocks, %s\n", + sprintf(respt, "Media summary: %d session%s, %d data blocks, %s", num_sessions, (num_sessions==1 ? "" : "s"), num_data, mem_text); + if(num_nondata>0) { + Sfile_scale(((double) num_nondata) * 2048.0, mem_text,5,1e4,1); + sprintf(respt+strlen(respt), ", %s non-data", mem_text); + } + sprintf(respt+strlen(respt), "\n"); Xorriso_result(xorriso,0); if (s == BURN_DISC_APPENDABLE && nwa!=0) {