Bug fix: Formatting of BD-RE used certification regardless of drive capabilities

This commit is contained in:
Thomas Schmitt 2013-04-01 12:19:14 +00:00
parent d6e15a0139
commit 1f92419cb4
3 changed files with 23 additions and 5 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2013.04.01.121637" #define Cdrskin_timestamP "2013.04.01.121851"

View File

@ -597,6 +597,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
0x0002019b (SORRY,HIGH) = CD track number exceeds range of 1 to 99 0x0002019b (SORRY,HIGH) = CD track number exceeds range of 1 to 99
0x0002019c (SORRY,HIGH) = Session has no defined tracks 0x0002019c (SORRY,HIGH) = Session has no defined tracks
0x0002019d (SORRY,HIGH) = Audio read size not properly aligned 0x0002019d (SORRY,HIGH) = Audio read size not properly aligned
0x0002019e (NOTE,HIGH) = Drive does not support media certification
libdax_audioxtr: libdax_audioxtr:

View File

@ -3957,10 +3957,22 @@ no_suitable_formatting_type:;
goto no_suitable_formatting_type; goto no_suitable_formatting_type;
format_type = d->format_descriptors[index].type; format_type = d->format_descriptors[index].type;
if (format_type == 0x30 || format_type == 0x31) { if (format_type == 0x30 || format_type == 0x31) {
if (flag & 64) if ((flag & 64) || !(d->current_feat23h_byte4 & 3)) {
format_sub_type = 3; /* Quick certification */ format_sub_type = 0;
else if (!(flag & 64))
format_sub_type = 2; /* Full certification */ libdax_msgs_submit(libdax_messenger,
d->global_index, 0x0002019e,
LIBDAX_MSGS_SEV_NOTE,
LIBDAX_MSGS_PRIO_HIGH,
"Drive does not support media certification",
0, 0);
} else {
/* With Certification */
if (d->current_feat23h_byte4 & 1)
format_sub_type = 2; /* Full */
else
format_sub_type = 3; /* Quick */
}
} }
#ifdef Libburn_bd_re_format_olD #ifdef Libburn_bd_re_format_olD
@ -4057,6 +4069,11 @@ unsuitable_media:;
} }
#endif /* Libburn_do_not_format_dvd_ram_or_bd_rE */ #endif /* Libburn_do_not_format_dvd_ram_or_bd_rE */
/* <<<
fprintf(stderr, "\nlibburn_DEBUG: FORMAT UNIT temporarily disabled.\n");
ret = 1; goto ex;
*/
d->issue_command(d, c); d->issue_command(d, c);
if (c->error && !tolerate_failure) { if (c->error && !tolerate_failure) {
spc_decode_sense(c->sense, 0, &key, &asc, &ascq); spc_decode_sense(c->sense, 0, &key, &asc, &ascq);