diff --git a/cdrskin/cdrskin.c b/cdrskin/cdrskin.c index 0cd356a..cbda4c0 100644 --- a/cdrskin/cdrskin.c +++ b/cdrskin/cdrskin.c @@ -7598,6 +7598,22 @@ int Cdrskin_msinfo(struct CdrskiN *skin, int flag) continue; burn_track_get_entry(tracks[0],&toc_entry); if(toc_entry.extensions_valid&1) { /* DVD extension valid */ + if(session_no >= num_sessions) { + + /* libburn-1.3.0.pl01 : 2013.05.31.080001 + Bug fix: cdrskin -msinfo on DVD and BD reported + old session start = next writable address. + Regression introduced by version 1.2.8 (rev 4956). + */ + if(!(toc_entry.extensions_valid & 4)) + continue; /* open session with no track status bits from libburn */ + if((toc_entry.track_status_bits & (1 << 14)) || + !((toc_entry.track_status_bits & (1 << 16)) || + ((toc_entry.track_status_bits & (1 << 17)) && + toc_entry.last_recorded_address > toc_entry.start_lba))) + continue; /* Blank or not appendable and not recorded */ + } + lba= toc_entry.start_lba; } else { lba= burn_msf_to_lba(toc_entry.pmin,toc_entry.psec,toc_entry.pframe); diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index fd65fce..dbf889c 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2013.05.17.090001" +#define Cdrskin_timestamP "2013.05.31.080001"