From d7caf0ca23b8de169ae6bb8eece48a7bdaeb2826 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Sun, 24 Dec 2006 14:22:38 +0000 Subject: [PATCH] Fixed a bug with speed measurement at end of DVD+RW burning --- libburn/trunk/cdrskin/cdrskin.c | 7 +++++-- libburn/trunk/cdrskin/cdrskin_timestamp.h | 2 +- libburn/trunk/libburn/write.c | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/libburn/trunk/cdrskin/cdrskin.c b/libburn/trunk/cdrskin/cdrskin.c index 3c73caaa..d77c323d 100644 --- a/libburn/trunk/cdrskin/cdrskin.c +++ b/libburn/trunk/cdrskin/cdrskin.c @@ -3993,6 +3993,7 @@ int Cdrskin_burn_pacifier(struct CdrskiN *skin, elapsed_total_time= current_time-start_time; elapsed_time= current_time-*last_time; 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 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; written_total_bytes= ((double) p->sector)*sector_size; written_bytes= written_total_bytes-*last_count; - if(written_total_bytes<1024*1024) { thank_you_for_patience:; if(time_to_tell || (skin->is_writing && elapsed_total_time>=1.0)) { @@ -4125,10 +4125,13 @@ thank_you_for_patience:; 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; else if(written_bytes>0.0) measured_speed= 99.91*Cdrskin_speed_factoR; + if(measured_speed<=0.0 && written_total_bytes>=skin->fixed_size && skin->fixed_size>0) { if(!skin->is_writing) diff --git a/libburn/trunk/cdrskin/cdrskin_timestamp.h b/libburn/trunk/cdrskin/cdrskin_timestamp.h index 19a17ff2..3e75838d 100644 --- a/libburn/trunk/cdrskin/cdrskin_timestamp.h +++ b/libburn/trunk/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2006.12.23.220001" +#define Cdrskin_timestamP "2006.12.24.140904" diff --git a/libburn/trunk/libburn/write.c b/libburn/trunk/libburn/write.c index cb24d281..5e3df320 100644 --- a/libburn/trunk/libburn/write.c +++ b/libburn/trunk/libburn/write.c @@ -1016,6 +1016,11 @@ int burn_dvd_write_sync(struct burn_write_opts *o, ret = burn_dvd_write_session(o, disc->session[i]); if (ret <= 0) 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 */