[Libburn] Condensed list of problems with libburn

scdbackup at gmx.net scdbackup at gmx.net
Mon Dec 12 12:28:43 PST 2005


Hi,

as announced: my condensed problem list which emerged from
the development of cdrskin.

Sorted by personally-felt-pain priority.

The problems still occur with libburn from CVS as of Dec 8, 2005
(as well as with libburn-0.2.tar.gz).


-----------------------------------------------------------------------------
If a drive device file (here /dev/sg0) offers r-permission
but not w-permission then the call  burn_drive_scan()  hangs
quite forever. The CPU load goes up to 100 %.
Ctrl+C is necessary.

So this is an evil user trap:
  crw-rw-r--    1 root     disk      21,   0 Sep 23  2003 /dev/sg0

There might be valid sysadmin reasons for such a setting.
Then it prevents the use of any other drive, too.


-----------------------------------------------------------------------------
I found no means for an application to determine the version
of libburn at compile time and at run time.

If there aren't any yet, i propose macros
  #define BURN_LIBRARY_VERSION "0.2"
  #define BURN_SNAPSHOT_DATE "2005.12.08.203854"

and a function
  void burn_version_strings(char library_version[80],
                            char snapshot_date[80])


-----------------------------------------------------------------------------
The following call does not eject my HL-DT-ST DVDRAM GSA-4082B
(Linux 2.4.21-215-athlon, ide-scsi) :

  burn_drive_release(drive, 1);

Maybe noteworthy, some superuser commands:
  # ls -l /dev/sg0
  crw-rw-rw-    1 root     disk      21,   0 Sep 23  2003 /dev/sg0
  # eject /dev/sg0 
  eject: unable to eject, last error: Operation not permitted
Whereas eject succeeds on
  # ls -l /dev/sr0
  brw-rw----    1 thomas   floppy    11,   0 Sep 23  2003 /dev/sr0


-----------------------------------------------------------------------------
The following call does not set speed to 4x.
  k_speed= 4*150;
  burn_drive_set_speed(drive,k_speed,k_speed);

My LG can burn CD-RW 10x, i used 4x-12x CD-RW media which burn 
10x with cdrecord.
With libburn they burn at 8x.
On my older PC (Intel PIII) with kernels 2.4.4 or 2.6.14 libburn
achieves 12x on a LITE-ON LTR48125S.
But again, no chance to influence speed.
 

-----------------------------------------------------------------------------
RIP-14.5 (kernel 2.6.14) only: 
The following call sequence returns false status information about the media
if the tray was out and gets loaded by burn_drive_grab():
  burn_drive_grab(drive, 1);
  ...
  ret= burn_disc_erasable(drive);

This sequence returns a correct reply:
  burn_drive_grab(drive, 1);
  burn_drive_release(drive,0);
  burn_drive_grab(drive, 1);
  ...
  ret= burn_disc_erasable(drive);

RIP-14 is a rescue system: 
  http://www.tux.org/pub/people/kent-robotti/looplinux/rip

See also below, differing speed info on first and second query after load.
(The speed thing happens on 2.4.21 too.)


-----------------------------------------------------------------------------
The following call does not cause padding to be appended
  int padding= 52428800;
  burn_track_define_data(tr,0,padding,1,BURN_MODE1);

Actually parameter "tail" is ignored in  burn_track_define_data() .


-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
There are two groups of messages printed by libburn
regardless of verbosity level :

ignored nwa: 0

ctladr|trno|indx|form|scms|  msf
------+----+----+----+----+--------
 4  1 | 00 | 00 | 01 | 00 |00:00:00
 4  1 | 01 | 00 | 10 | 00 |00:00:00
 4  1 | 01 | 01 | 10 | 00 |00:02:00
 4  1 | AA | 01 | 01 | 00 |11:08:00

There should be a way to disable them.


-----------------------------------------------------------------------------
The following call returns confusing values with 4x and 4x-12x CD-RW
  ret= burn_drive_get_write_speed(drive);
  printf("  burn_drive_get_write_speed = %d\n",ret);

yields directly after loading the
  burn_drive_get_write_speed = 4234
and on second try
  burn_drive_get_write_speed = 1764

With kernel 2.6.14 and LITE-ON burner :
  8448 resp. 2112

No difference between 4x and 12x media.


-----------------------------------------------------------------------------
I feel itched by the fact that source data size is type int and
not off_t or double.


-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Verbosity level 1 is quite unusable because it
reports many times and very fast
  logical unit is in the process of becoming ready


-----------------------------------------------------------------------------
The following does not prevent actual burning on my LG GSA-4082B:
  burn_write_opts_set_simulate(o, 1);


-----------------------------------------------------------------------------


Have a nice day :)

Thomas



More information about the libburn mailing list