Made effect of macro Libburn_pioneer_dvr_216d_read_buf_caP unconditional

This commit is contained in:
Thomas Schmitt 2009-12-05 14:22:28 +00:00
parent 203976a6db
commit 1f73d8fb3d
3 changed files with 15 additions and 23 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2009.12.05.111822" #define Cdrskin_timestamP "2009.12.05.142309"

View File

@ -1581,9 +1581,11 @@ void burn_drive_cancel(struct burn_drive *drive);
/* ts A61223 */ /* ts A61223 */
/** Inquire whether the most recent write run was successful. Reasons for /** Inquire whether the most recent asynchronous media job was successful.
non-success may be: rejection of burn parameters, abort during fatal errors This applies to burn_disc_erase(), burn_disc_format(), burn_disc_write().
during write, a call to burn_drive_cancel() by the application thread. Reasons for non-success may be: rejection of burn parameters, abort due to
fatal errors during write, blank or format, a call to burn_drive_cancel()
by the application thread.
@param d The drive to inquire. @param d The drive to inquire.
@return 1=burn seems to have went well, 0=burn failed @return 1=burn seems to have went well, 0=burn failed
@since 0.2.6 @since 0.2.6
@ -2905,25 +2907,19 @@ BURN_END_DECLS
#endif #endif
/* This solves a problem with Pioneer DVR-216D. /* ts A91205 */
Writing of sequential DVD-R[W] happens unnaturally fast and leaves no /* The following experiments may be interesting in future:
impact on the media. The drive stalls at the end of the burn run. Only a
power cycle makes it usable again.
Apparent reason:
One may not read the buffer capacity more than once before it is full
and physical burning begun. Strangely this happens only with libburn and
cdrecord-2.01.01a64 -v which both write DVD-R in 32 KB chunks. With
wodim's 62 KB chunks there is no endless drive business.
*/ */
#define Libburn_pioneer_dvr_216d_read_buf_caP 1
/* The following experiments did not solve the problem with Pioneer DVR-216D
but may nevertheless be interesting in future:
/* Perform OPC explicitely.
# define Libburn_pioneer_dvr_216d_with_opC 1 # define Libburn_pioneer_dvr_216d_with_opC 1
*/
/* Load mode page 5 and modify it rather than composing from scratch.
# define Libburn_pioneer_dvr_216d_load_mode5 1 # define Libburn_pioneer_dvr_216d_load_mode5 1
*/
/* Inquire drive events and react by reading configuration or starting unit.
# define Libburn_pioneer_dvr_216d_get_evenT 1 # define Libburn_pioneer_dvr_216d_get_evenT 1
*/ */

View File

@ -1395,15 +1395,11 @@ int burn_dvd_write_track(struct burn_write_opts *o,
ret = burn_disc_open_track_dvd_minus_r(o, s, tnum); ret = burn_disc_open_track_dvd_minus_r(o, s, tnum);
if (ret <= 0) if (ret <= 0)
goto ex; goto ex;
#ifdef Libburn_pioneer_dvr_216d_read_buf_caP
/* Pioneer DVR-216D rev 1.09 hates multiple buffer inquiries /* Pioneer DVR-216D rev 1.09 hates multiple buffer inquiries
before the drive buffer is full. before the drive buffer is full.
*/ */
first_buf_cap = 0; first_buf_cap = 0;
further_cap = -1; further_cap = -1;
#endif
} else if (d->current_profile == 0x1b || d->current_profile == 0x2b) { } else if (d->current_profile == 0x1b || d->current_profile == 0x2b) {
/* DVD+R , DVD+R/DL */ /* DVD+R , DVD+R/DL */
ret = burn_disc_open_track_dvd_plus_r(o, s, tnum); ret = burn_disc_open_track_dvd_plus_r(o, s, tnum);