diff --git a/libburn/trunk/cdrskin/cdrskin_timestamp.h b/libburn/trunk/cdrskin/cdrskin_timestamp.h index 290dc5d6..91674a73 100644 --- a/libburn/trunk/cdrskin/cdrskin_timestamp.h +++ b/libburn/trunk/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2010.02.14.084452" +#define Cdrskin_timestamP "2010.02.14.171833" diff --git a/libburn/trunk/libburn/crc.h b/libburn/trunk/libburn/crc.h index a4846a33..3e62f996 100644 --- a/libburn/trunk/libburn/crc.h +++ b/libburn/trunk/libburn/crc.h @@ -3,7 +3,21 @@ #ifndef BURN__CRC_H #define BURN__CRC_H + +#ifdef Xorriso_standalonE +/* Do not use source module crc.c of yet unclear ancestry in GNU xorriso */ +#ifndef Libburn_no_crc_C +#define Libburn_no_crc_C 1 +#endif +#endif + + +#ifndef Libburn_no_crc_C + unsigned short crc_ccitt(unsigned char *, int len); unsigned int crc_32(unsigned char *, int len); +#endif /* Libburn_no_crc_C */ + + #endif /* BURN__CRC_H */ diff --git a/libburn/trunk/libburn/read.c b/libburn/trunk/libburn/read.c index 0d2a0f7f..a5a737f1 100644 --- a/libburn/trunk/libburn/read.c +++ b/libburn/trunk/libburn/read.c @@ -100,7 +100,13 @@ drive, or only store a subset of the _opts structs in drives */ fakesub[20] = 2; fakesub[12] = (d->toc->toc_entry[0].control << 4) + d->toc->toc_entry[0].adr; + +#ifdef Libburn_no_crc_C + crc = 0; /* dummy */ +#else crc = crc_ccitt(fakesub + 12, 10); +#endif + fakesub[22] = crc >> 8; fakesub[23] = crc & 0xFF; write(o->subfd, fakesub, 96); @@ -247,6 +253,8 @@ void burn_packet_process(struct burn_drive *d, unsigned char *data, } } crc = (*(sub + 22) << 8) + *(sub + 23); + +#ifndef Libburn_no_crc_C if (crc != crc_ccitt(sub + 12, 10)) { burn_print(1, "sending error on %s %s\n", d->idata->vendor, d->idata->product); @@ -255,6 +263,8 @@ void burn_packet_process(struct burn_drive *d, unsigned char *data, */ burn_print(1, "crc mismatch in Q\n"); } +#endif + /* else process_q(d, sub + 12); */ /* if (o->subfd != -1) write(o->subfd, sub, 96); */ diff --git a/libburn/trunk/libburn/sector.c b/libburn/trunk/libburn/sector.c index 036e02ee..5a6b2720 100644 --- a/libburn/trunk/libburn/sector.c +++ b/libburn/trunk/libburn/sector.c @@ -411,7 +411,13 @@ a2 - lout ctrl q[7] = dec_to_bcd(d->toc_entry[track].pmin); q[8] = dec_to_bcd(d->toc_entry[track].psec); q[9] = dec_to_bcd(d->toc_entry[track].pframe); + +#ifdef Libburn_no_crc_C + crc = 0; /* dummy */ +#else crc = crc_ccitt(q, 10); +#endif + q[10] = crc >> 8; q[11] = crc & 0xFF; d->toc_temp++; @@ -508,7 +514,13 @@ static void subcode_lout(struct burn_write_opts *o, unsigned char control, q[7] = dec_to_bcd(min); q[8] = dec_to_bcd(sec); q[9] = dec_to_bcd(frame); + +#ifdef Libburn_no_crc_C + crc = 0; /* dummy */ +#else crc = crc_ccitt(q, 10); +#endif + q[10] = crc >> 8; q[11] = crc & 0xFF; } @@ -628,7 +640,13 @@ void subcode_user(struct burn_write_opts *o, unsigned char *subcodes, } q[0] = (control << 4) + qmode; + +#ifdef Libburn_no_crc_C + crc = 0; /* dummy */ +#else crc = crc_ccitt(q, 10); +#endif + q[10] = crc >> 8; q[11] = crc & 0xff; } @@ -774,7 +792,13 @@ int sector_headers(struct burn_write_opts *o, unsigned char *out, out[15] = modebyte; } if (mode & BURN_MODE1) { + +#ifdef Libburn_no_crc_C + crc = 0; /* dummy */ +#else crc = crc_32(out, 2064); +#endif + out[2064] = crc & 0xFF; crc >>= 8; out[2065] = crc & 0xFF; diff --git a/libburn/trunk/libburn/write.c b/libburn/trunk/libburn/write.c index 56bc417e..3db74fa3 100644 --- a/libburn/trunk/libburn/write.c +++ b/libburn/trunk/libburn/write.c @@ -39,7 +39,6 @@ #include "libburn.h" #include "drive.h" #include "transport.h" -#include "crc.h" #include "debug.h" #include "init.h" #include "toc.h"