From f81990c70394804d9b9f77d309033cc431fb58c0 Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 13 Apr 2012 20:26:35 +0000 Subject: [PATCH] Compile time option for obs_pad --- cdrskin/cdrskin.1 | 6 ++++-- cdrskin/cdrskin_timestamp.h | 2 +- configure.ac | 13 +++++++++++++ libburn/libburn.h | 2 ++ libburn/options.c | 6 ++++++ 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/cdrskin/cdrskin.1 b/cdrskin/cdrskin.1 index c4a20b2..2d4a401 100644 --- a/cdrskin/cdrskin.1 +++ b/cdrskin/cdrskin.1 @@ -1484,8 +1484,10 @@ stdio: pseudo-drive up to the full size of an output chunk. This padding has to be applied automatically to the other DVD and BD media types, where it causes e.g. ISO images to have trailing unclaimed blocks. .br -There are reports that DAO sessions of a size that is not a multiple of 16 -blocks abort on some Linux kernels and/or DVD drives. +Use this option if there is the suspicion that DAO sessions abort with +your kernel and/or DVD drive, if their size is not a multiple of 16 blocks. +.br +This option may also get enabled at compile time of libburn. .TP .BI \--old_pseudo_scsi_adr Linux specific: diff --git a/cdrskin/cdrskin_timestamp.h b/cdrskin/cdrskin_timestamp.h index 66d09d0..266c5ed 100644 --- a/cdrskin/cdrskin_timestamp.h +++ b/cdrskin/cdrskin_timestamp.h @@ -1 +1 @@ -#define Cdrskin_timestamP "2012.04.13.112832" +#define Cdrskin_timestamP "2012.04.13.202654" diff --git a/configure.ac b/configure.ac index 0281917..da964e7 100644 --- a/configure.ac +++ b/configure.ac @@ -228,6 +228,19 @@ else fi CFLAGS="$LIBBURN_DVD_OBS_64K $CFLAGS" +dnl ts B20413 +AC_ARG_ENABLE(dvd-obs-pad, +[ --enable-dvd-obs-pad pad DVD DAO sessions to 32 resp. 64 KB, default=no], + , enable_dvd_obs_pad=no) +if test x$enable_dvd_obs_pad = xyes; then + LIBBURN_DVD_OBS_PAD="-DLibburn_dvd_always_obs_paD" + echo "enabled padding of DVD DAO sessions to 32 resp. 64 KB" +else + LIBBURN_DVD_OBS_64K= + echo "disabled padding of DVD DAO sessions to 32 resp. 64 KB" +fi +CFLAGS="$LIBBURN_DVD_OBS_PAD $CFLAGS" + dnl ts A91218 AC_ARG_ENABLE(libcdio, [ --enable-libcdio Enable EXPERIMENTAL use of libcdio as system adapter, default=no], diff --git a/libburn/libburn.h b/libburn/libburn.h index 9ae18de..aec0eb6 100644 --- a/libburn/libburn.h +++ b/libburn/libburn.h @@ -3083,6 +3083,8 @@ void burn_write_opts_set_dvd_obs(struct burn_write_opts *opts, int obs); /* ts B20406 */ /** Overrides the automatic decision whether to pad up the last write chunk to its full size. This applies to DVD, BD and stdio: pseudo-drives. + Note: This override may get enabled fixely already at compile time by + defining macro Libburn_dvd_always_obs_paD . @param opts The write opts to change @param pad 1 means to pad up in any case, 0 means automatic decision. @since 1.2.4 diff --git a/libburn/options.c b/libburn/options.c index e4c8356..5919dc9 100644 --- a/libburn/options.c +++ b/libburn/options.c @@ -46,7 +46,13 @@ struct burn_write_opts *burn_write_opts_new(struct burn_drive *drive) opts->underrun_proof = drive->mdata->underrun_proof; opts->perform_opc = 1; opts->obs = -1; + +#ifdef Libburn_dvd_always_obs_paD + opts->obs_pad = 1; +#else opts->obs_pad = 0; +#endif + opts->start_byte = -1; opts->fill_up_media = 0; opts->force_is_set = 0;