Took into respect deliberate lack of DVD-R/DL multi session capability

This commit is contained in:
Thomas Schmitt 2007-02-25 11:26:20 +00:00
parent f263443858
commit 0c4cfdd359
5 changed files with 29 additions and 13 deletions

View File

@ -633,7 +633,7 @@ This option is only needed for revoking eventual --ignore_signals or
.BI \--allow_untested_media .BI \--allow_untested_media
Enable the use of media profiles which have been implemented but not yet Enable the use of media profiles which have been implemented but not yet
tested. Currently this applies to : profile 0015h , DVD-R/DL Sequential tested. Currently this applies to : profile 0015h , DVD-R/DL Sequential
(will probably ignore -multi). (will not allow -multi).
.br .br
If you really test such media, then please report the outcome on If you really test such media, then please report the outcome on
libburn-hackers@pykix.org libburn-hackers@pykix.org

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2007.02.23.193427" #define Cdrskin_timestamP "2007.02.25.112733"

View File

@ -32,6 +32,9 @@
/* ts A70219 : for burn_disc_get_write_mode_demands() */ /* ts A70219 : for burn_disc_get_write_mode_demands() */
#include "options.h" #include "options.h"
/* A70225 : to learn about eventual Libburn_dvd_r_dl_multi_no_close_sessioN */
#include "write.h"
#include "libdax_msgs.h" #include "libdax_msgs.h"
extern struct libdax_msgs *libdax_messenger; extern struct libdax_msgs *libdax_messenger;
@ -1649,7 +1652,11 @@ int burn_disc_get_multi_caps(struct burn_drive *d, enum burn_write_types wt,
o->advised_write_mode = BURN_WRITE_SAO; o->advised_write_mode = BURN_WRITE_SAO;
} }
if (d->current_has_feat21h) { if (d->current_has_feat21h) {
o->multi_session = o->multi_track = 1; #ifndef Libburn_dvd_r_dl_multi_no_close_sessioN
if (d->current_profile != 0x15)
#endif
o->multi_session = 1;
o->multi_track = 1;
o->might_do_tao = 2; o->might_do_tao = 2;
o->advised_write_mode = BURN_WRITE_TAO; o->advised_write_mode = BURN_WRITE_TAO;
} }
@ -1687,6 +1694,13 @@ int burn_disc_get_multi_caps(struct burn_drive *d, enum burn_write_types wt,
o->might_do_sao = 4; o->might_do_sao = 4;
o->might_do_tao = 2; o->might_do_tao = 2;
o->advised_write_mode = BURN_WRITE_TAO; o->advised_write_mode = BURN_WRITE_TAO;
} else if (d->current_profile == 0x1b || d->current_profile == 0x2b) {
/* DVD+R , DVD+R/DL */
o->multi_session = 1;
o->multi_track = 1;
o->might_do_tao = 2;
o->might_do_sao = 1;
o->advised_write_mode = BURN_WRITE_TAO;
} else /* unknown media */ } else /* unknown media */
return 0; return 0;

View File

@ -6,16 +6,6 @@
/* ts A61009 */ /* ts A61009 */
/* #include <a ssert.h> */ /* #include <a ssert.h> */
/* mmc5r03c.pdf 6.3.3.3.3: DVD-R DL: Close Function 010b: Close Session
"When the recording mode is Incremental Recording,
the disc is single session."
Enable this macro to get away from growisofs which uses Close Session
but also states "// DVD-R DL Seq has no notion of multi-session".
#define Libburn_dvd_r_dl_multi_no_close_sessioN 1
*/
/* ts A61106 : Deliberate defect provocation macros /* ts A61106 : Deliberate defect provocation macros
DO NOT DEFINE THESE IF YOU WANT SUCCESSFUL TAO ! DO NOT DEFINE THESE IF YOU WANT SUCCESSFUL TAO !

View File

@ -33,4 +33,16 @@ int burn_write_close_track(struct burn_write_opts *o, struct burn_session *s,
int tnum); int tnum);
int burn_write_close_session(struct burn_write_opts *o,struct burn_session *s); int burn_write_close_session(struct burn_write_opts *o,struct burn_session *s);
/* mmc5r03c.pdf 6.3.3.3.3: DVD-R DL: Close Function 010b: Close Session
"When the recording mode is Incremental Recording,
the disc is single session."
Enable this macro to get away from growisofs which uses Close Session
but also states "// DVD-R DL Seq has no notion of multi-session".
#define Libburn_dvd_r_dl_multi_no_close_sessioN 1
*/
#endif /* BURN__WRITE_H */ #endif /* BURN__WRITE_H */