Changed default write chunk size for BD to 64 KiB

This commit is contained in:
Thomas Schmitt 2013-08-04 10:03:21 +00:00
parent 78a888db0b
commit 5ee47c93af
4 changed files with 19 additions and 14 deletions

View File

@ -2,7 +2,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH CDRSKIN 1 "Version 1.3.1, Jul 08, 2013"
.TH CDRSKIN 1 "Version 1.3.1, Aug 04, 2013"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -1070,7 +1070,6 @@ media dependend transaction size. With DVD-RAM, BD-RE, DVD+RW this is 2k, with
overwriteable DVD-RW it is 32k.
.TP
.BI dvd_obs= default|32k|64k
Linux specific:
Set the number of bytes to be transmitted with each write operation to DVD
or BD media. With most write types, tracks get padded up to the next multiple
of this write size (see option --obs_pad).

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2013.07.29.091415"
#define Cdrskin_timestamP "2013.08.04.100247"

View File

@ -221,14 +221,14 @@ CFLAGS="$LIBBURN_O_DIRECT_DEF $CFLAGS"
dnl ts A91116
AC_ARG_ENABLE(dvd-obs-64k,
[ --enable-dvd-obs-64k 64 KB default size for DVD/BD writing, default=no],
[ --enable-dvd-obs-64k 64 KB default size for DVD writing, default=no],
, enable_dvd_obs_64k=no)
if test x$enable_dvd_obs_64k = xyes; then
LIBBURN_DVD_OBS_64K="-DLibburn_dvd_obs_default_64K"
echo "enabled write size default 64 KB on DVD and BD"
echo "enabled write size default 64 KB on DVD"
else
LIBBURN_DVD_OBS_64K=
echo "disabled write size default 64 KB on DVD and BD"
echo "disabled write size default 64 KB on DVD"
fi
CFLAGS="$LIBBURN_DVD_OBS_64K $CFLAGS"

View File

@ -76,11 +76,15 @@ extern struct libdax_msgs *libdax_messenger;
/* The size to be used with BD-RE media in normal, not streamed mode.
*/
#define Libburn_bd_re_obS (32 * 1024)
#define Libburn_bd_re_obS (64 * 1024)
/* The size to be used with BD-RE media in streamed mode.
/* The size to be used with BD-R media in normal, not streamed mode.
*/
#define Libburn_bd_re_streamed_obS (64 * 1024)
#define Libburn_bd_r_obS (64 * 1024)
/* The size to be used with BD-RE and BD-R media in streamed mode.
*/
#define Libburn_bd_streamed_obS (64 * 1024)
static int type_to_ctrl(int mode)
@ -2307,7 +2311,7 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
if (o->obs_pad < 2)
o->obs_pad = 1;
if (d->current_profile == 0x43) /* BD-RE */
o->obs = Libburn_bd_re_streamed_obS;
o->obs = Libburn_bd_streamed_obS;
}
} else if (d->current_profile == 0x13) {
@ -2385,10 +2389,12 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
}
/* ??? padding needed ??? cowardly doing it for now */
if (o->obs_pad < 2)
o->obs_pad = 1; /* fill-up track's last 32k buffer */
o->obs_pad = 1; /* fill-up track's last obs buffer */
if (d->current_profile == 0x41) /* BD-R */
o->obs = Libburn_bd_r_obS;
if (d->do_stream_recording) {
if (d->current_profile == 0x41) /* BD-R */
o->obs = Libburn_bd_re_streamed_obS;
o->obs = Libburn_bd_streamed_obS;
}
}
@ -2418,10 +2424,10 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
if (d->do_stream_recording &&
(d->current_profile == 0x43 || d->current_profile == 0x41) &&
o->obs < Libburn_bd_re_streamed_obS) {
o->obs < Libburn_bd_streamed_obS) {
/* LG GGW-H20 writes junk with stream recording and obs=32k */
sprintf(msg,
"Stream recording disabled because of small OS buffer");
"Stream recording disabled because of small output buffer");
libdax_msgs_submit(libdax_messenger, d->global_index,
0x00020176, LIBDAX_MSGS_SEV_NOTE,
LIBDAX_MSGS_PRIO_HIGH, msg, 0, 0);