diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 5f0c4df..039a441 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2012.01.01.124121" +#define Cdrskin_timestamP "2012.01.01.124330" diff --git a/doc/cookbook.txt b/doc/cookbook.txt index 1b99636..6b358a9 100644 --- a/doc/cookbook.txt +++ b/doc/cookbook.txt @@ -94,6 +94,7 @@ parameters: Write Type Packet/TAO/SAO/RAW 01h = TAO Multi-session Whether to keep appendable 00b = finalize 11b = keep appendable + Copy Whether to deny copying 1 = deny by SCMS , 0 = allow Track Mode Describes frame type 4 for data , 0 for audio Data Block Type Layout of payload blocks 8 for 2048 byte data blocks 0 for 2352 byte audio blocks @@ -1489,7 +1490,7 @@ at the NWA of a sufficiently sized track. ------------------------------------------------------------------------------- -This text is copyright 2011 Thomas Schmitt . +This text is copyright 2011 - 2012 Thomas Schmitt . Permission is granted to copy, modify, and distribute it, as long as the references to the original information sources are maintained. There is NO WARRANTY, to the extent permitted by law. diff --git a/libburn/mmc.c b/libburn/mmc.c index 9d37880..45e6013 100644 --- a/libburn/mmc.c +++ b/libburn/mmc.c @@ -4151,9 +4151,10 @@ fprintf(stderr, "libburn_EXPERIMENTAL: block_type = %d, pd[4]= %u\n", } /* ISRC at bytes 32 to 47. Tables 664, 671 */ + /* SCMS at byte 3 bit 4 */ isrc_text[0] = 0; - if (s != NULL && o->write_type == BURN_WRITE_TAO) - if (tno >= 1 && tno <= s->tracks) + if (s != NULL && o->write_type == BURN_WRITE_TAO) { + if (tno >= 1 && tno <= s->tracks) { if (s->track[tno - 1]->isrc.has_isrc) { isrc = &(s->track[tno - 1]->isrc); isrc_text[0] = isrc->country[0]; @@ -4165,6 +4166,11 @@ fprintf(stderr, "libburn_EXPERIMENTAL: block_type = %d, pd[4]= %u\n", (unsigned int) isrc->year, isrc->serial); } + if ((s->track[tno - 1]->mode & BURN_SCMS) && + !(s->track[tno - 1]->mode & BURN_COPY)) + pd[3] |= 0x10; + } + } if (isrc_text[0] != 0 && d->mdata->write_page_length >= 46) { pd[32] = 0x80; /* TCVAL */ memcpy(pd + 33, isrc_text, 12);