Refusing to burn CD-TEXT if non-audio tracks are present

This commit is contained in:
Thomas Schmitt 2011-12-15 10:43:07 +00:00
parent f6489eae73
commit 9b231e94b0
3 changed files with 13 additions and 4 deletions

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps .\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1) .\" other parameters are allowed: see man(7), man(1)
.TH CDRSKIN 1 "Dec 14, 2011" .TH CDRSKIN 1 "Dec 15, 2011"
.\" Please adjust this date whenever revising the manpage. .\" Please adjust this date whenever revising the manpage.
.\" .\"
.\" Some roff macros, for reference: .\" Some roff macros, for reference:
@ -763,7 +763,7 @@ Mode -tao is not usable for minimally blanked DVD-RW and for DVD-R DL.
.BI textfile= path .BI textfile= path
Read CD-TEXT packs from the file depicted by path and put them into the Read CD-TEXT packs from the file depicted by path and put them into the
Lead-in of the emerging session. This session has to be done by Session At Once Lead-in of the emerging session. This session has to be done by Session At Once
(SAO) mode and should contain audio tracks. (SAO) mode and may only contain audio tracks.
.br .br
path must lead to a regular file, which consists of an optional header of four path must lead to a regular file, which consists of an optional header of four
bytes and one or more text packs of 18 bytes each. Suitable would be the bytes and one or more text packs of 18 bytes each. Suitable would be the
@ -1122,6 +1122,7 @@ possible values for Text Code, Language Code, Genre Code, Text Data Copy
Protection. Protection.
.br .br
This option will get into effect only if no option textfile= is given. This option will get into effect only if no option textfile= is given.
The write mode must be SAO on CD. All tracks must be -audio tracks.
.TP .TP
.BI \--list_formats .BI \--list_formats
List the available format descriptors as reported by the drive for the List the available format descriptors as reported by the drive for the

View File

@ -6942,7 +6942,7 @@ int Cdrskin_burn(struct CdrskiN *skin, int flag)
struct burn_drive *drive; struct burn_drive *drive;
int ret,loop_counter= 0,max_track= -1,i,hflag,nwa,num, wrote_well= 2; int ret,loop_counter= 0,max_track= -1,i,hflag,nwa,num, wrote_well= 2;
int fifo_disabled= 0, min_buffer_fill= 101; int fifo_disabled= 0, min_buffer_fill= 101;
int use_data_image_size, needs_early_fifo_fill= 0,iso_size= -1; int use_data_image_size, needs_early_fifo_fill= 0,iso_size= -1, non_audio= 0;
double start_time,last_time; double start_time,last_time;
double total_count= 0.0,last_count= 0.0,size,padding,sector_size= 2048.0; double total_count= 0.0,last_count= 0.0,size,padding,sector_size= 2048.0;
char *doing; char *doing;
@ -7010,12 +7010,16 @@ burn_failed:;
skin->fixed_size+= size+padding; skin->fixed_size+= size+padding;
else else
skin->has_open_ended_track= 1; skin->has_open_ended_track= 1;
non_audio= (skin->tracklist[i]->track_type != BURN_AUDIO);
} }
if(skin->sheet_v07t_blocks > 0) { if(skin->sheet_v07t_blocks > 0) {
if(skin->num_text_packs > 0) { if(skin->num_text_packs > 0) {
fprintf(stderr, fprintf(stderr,
"cdrskin: WARNING : Option textfile= overrides option input_sheet_v07t=\n"); "cdrskin: WARNING : Option textfile= overrides option input_sheet_v07t=\n");
} else if(non_audio) {
fprintf(stderr, "cdrskin: SORRY : Option input_sheet_v07t= works only if all tracks are -audio\n");
goto burn_failed;
} else { } else {
for(i= 0; i < skin->sheet_v07t_blocks; i++) { for(i= 0; i < skin->sheet_v07t_blocks; i++) {
ret= Cdrskin_read_input_sheet_v07t(skin, skin->sheet_v07t_paths[i], i, ret= Cdrskin_read_input_sheet_v07t(skin, skin->sheet_v07t_paths[i], i,
@ -7137,6 +7141,10 @@ burn_failed:;
} }
burn_write_opts_set_underrun_proof(o,skin->burnfree); burn_write_opts_set_underrun_proof(o,skin->burnfree);
if(skin->num_text_packs > 0) { if(skin->num_text_packs > 0) {
if(non_audio) {
fprintf(stderr, "cdrskin: SORRY : Option textfile= works only if all tracks are -audio\n");
goto burn_failed;
}
if(!!skin->force_is_set) if(!!skin->force_is_set)
text_flag= 1; /* No CRC verification or repairing */ text_flag= 1; /* No CRC verification or repairing */
ret= burn_write_opts_set_leadin_text(o, skin->text_packs, ret= burn_write_opts_set_leadin_text(o, skin->text_packs,

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2011.12.14.132551" #define Cdrskin_timestamP "2011.12.15.104259"