libcdio-help
[Top][All Lists]
Advanced

[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


      



reply via email to

[Prev in Thread] Current Thread [Next in Thread]