Skip to content

Specify max amount of retries per sector #30

@MerlijnWajer

Description

@MerlijnWajer

I wrote this mail to the cdparanoia-users list as a while ago:

https://marc.info/?l=cdparanoia&m=158566693027322&w=2


Hi,

I was wondering if anyone had any insight into limiting the amount of
re-reads and corrections cdparanoia will attempt to do for a single
sector (or at an even lower level). I find that for quite some CDs,
cdparanoia will try re-reading specific parts many, many times.

I've logged all the callbacks with --stderr-progress, mapped "cdframes"
to sectors to seconds of an audio CD, and for some parts, over 700000
correction() callbacks are issued for a single second (so 75 seconds).

Ripping a CD (in some cases) in it's entirety takes over 7 hours.
Ripping the same CD without any paranoia (-Z or -Y) will often finish
within minutes. Around the sectors that are problematic, the no-paranoid
mode will usually sound worse, and sometimes entire samples are gone.

So there is a clear advantage to using paranoia, but I can't help but
wonder if 7000000 reads and corrections are really required for a single
second of audio. Is there a way to set a cap on the amount of retries
for any given sector, so that I can attempt to strike a balance between
quality and time spent ripping? [1]

A sample breakdown of such a rip log looks like this [2] - 30 million
correction callbacks. Being able to impose an upper limit would likely
be helpful.

Regards,
Merlijn


[1] --never-skip=<number> doesn't seem to help here, since the drive is
not skipping, as far as I can tell.

[2] $ python breakdown.py ../5-legare-street-d3-t2/paranoid-1/log.txt
wrote 327631
finished 14
read 250191
verify 456005
jitter 101
correction 30109688
scratch 0
scratch repair 0
skip 160
drift 0
backoff 0
overlap 1526884
dropped 26
duped 29
transport error 0
cache error 0

Basically, I am interested in getting this in place for both libcdio-paranoia and cdparanoia.
Do you have any pointers / places to look?

Keep in mind that the above mail is written with cdparanoia in mind, not libcdio-cdparanoia, but I assume the same paranoia logic applies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions