diff --git a/libburn/trunk/cdrskin/cdrskin_timestamp.h b/libburn/trunk/cdrskin/cdrskin_timestamp.h index 11f76996..ae899339 100644 --- a/libburn/trunk/cdrskin/cdrskin_timestamp.h +++ b/libburn/trunk/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2007.02.21.205244" +#define Cdrskin_timestamP "2007.02.22.072700" diff --git a/libburn/trunk/libburn/drive.c b/libburn/trunk/libburn/drive.c index 23326ba3..8ef0caea 100644 --- a/libburn/trunk/libburn/drive.c +++ b/libburn/trunk/libburn/drive.c @@ -1677,7 +1677,7 @@ int burn_disc_get_multi_caps(struct burn_drive *d, enum burn_write_types wt, d->best_format_size - 2048; } } - o->might_do_sao = 3; + o->might_do_sao = 4; o->might_do_tao = 2; o->advised_write_mode = BURN_WRITE_TAO; } else /* unknown media */ diff --git a/libburn/trunk/libburn/libburn.h b/libburn/trunk/libburn/libburn.h index 12339adc..ffb8fe6e 100644 --- a/libburn/trunk/libburn/libburn.h +++ b/libburn/trunk/libburn/libburn.h @@ -1518,7 +1518,8 @@ struct burn_multi_caps { off_t start_range_high; /** Potential availability of write modes - 3= allowed but not to be chosen automatically + 4= needs no size prediction, not to be chosen automatically + 3= needs size prediction, not to be chosen automatically 2= available, no size prediction necessary 1= available, needs exact size prediction 0= not available diff --git a/libburn/trunk/libburn/options.c b/libburn/trunk/libburn/options.c index d04df9cd..b4363d1a 100644 --- a/libburn/trunk/libburn/options.c +++ b/libburn/trunk/libburn/options.c @@ -241,7 +241,8 @@ no_caps:; strcat(reasons, "appended session capability lacking, "); if (demands.multi_track && !caps->multi_track) strcat(reasons, "multi track capability lacking, "); - if (demands.unknown_track_size == 1) + if (demands.unknown_track_size == 1 && + (caps->might_do_sao == 1 || caps->might_do_sao == 3)) strcat(reasons, "track size unpredictable, "); if (demands.mixed_mode) strcat(reasons, "tracks of different modes mixed, "); @@ -256,10 +257,11 @@ no_caps:; if (strcmp(reason_pt, "SAO: ") != 0) goto no_sao; would_do_sao = 1; - if (demands.unknown_track_size == 2 && !(flag & 1)) { + if (demands.unknown_track_size == 2 && (!(flag & 1)) && + (caps->might_do_sao == 1 || caps->might_do_sao == 3)) { strcat(reasons, "would have to use default track sizes, "); goto no_sao; - } else if (caps->might_do_sao == 3 && !(flag & 1)) + } else if (caps->might_do_sao >= 3 && !(flag & 1)) goto try_tao; do_sao:; if (!(flag & 1))