Fixed a bug with speed measurement at end of DVD+RW burning

This commit is contained in:
Thomas Schmitt 2006-12-24 14:22:38 +00:00
parent 9ba4f5f3df
commit fb4a209a34
3 changed files with 11 additions and 3 deletions

View File

@ -3993,6 +3993,7 @@ int Cdrskin_burn_pacifier(struct CdrskiN *skin,
elapsed_total_time= current_time-start_time; elapsed_total_time= current_time-start_time;
elapsed_time= current_time-*last_time; elapsed_time= current_time-*last_time;
time_to_tell= (elapsed_time>=1.0)&&(elapsed_total_time>=1.0); time_to_tell= (elapsed_time>=1.0)&&(elapsed_total_time>=1.0);
written_total_bytes= *last_count; /* to be overwritten by p.sector */
#ifdef Cdrskin_libburn_has_bd_formattinG #ifdef Cdrskin_libburn_has_bd_formattinG
if(drive_status==BURN_DRIVE_FORMATTING) if(drive_status==BURN_DRIVE_FORMATTING)
@ -4082,7 +4083,6 @@ int Cdrskin_burn_pacifier(struct CdrskiN *skin,
bytes_to_write= ((double) p->sectors)*sector_size; bytes_to_write= ((double) p->sectors)*sector_size;
written_total_bytes= ((double) p->sector)*sector_size; written_total_bytes= ((double) p->sector)*sector_size;
written_bytes= written_total_bytes-*last_count; written_bytes= written_total_bytes-*last_count;
if(written_total_bytes<1024*1024) { if(written_total_bytes<1024*1024) {
thank_you_for_patience:; thank_you_for_patience:;
if(time_to_tell || (skin->is_writing && elapsed_total_time>=1.0)) { if(time_to_tell || (skin->is_writing && elapsed_total_time>=1.0)) {
@ -4125,10 +4125,13 @@ thank_you_for_patience:;
estim_seconds= 0.0; estim_seconds= 0.0;
} }
} }
if(elapsed_time>0.0) if(written_bytes==written_total_bytes && elapsed_total_time>0) {
measured_speed= measured_total_speed;
} else if(elapsed_time>0.0)
measured_speed= written_bytes/elapsed_time; measured_speed= written_bytes/elapsed_time;
else if(written_bytes>0.0) else if(written_bytes>0.0)
measured_speed= 99.91*Cdrskin_speed_factoR; measured_speed= 99.91*Cdrskin_speed_factoR;
if(measured_speed<=0.0 && written_total_bytes>=skin->fixed_size && if(measured_speed<=0.0 && written_total_bytes>=skin->fixed_size &&
skin->fixed_size>0) { skin->fixed_size>0) {
if(!skin->is_writing) if(!skin->is_writing)

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2006.12.23.220001" #define Cdrskin_timestamP "2006.12.24.140904"

View File

@ -1016,6 +1016,11 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
ret = burn_dvd_write_session(o, disc->session[i]); ret = burn_dvd_write_session(o, disc->session[i]);
if (ret <= 0) if (ret <= 0)
goto ex; goto ex;
/* XXX: currently signs an end of session */
d->progress.sector = 0;
d->progress.start_sector = 0;
d->progress.sectors = 0;
} }
/* >>> eventual normal finalization measures */ /* >>> eventual normal finalization measures */