From 4b847395746be4c66d60b25664d17ff860d2351b Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 21 May 2007 19:03:06 +0000 Subject: [PATCH] For Linux 2.4, USB audio : Reduced CD output buffer size to 32 kiB --- libburn/trunk/cdrskin/cdrskin_timestamp.h | 2 +- libburn/trunk/libburn/sector.c | 3 ++- libburn/trunk/libburn/write.c | 3 +++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libburn/trunk/cdrskin/cdrskin_timestamp.h b/libburn/trunk/cdrskin/cdrskin_timestamp.h index 4548633c..aa1045cc 100644 --- a/libburn/trunk/cdrskin/cdrskin_timestamp.h +++ b/libburn/trunk/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2007.05.21.185450" +#define Cdrskin_timestamP "2007.05.21.185644" diff --git a/libburn/trunk/libburn/sector.c b/libburn/trunk/libburn/sector.c index 6fcceab1..752fa10d 100644 --- a/libburn/trunk/libburn/sector.c +++ b/libburn/trunk/libburn/sector.c @@ -218,7 +218,8 @@ static unsigned char *get_sector(struct burn_write_opts *opts, seclen += burn_subcode_length(outmode); /* ts A61219 : opts->obs is eventually a 32k trigger for DVD */ - if (out->bytes + (seclen) > BUFFER_SIZE || out->bytes == opts->obs) { + if (out->bytes + seclen > BUFFER_SIZE || + out->bytes + seclen > opts->obs) { int err; err = d->write(d, d->nwa, out); if (err == BE_CANCELLED) diff --git a/libburn/trunk/libburn/write.c b/libburn/trunk/libburn/write.c index 5d804290..8de70e91 100644 --- a/libburn/trunk/libburn/write.c +++ b/libburn/trunk/libburn/write.c @@ -1765,6 +1765,9 @@ void burn_disc_write_sync(struct burn_write_opts *o, struct burn_disc *disc) return; } + /* ts A70521 : Linux 2.4 USB audio fails with 64 kiB */ + o->obs = 32*1024; /* buffer flush trigger for sector.c:get_sector() */ + #ifndef Libburn_precheck_write_ruleS /* <<< covered by burn_precheck_write() */ if (o->start_byte >= 0) {