From 1f92419cb462430459264b26e53f38ded56337c3 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Mon, 1 Apr 2013 12:19:14 +0000 Subject: [PATCH] Bug fix: Formatting of BD-RE used certification regardless of drive capabilities --- cdrskin/cdrskin_timestamp.h | 2 +- libburn/libdax_msgs.h | 1 + libburn/mmc.c | 25 +++++++++++++++++++++---- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 0016a4f..1f1708e 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2013.04.01.121637" +#define Cdrskin_timestamP "2013.04.01.121851" diff --git a/libburn/libdax_msgs.h b/libburn/libdax_msgs.h index 25888ad..3de8b47 100644 --- a/libburn/libdax_msgs.h +++ b/libburn/libdax_msgs.h @@ -597,6 +597,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff 0x0002019b (SORRY,HIGH) = CD track number exceeds range of 1 to 99 0x0002019c (SORRY,HIGH) = Session has no defined tracks 0x0002019d (SORRY,HIGH) = Audio read size not properly aligned + 0x0002019e (NOTE,HIGH) = Drive does not support media certification libdax_audioxtr: diff --git a/libburn/mmc.c b/libburn/mmc.c index 8a371ba..e002c8c 100644 --- a/libburn/mmc.c +++ b/libburn/mmc.c @@ -3957,10 +3957,22 @@ no_suitable_formatting_type:; goto no_suitable_formatting_type; format_type = d->format_descriptors[index].type; if (format_type == 0x30 || format_type == 0x31) { - if (flag & 64) - format_sub_type = 3; /* Quick certification */ - else - format_sub_type = 2; /* Full certification */ + if ((flag & 64) || !(d->current_feat23h_byte4 & 3)) { + format_sub_type = 0; + if (!(flag & 64)) + 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 @@ -4057,6 +4069,11 @@ unsuitable_media:; } #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); if (c->error && !tolerate_failure) { spc_decode_sense(c->sense, 0, &key, &asc, &ascq);