[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libcdio-help] Best function to read audio CD
From: |
Bastiaan Timmer |
Subject: |
[Libcdio-help] Best function to read audio CD |
Date: |
Thu, 24 Feb 2011 04:16:48 -0800 (PST) |
Hi! I am thinking about writing a simple cd-ripping application which checks
ripping results against the AccurateRip database. The code for checking the AR
database is already finished, and now I am just trying to find out what my
options are for the CD-extraction, and how hard it is going to be.
Now I've ripped a CD with several different programs: Exact Audio Copy (under
windows), cdparanoia (from xiph), cd-read (from libcdio), cued (with and
without the -p switch for paranoia) and the 'paranoia.c' example from libcdio
(slightly adjusted to rip the entire disc and dump to file). After ripping I
adjusted some of the files, where the program didn't take option for it, to
adjust for my drive read-offset (24 bytes) and prepend a wave header.
When checking the resulting rips, the results of EAC, cdparanoia, cued without
paranoia and cd-read are exactly the same (md5 hashed) and reported 100%
accurate by the AR db. The rips from cued with paranoia and the paranoia.c
example are also identical, but fail the AR check on a couple tracks with
identical 'bad' CRCs. All of these rips are completely reproducible by the five
programs.
Now, seeing as cued (-p) and the example program both use cdio_paranoia_read()
to read the disc, while the others do not, can it be said that
cdio_read_sector() is a better read function? I thought the paranoia functions
were supposed to be more likely to give error free rips. What is actually the
difference between cdio_read_sector() and cdio_paranoia_read(), and why and how
would one choose between them? And are there more read functions to consider?
How does xiph's paranoia compare to libcdio various read functions?
On an unrelated note, I think I found an insignificant mistake in the cd-read.c
source. At line 437 it says "end LSN (%lu) needs to be less than start LSN",
which I think should say bigger/greater than. Obviously, it does not affect
program execution.
Thanks,
Bas Timmer
- [Libcdio-help] Best function to read audio CD,
Bastiaan Timmer <=