Avoiding stream recording on BD if not 64 kB buffer

This commit is contained in:
Thomas Schmitt 2010-01-04 13:49:05 +00:00
parent 56a0af28a5
commit 085077db95
3 changed files with 18 additions and 1 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2010.01.01.124415" #define Cdrskin_timestamP "2010.01.04.134949"

View File

@ -553,6 +553,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
0x00020173 (FAILURE,HIGH) = Drive tells NWA smaller than last written address 0x00020173 (FAILURE,HIGH) = Drive tells NWA smaller than last written address
0x00020174 (SORRY,HIGH) = Fifo alignment does not allow desired read size 0x00020174 (SORRY,HIGH) = Fifo alignment does not allow desired read size
0x00020175 (FATAL,HIGH) = Supporting library is too old 0x00020175 (FATAL,HIGH) = Supporting library is too old
0x00020176 (NOTE,HIGH) = Stream recording disabled because of small OS buffer
libdax_audioxtr: libdax_audioxtr:

View File

@ -1923,6 +1923,10 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
} }
/* ??? padding needed ??? cowardly doing it for now */ /* ??? padding needed ??? cowardly doing it for now */
o->obs_pad = 1; /* fill-up track's last 32k buffer */ o->obs_pad = 1; /* fill-up track's last 32k buffer */
if (d->do_stream_recording) {
if (d->current_profile == 0x41) /* BD-R */
o->obs = Libburn_bd_re_streamed_obS;
}
} }
#ifdef Libburn_dvd_obs_default_64K #ifdef Libburn_dvd_obs_default_64K
@ -1949,6 +1953,18 @@ int burn_dvd_write_sync(struct burn_write_opts *o,
o->obs = 32 * 1024; /* This size is required to work */ o->obs = 32 * 1024; /* This size is required to work */
} }
if (d->do_stream_recording &&
(d->current_profile == 0x43 || d->current_profile == 0x41) &&
o->obs < Libburn_bd_re_streamed_obS) {
/* LG GGW-H20 writes junk with stream recording and obs=32k */
sprintf(msg,
"Stream recording disabled because of small OS buffer");
libdax_msgs_submit(libdax_messenger, d->global_index,
0x00020176, LIBDAX_MSGS_SEV_NOTE,
LIBDAX_MSGS_PRIO_HIGH, msg, 0, 0);
d->do_stream_recording = 0;
}
sprintf(msg, "dvd/bd Profile= %2.2Xh , obs= %d , obs_pad= %d", sprintf(msg, "dvd/bd Profile= %2.2Xh , obs= %d , obs_pad= %d",
d->current_profile, o->obs, o->obs_pad); d->current_profile, o->obs, o->obs_pad);
libdax_msgs_submit(libdax_messenger, d->global_index, 0x00000002, libdax_msgs_submit(libdax_messenger, d->global_index, 0x00000002,