Bug fix: DVD DAO track size was rounded up much too generously

This commit is contained in:
Thomas Schmitt 2009-11-22 20:52:40 +00:00
parent 6b97497089
commit 396a743690
2 changed files with 5 additions and 5 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2009.11.21.191717" #define Cdrskin_timestamP "2009.11.22.115227"

View File

@ -1103,10 +1103,10 @@ int burn_disc_open_track_dvd_minus_r(struct burn_write_opts *o,
if (o->write_type == BURN_WRITE_SAO) { /* DAO */ if (o->write_type == BURN_WRITE_SAO) { /* DAO */
/* Round track size up to write chunk size and reserve track */ /* Round track size up to write chunk size and reserve track */
size = ((off_t) burn_track_get_sectors(s->track[tnum])); size = ((off_t) burn_track_get_sectors(s->track[tnum]))
* (off_t) 2048;
if (size % o->obs) if (size % o->obs)
size += (off_t) (o->obs - (size % o->obs)); size += (off_t) (o->obs - (size % o->obs));
size *= (off_t) 2048;
ret = d->reserve_track(d, size); ret = d->reserve_track(d, size);
if (ret <= 0) { if (ret <= 0) {
sprintf(msg, "Cannot reserve track of %.f bytes", sprintf(msg, "Cannot reserve track of %.f bytes",
@ -1145,10 +1145,10 @@ int burn_disc_open_track_dvd_plus_r(struct burn_write_opts *o,
if (o->write_type == BURN_WRITE_SAO && if (o->write_type == BURN_WRITE_SAO &&
! burn_track_is_open_ended(s->track[tnum])) { ! burn_track_is_open_ended(s->track[tnum])) {
/* Round track size up to write chunk size and reserve track */ /* Round track size up to write chunk size and reserve track */
size = ((off_t) burn_track_get_sectors(s->track[tnum])); size = ((off_t) burn_track_get_sectors(s->track[tnum]))
* (off_t) 2048;
if (size % o->obs) if (size % o->obs)
size += (off_t) (o->obs - (size % o->obs)); size += (off_t) (o->obs - (size % o->obs));
size *= (off_t) 2048;
ret = d->reserve_track(d, size); ret = d->reserve_track(d, size);
if (ret <= 0) { if (ret <= 0) {
sprintf(msg, "Cannot reserve track of %.f bytes", sprintf(msg, "Cannot reserve track of %.f bytes",