Writing SCMS into mode page 5 if TAO

This commit is contained in:
Thomas Schmitt 2012-01-01 12:43:36 +00:00
parent 23d7867331
commit 3845e1af05
3 changed files with 11 additions and 4 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2012.01.01.124121" #define Cdrskin_timestamP "2012.01.01.124330"

View File

@ -94,6 +94,7 @@ parameters:
Write Type Packet/TAO/SAO/RAW 01h = TAO Write Type Packet/TAO/SAO/RAW 01h = TAO
Multi-session Whether to keep appendable 00b = finalize Multi-session Whether to keep appendable 00b = finalize
11b = keep appendable 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 Track Mode Describes frame type 4 for data , 0 for audio
Data Block Type Layout of payload blocks 8 for 2048 byte data blocks Data Block Type Layout of payload blocks 8 for 2048 byte data blocks
0 for 2352 byte audio 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 <scdbackup@gmx.net>. This text is copyright 2011 - 2012 Thomas Schmitt <scdbackup@gmx.net>.
Permission is granted to copy, modify, and distribute it, as long as the Permission is granted to copy, modify, and distribute it, as long as the
references to the original information sources are maintained. references to the original information sources are maintained.
There is NO WARRANTY, to the extent permitted by law. There is NO WARRANTY, to the extent permitted by law.

View File

@ -4151,9 +4151,10 @@ fprintf(stderr, "libburn_EXPERIMENTAL: block_type = %d, pd[4]= %u\n",
} }
/* ISRC at bytes 32 to 47. Tables 664, 671 */ /* ISRC at bytes 32 to 47. Tables 664, 671 */
/* SCMS at byte 3 bit 4 */
isrc_text[0] = 0; isrc_text[0] = 0;
if (s != NULL && o->write_type == BURN_WRITE_TAO) if (s != NULL && o->write_type == BURN_WRITE_TAO) {
if (tno >= 1 && tno <= s->tracks) if (tno >= 1 && tno <= s->tracks) {
if (s->track[tno - 1]->isrc.has_isrc) { if (s->track[tno - 1]->isrc.has_isrc) {
isrc = &(s->track[tno - 1]->isrc); isrc = &(s->track[tno - 1]->isrc);
isrc_text[0] = isrc->country[0]; 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, (unsigned int) isrc->year,
isrc->serial); 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) { if (isrc_text[0] != 0 && d->mdata->write_page_length >= 46) {
pd[32] = 0x80; /* TCVAL */ pd[32] = 0x80; /* TCVAL */
memcpy(pd + 33, isrc_text, 12); memcpy(pd + 33, isrc_text, 12);