Browse Source

Bug fix: cdrskin multi-track burning was slow and stalled after track 1. Regression introduced in version 1.5.0 by commit 84fad99, 2018.02.05

master
Thomas Schmitt 8 months ago
parent
commit
91f7d4d34a
4 changed files with 28 additions and 5 deletions
  1. +14
    -1
      cdrskin/cdrfifo.c
  2. +1
    -1
      cdrskin/cdrskin_timestamp.h
  3. +4
    -3
      configure.ac
  4. +9
    -0
      libburn/sg-linux.c

+ 14
- 1
cdrskin/cdrfifo.c View File

@@ -28,7 +28,20 @@
#ifndef Cdrfifo_standalonE
/* for burn_os_alloc_buffer() */
#include "../libburn/libburn.h"
#define Libburn_has_open_trac_srC 1

/* ts B91124:
DISABLED, because this spoils multi-track burning by slowing down first
track and stalling before the second track begins. Obviously a problem
with chained input and waiting for full O_DRIECT suitable read chunks.
DO NOT ENABLE before the wait code in this source file is fixed.
That long, ./configure option --enable-track-src-odirect must not
get into effect in libburn. NO -DLibburn_read_o_direcT either.

For extra safety, O_DIRECT has been banned in libburn/sg-linux.c too.

# def ine Libburn_has_open_trac_srC 1
*/

#endif

#include "cdrfifo.h"


+ 1
- 1
cdrskin/cdrskin_timestamp.h View File

@@ -1 +1 @@
#define Cdrskin_timestamP "2019.10.28.155736"
#define Cdrskin_timestamP "2019.11.25.091234"

+ 4
- 3
configure.ac View File

@@ -218,11 +218,12 @@ CFLAGS="$STATVFS_DEF $CFLAGS"

dnl ts A91122
AC_ARG_ENABLE(track-src-odirect,
[ --enable-track-src-odirect Enable use of O_DIRECT with track input, default=no],
[ --enable-track-src-odirect Banned for now: (Enable use of O_DIRECT with track input, default=no)],
, enable_track_src_odirect=no)
if test x$enable_track_src_odirect = xyes; then
LIBBURN_O_DIRECT_DEF="-DLibburn_read_o_direcT"
echo "enabled use of O_DIRECT with track input"
# LIBBURN_O_DIRECT_DEF="-DLibburn_read_o_direcT"
# echo "enabled use of O_DIRECT with track input"
echo "REFUSED to enable use of O_DIRECT with track input because of cdrskin multi-track bug"
else
LIBBURN_O_DIRECT_DEF=
echo "disabled use of O_DIRECT with track input"


+ 9
- 0
libburn/sg-linux.c View File

@@ -111,6 +111,15 @@ Hint: You should also look into sg-freebsd-port.c, which is a younger and

/** PORTING : ------- OS dependent headers and definitions ------ */

#ifdef Libburn_read_o_direcT
/* ts B91124:
DISABLED, because this spoils multi-track burning of cdrskin by a hard to
fix bug in cdrskin/cdrfifo.c
DO NOT ENABLE before the wait code in that source file is fixed.
*/
#undef Libburn_read_o_direcT
#endif


#ifdef Libburn_read_o_direcT
# ifndef _GNU_SOURCE


Loading…
Cancel
Save