Silenced error condition about -sao with stdin and -isosize
This commit is contained in:
parent
cc5560fc86
commit
962f68b1d6
@ -952,11 +952,12 @@ int Cdrtrack_get_track_type(struct CdrtracK *o, int *track_type,
|
|||||||
bit1= size returns fixed_size, padding returns tao_to_sao_tsize
|
bit1= size returns fixed_size, padding returns tao_to_sao_tsize
|
||||||
*/
|
*/
|
||||||
int Cdrtrack_get_size(struct CdrtracK *track, double *size, double *padding,
|
int Cdrtrack_get_size(struct CdrtracK *track, double *size, double *padding,
|
||||||
double *sector_size, int flag)
|
double *sector_size, int *use_data_image_size, int flag)
|
||||||
{
|
{
|
||||||
|
|
||||||
*size= track->fixed_size;
|
*size= track->fixed_size;
|
||||||
*padding= track->padding;
|
*padding= track->padding;
|
||||||
|
*use_data_image_size= track->use_data_image_size;
|
||||||
#ifdef Cdrskin_allow_libburn_taO
|
#ifdef Cdrskin_allow_libburn_taO
|
||||||
if((flag&1) && track->libburn_track!=NULL) {
|
if((flag&1) && track->libburn_track!=NULL) {
|
||||||
off_t readcounter= 0,writecounter= 0;
|
off_t readcounter= 0,writecounter= 0;
|
||||||
@ -1354,19 +1355,21 @@ int Cdrtrack_activate_tao_tsize(struct CdrtracK *track, int flag)
|
|||||||
|
|
||||||
#endif /* ! Cdrskin_libburn_write_mode_ruleS */
|
#endif /* ! Cdrskin_libburn_write_mode_ruleS */
|
||||||
|
|
||||||
|
/* @param flag bit0=use *size_used and not the detected data image size
|
||||||
|
*/
|
||||||
int Cdrtrack_activate_image_size(struct CdrtracK *track, double *size_used,
|
int Cdrtrack_activate_image_size(struct CdrtracK *track, double *size_used,
|
||||||
int flag)
|
int flag)
|
||||||
{
|
{
|
||||||
*size_used= track->data_image_size;
|
if(!(flag&1))
|
||||||
|
*size_used= track->data_image_size;
|
||||||
if(track->use_data_image_size==0)
|
if(track->use_data_image_size==0)
|
||||||
return(2);
|
return(2);
|
||||||
if(track->data_image_size<=0)
|
if(*size_used<=0)
|
||||||
return(0);
|
return(0);
|
||||||
track->fixed_size= track->data_image_size;
|
track->fixed_size= *size_used;
|
||||||
if(track->libburn_track!=NULL) {
|
if(track->libburn_track!=NULL) {
|
||||||
#ifdef Cdrskin_libburn_has_track_set_sizE
|
#ifdef Cdrskin_libburn_has_track_set_sizE
|
||||||
burn_track_set_size(track->libburn_track, (off_t) track->data_image_size);
|
burn_track_set_size(track->libburn_track, (off_t) *size_used);
|
||||||
#else
|
#else
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"cdrskin: SORRY : libburn version is too old for -isosize\n");
|
"cdrskin: SORRY : libburn version is too old for -isosize\n");
|
||||||
@ -4264,7 +4267,7 @@ int Cdrskin_burn_pacifier(struct CdrskiN *skin,
|
|||||||
double elapsed_time,elapsed_total_time,current_time;
|
double elapsed_time,elapsed_total_time,current_time;
|
||||||
double estim_time,estim_minutes,estim_seconds,percent;
|
double estim_time,estim_minutes,estim_seconds,percent;
|
||||||
int ret,fifo_percent,fill,space,advance_interval=0,new_mb,old_mb,time_to_tell;
|
int ret,fifo_percent,fill,space,advance_interval=0,new_mb,old_mb,time_to_tell;
|
||||||
int fs,bs,old_track_idx,buffer_fill,formatting= 0;
|
int fs,bs,old_track_idx,buffer_fill,formatting= 0,use_data_image_size;
|
||||||
char fifo_text[80],mb_text[40];
|
char fifo_text[80],mb_text[40];
|
||||||
char *debug_mark= ""; /* use this to prepend a marker text for experiments */
|
char *debug_mark= ""; /* use this to prepend a marker text for experiments */
|
||||||
|
|
||||||
@ -4348,7 +4351,7 @@ int Cdrskin_burn_pacifier(struct CdrskiN *skin,
|
|||||||
|
|
||||||
if(old_track_idx>=0 && old_track_idx<skin->supposed_track_idx) {
|
if(old_track_idx>=0 && old_track_idx<skin->supposed_track_idx) {
|
||||||
Cdrtrack_get_size(skin->tracklist[old_track_idx],&fixed_size,&padding,
|
Cdrtrack_get_size(skin->tracklist[old_track_idx],&fixed_size,&padding,
|
||||||
§or_size,1);
|
§or_size,&use_data_image_size,1);
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
if(skin->verbosity>=Cdrskin_verbose_progresS)
|
||||||
printf("\n");
|
printf("\n");
|
||||||
printf("%sTrack %-2.2d: Total bytes read/written: %.f/%.f (%.f sectors).\n",
|
printf("%sTrack %-2.2d: Total bytes read/written: %.f/%.f (%.f sectors).\n",
|
||||||
@ -4360,7 +4363,7 @@ int Cdrskin_burn_pacifier(struct CdrskiN *skin,
|
|||||||
if(skin->supposed_track_idx>=0 &&
|
if(skin->supposed_track_idx>=0 &&
|
||||||
skin->supposed_track_idx<skin->track_counter)
|
skin->supposed_track_idx<skin->track_counter)
|
||||||
Cdrtrack_get_size(skin->tracklist[skin->supposed_track_idx],&fixed_size,
|
Cdrtrack_get_size(skin->tracklist[skin->supposed_track_idx],&fixed_size,
|
||||||
&padding,§or_size,0);
|
&padding,§or_size,&use_data_image_size,0);
|
||||||
|
|
||||||
bytes_to_write= ((double) p->sectors)*sector_size;
|
bytes_to_write= ((double) p->sectors)*sector_size;
|
||||||
written_total_bytes= ((double) p->sector)*sector_size;
|
written_total_bytes= ((double) p->sector)*sector_size;
|
||||||
@ -4633,6 +4636,7 @@ int Cdrskin_activate_write_mode(struct CdrskiN *skin, enum burn_disc_status s,
|
|||||||
int ok, was_still_default= 0, block_type_demand,track_type,sector_size, i;
|
int ok, was_still_default= 0, block_type_demand,track_type,sector_size, i;
|
||||||
int profile_number= -1, track_type_1= 0, mixed_mode= 0, unpredicted_size= 0;
|
int profile_number= -1, track_type_1= 0, mixed_mode= 0, unpredicted_size= 0;
|
||||||
int might_do_tao= 0, might_do_sao= 1, allows_multi= 1, ret, current_is_cd= 1;
|
int might_do_tao= 0, might_do_sao= 1, allows_multi= 1, ret, current_is_cd= 1;
|
||||||
|
int use_data_image_size;
|
||||||
struct burn_drive_info *drive_info = NULL;
|
struct burn_drive_info *drive_info = NULL;
|
||||||
char profile_name[80];
|
char profile_name[80];
|
||||||
double fixed_size= 0.0, tao_to_sao_tsize= 0.0, dummy;
|
double fixed_size= 0.0, tao_to_sao_tsize= 0.0, dummy;
|
||||||
@ -4675,7 +4679,7 @@ int Cdrskin_activate_write_mode(struct CdrskiN *skin, enum burn_disc_status s,
|
|||||||
else if(track_type_1!=track_type)
|
else if(track_type_1!=track_type)
|
||||||
mixed_mode= 1;
|
mixed_mode= 1;
|
||||||
Cdrtrack_get_size(skin->tracklist[i],&fixed_size,
|
Cdrtrack_get_size(skin->tracklist[i],&fixed_size,
|
||||||
&tao_to_sao_tsize,&dummy,2);
|
&tao_to_sao_tsize,&dummy,&use_data_image_size,2);
|
||||||
|
|
||||||
/* <<< until CD-SAO does fill-up: filluped last CD track length undefined */
|
/* <<< until CD-SAO does fill-up: filluped last CD track length undefined */
|
||||||
if(fixed_size<=0 &&
|
if(fixed_size<=0 &&
|
||||||
@ -4853,13 +4857,14 @@ it_is_done:;
|
|||||||
|
|
||||||
int Cdrskin_announce_tracks(struct CdrskiN *skin, int flag)
|
int Cdrskin_announce_tracks(struct CdrskiN *skin, int flag)
|
||||||
{
|
{
|
||||||
int i,mb;
|
int i,mb,use_data_image_size;
|
||||||
double size,padding,sector_size= 2048.0;
|
double size,padding,sector_size= 2048.0;
|
||||||
double sectors;
|
double sectors;
|
||||||
|
|
||||||
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
if(skin->verbosity>=Cdrskin_verbose_progresS) {
|
||||||
for(i=0;i<skin->track_counter;i++) {
|
for(i=0;i<skin->track_counter;i++) {
|
||||||
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,0);
|
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,
|
||||||
|
&use_data_image_size,0);
|
||||||
if(size<=0) {
|
if(size<=0) {
|
||||||
printf("Track %-2.2d: %s unknown length",
|
printf("Track %-2.2d: %s unknown length",
|
||||||
i+1,(sector_size==2048?"data ":"audio"));
|
i+1,(sector_size==2048?"data ":"audio"));
|
||||||
@ -4924,6 +4929,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,fifo_percent,total_min_fill,min_buffer_fill= 101;
|
int fifo_disabled= 0,fifo_percent,total_min_fill,min_buffer_fill= 101;
|
||||||
|
int use_data_image_size, needs_early_fifo_fill= 0;
|
||||||
double put_counter,get_counter,empty_counter,full_counter;
|
double put_counter,get_counter,empty_counter,full_counter;
|
||||||
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;
|
||||||
@ -4992,11 +4998,15 @@ burn_failed:;
|
|||||||
fprintf(stderr,"cdrskin: FATAL : cannot add track %d to session.\n",i+1);
|
fprintf(stderr,"cdrskin: FATAL : cannot add track %d to session.\n",i+1);
|
||||||
goto burn_failed;
|
goto burn_failed;
|
||||||
}
|
}
|
||||||
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,0);
|
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,
|
||||||
|
&use_data_image_size,0);
|
||||||
if(size>0)
|
if(size>0)
|
||||||
skin->fixed_size+= size+padding;
|
skin->fixed_size+= size+padding;
|
||||||
else
|
else {
|
||||||
skin->has_open_ended_track= 1;
|
skin->has_open_ended_track= 1;
|
||||||
|
if(use_data_image_size)
|
||||||
|
needs_early_fifo_fill= 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef Cdrskin_libburn_write_mode_ruleS
|
#ifndef Cdrskin_libburn_write_mode_ruleS
|
||||||
@ -5012,6 +5022,38 @@ burn_failed:;
|
|||||||
#endif /* ! Cdrskin_allow_sao_for_appendablE */
|
#endif /* ! Cdrskin_allow_sao_for_appendablE */
|
||||||
}
|
}
|
||||||
#endif /* ! Cdrskin_libburn_write_mode_ruleS */
|
#endif /* ! Cdrskin_libburn_write_mode_ruleS */
|
||||||
|
|
||||||
|
/* Final decision on track size has to be made after eventual -isosize
|
||||||
|
determination via fifo content.
|
||||||
|
*/
|
||||||
|
if(needs_early_fifo_fill && !skin->tell_media_space) {
|
||||||
|
ret= Cdrskin_fill_fifo(skin,0);
|
||||||
|
if(ret<=0)
|
||||||
|
goto fifo_filling_failed;
|
||||||
|
}
|
||||||
|
skin->fixed_size= 0.0;
|
||||||
|
skin->has_open_ended_track= 0;
|
||||||
|
for(i=0;i<skin->track_counter;i++) {
|
||||||
|
size= 1024*1024; /* a dummy size in case of skin->tell_media_space */
|
||||||
|
ret= Cdrtrack_activate_image_size(skin->tracklist[i],&size,
|
||||||
|
!!skin->tell_media_space);
|
||||||
|
if(ret<=0) {
|
||||||
|
fprintf(stderr,
|
||||||
|
"cdrskin: FATAL : cannot determine -isosize of track source\n");
|
||||||
|
{ret= 0; goto ex;}
|
||||||
|
}
|
||||||
|
if(size>0.0 && skin->verbosity>=Cdrskin_verbose_debuG)
|
||||||
|
ClN(fprintf(stderr,
|
||||||
|
"cdrskin: DEBUG: track %2.2d : %s %.fs (= %.fb)\n",
|
||||||
|
i+1,(ret==1?"activated -isosize":"ignored image size"),
|
||||||
|
size/2048.0,size));
|
||||||
|
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,
|
||||||
|
&use_data_image_size,0);
|
||||||
|
if(size>0)
|
||||||
|
skin->fixed_size+= size+padding;
|
||||||
|
else
|
||||||
|
skin->has_open_ended_track= 1;
|
||||||
|
}
|
||||||
|
|
||||||
o= burn_write_opts_new(drive);
|
o= burn_write_opts_new(drive);
|
||||||
burn_write_opts_set_perform_opc(o, 0);
|
burn_write_opts_set_perform_opc(o, 0);
|
||||||
@ -5086,39 +5128,18 @@ burn_failed:;
|
|||||||
|
|
||||||
#ifndef Cdrskin_extra_leaN
|
#ifndef Cdrskin_extra_leaN
|
||||||
Cdrskin_wait_before_action(skin,0);
|
Cdrskin_wait_before_action(skin,0);
|
||||||
ret= Cdrskin_fill_fifo(skin,0);
|
if(needs_early_fifo_fill)
|
||||||
|
ret= 1;
|
||||||
|
else
|
||||||
|
ret= Cdrskin_fill_fifo(skin,0);
|
||||||
if(ret<=0) {
|
if(ret<=0) {
|
||||||
|
fifo_filling_failed:;
|
||||||
fprintf(stderr,"cdrskin: FATAL : filling of fifo failed\n");
|
fprintf(stderr,"cdrskin: FATAL : filling of fifo failed\n");
|
||||||
goto ex;
|
goto ex;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* ! Cdrskin_extra_leaN */
|
#endif /* ! Cdrskin_extra_leaN */
|
||||||
|
|
||||||
/* Final decision on track size has to be made after eventual -isosize
|
|
||||||
determination via fifo content. This makes best sense if the automated
|
|
||||||
write mode decision is done afterwards in libburn, not before in cdrskin.
|
|
||||||
*/
|
|
||||||
skin->fixed_size= 0.0;
|
|
||||||
skin->has_open_ended_track= 0;
|
|
||||||
for(i=0;i<skin->track_counter;i++) {
|
|
||||||
ret= Cdrtrack_activate_image_size(skin->tracklist[i],&size,0);
|
|
||||||
if(ret<=0) {
|
|
||||||
fprintf(stderr,
|
|
||||||
"cdrskin: FATAL : cannot determine -isosize of track source\n");
|
|
||||||
{ret= 0; goto ex;}
|
|
||||||
}
|
|
||||||
if(size>0.0 && skin->verbosity>=Cdrskin_verbose_debuG)
|
|
||||||
ClN(fprintf(stderr,
|
|
||||||
"cdrskin: DEBUG: track %2.2d : %s %.fs (= %.fb)\n",
|
|
||||||
i+1,(ret==1?"activated -isosize":"ignored image size"),
|
|
||||||
size/2048.0,size));
|
|
||||||
Cdrtrack_get_size(skin->tracklist[i],&size,&padding,§or_size,0);
|
|
||||||
if(size>0)
|
|
||||||
skin->fixed_size+= size+padding;
|
|
||||||
else
|
|
||||||
skin->has_open_ended_track= 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
Cdrskin_adjust_speed(skin,0);
|
Cdrskin_adjust_speed(skin,0);
|
||||||
|
|
||||||
#ifndef Cdrskin_extra_leaN
|
#ifndef Cdrskin_extra_leaN
|
||||||
@ -5219,7 +5240,8 @@ burn_failed:;
|
|||||||
printf("Track 01: Total bytes read/written: %.f/%.f (%.f sectors).\n",
|
printf("Track 01: Total bytes read/written: %.f/%.f (%.f sectors).\n",
|
||||||
total_count,total_count,total_count/sector_size);
|
total_count,total_count,total_count/sector_size);
|
||||||
} else {
|
} else {
|
||||||
Cdrtrack_get_size(skin->tracklist[max_track],&size,&padding,§or_size,1);
|
Cdrtrack_get_size(skin->tracklist[max_track],&size,&padding,§or_size,
|
||||||
|
&use_data_image_size,1);
|
||||||
printf(
|
printf(
|
||||||
"Track %-2.2d: Total bytes read/written: %.f/%.f (%.f sectors).\n",
|
"Track %-2.2d: Total bytes read/written: %.f/%.f (%.f sectors).\n",
|
||||||
max_track+1,size,size+padding,(size+padding)/sector_size);
|
max_track+1,size,size+padding,(size+padding)/sector_size);
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2007.03.28.100934"
|
#define Cdrskin_timestamP "2007.03.28.111739"
|
||||||
|
Loading…
Reference in New Issue
Block a user