You are not logged in.

Dear visitor, welcome to KDE-Forum.org. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Monday, October 10th 2005, 9:36pm

Paranoia level of audiocd ioslave

Hello,

has anyone figured out which settings the audiocd ioslave uses for cdparanoia? I try below -- it seems that it uses a quite paranoid setting -- but am I correct? If so, how does that relate to the complaint about kaudiocreator not using cdparanoia in a recent post? Still to investigate: Which error conditions are brought to the user's attention?

It seems that the default for the audiocd ioslave is to use its internal parameter "paranoiaLevel = 2", unless anything is set in the configuration file .kde/share/config/kcmaudiocdrc, or the option paranoia_level is specified in the URL; which then overrides the configuration setting.

Why are these things not documented? :rolleyes:

From audiocd.cpp:

Source code

1
2
3
4
5
6
7
8
9
10
d->paranoiaLevel = 1; // enable paranoia error correction, but allow skipping

if (config->readBoolEntry("disable_paranoia",false)) {
    d->paranoiaLevel = 0; // disable all paranoia error correction
}

if (config->readBoolEntry("never_skip",true)) {
    d->paranoiaLevel = 2;
      // never skip on errors of the medium, should be default for high quality
}


Setting #2 would be full paranoia, which is a good thing in my opinion. (Though the line concerning PARANOIA_MODE_OVERLAP below seems to be a no-op?).

Here is how the setting is applied:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int paranoiaLevel = PARANOIA_MODE_FULL ^ PARANOIA_MODE_NEVERSKIP;
switch (d->paranoiaLevel)
{
  case 0:
      paranoiaLevel = PARANOIA_MODE_DISABLE;
      break;
  case 1:
      paranoiaLevel |= PARANOIA_MODE_OVERLAP;
      paranoiaLevel &= ~PARANOIA_MODE_VERIFY;
      break;
  case 2:
      paranoiaLevel |= PARANOIA_MODE_NEVERSKIP;
  default:
      break;
}


And from cdda_paranoia.h:

Source code

1
2
3
4
5
6
7
8
9
#define PARANOIA_MODE_FULL        0xff
#define PARANOIA_MODE_DISABLE     0

#define PARANOIA_MODE_VERIFY      1
#define PARANOIA_MODE_FRAGMENT    2
#define PARANOIA_MODE_OVERLAP     4
#define PARANOIA_MODE_SCRATCH     8
#define PARANOIA_MODE_REPAIR      16
#define PARANOIA_MODE_NEVERSKIP   32