Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drive constantly revs up and down while reading CD data #33

Open
dweymouth opened this issue Jun 5, 2022 · 2 comments
Open

Drive constantly revs up and down while reading CD data #33

dweymouth opened this issue Jun 5, 2022 · 2 comments

Comments

@dweymouth
Copy link

dweymouth commented Jun 5, 2022

I'm working on a CD player program using libcdio-paranoia to read CD data and stream it to the sound card. I'm running into an issue where, for some discs only, the drive will continually oscillate between revving the disc to high speeds and spinning down, rather than spinning at a consistently low-ish speed. My drive reports that it does support setting its speed, but calls to cdio_cddap_speed_set return error code -405. I've tried adding a small sleep to my read thread (vs. reading as fast as possible until my buffer is full, then backing down) to even out the timing of the calls to cdio_paranoia_read_limited which also doesn't solve the issue. I've also tried setting retries to 0, so that reads will always be sequential.

Does anyone have insights into how to ensure the drive will run at a more constant speed?

@rocky
Copy link
Collaborator

rocky commented Jun 6, 2022

Might be related to #23

@dweymouth
Copy link
Author

You may be correct. Here's the output of cd-paranoia -A for this drive (LG GP65NB60):

`cd-paranoia -A
cdparanoia III release 10.2 libcdio 2.1.0 x86_64-apple-darwin20.1.0
(C) 2001 Monty [email protected] and Xiphophorus
(C) 2004, 2005, 2008 Rocky Bernstein [email protected]
(C) 2014 Robert Kausch [email protected]

Report bugs to [email protected]

Using cdda library version: 10.2+2.0.0 x86_64-apple-darwin20.1.0
Using paranoia library version: 10.2+2.0.0 x86_64-apple-darwin20.1.0
++ WARN: search for kIOCDMediaClass/kIODVDMediaClass/kIOBDMediaClass came up empty
++ WARN: search for kIOCDMediaClass/kIODVDMediaClass/kIOBDMediaClass came up empty
Checking /dev/rdisk4 for cdrom...
Setting read block size at 8 sectors (18816 bytes).
Verifying drive can read CDDA...
Expected command set reads OK.

Attempting to determine drive endianness from data.......
Data appears to be coming back Little Endian.
certainty: 100%

Attempting to set cdrom to full speed...
405: Option not supported by drive
CDROM speed set FAILED. Continuing anyway...

=================== Checking drive cache/timing behavior ===================

Seek/read timing:
[53:13.50]: 50ms seek, 0.60ms/sec read [22.3x]
[50:00.00]: 36ms seek, 0.62ms/sec read [21.4x]
[40:00.00]: 28ms seek, 0.63ms/sec read [21.3x]
[30:00.00]: 63ms seek, 0.75ms/sec read [17.8x]
[20:00.00]: 45ms seek, 0.87ms/sec read [15.4x]
[10:00.00]: 44ms seek, 1.00ms/sec read [13.3x]
[00:00.00]: 54ms seek, 1.25ms/sec read [10.6x]

Analyzing cache behavior...
Slow verify for approximate cache size... 18 sectors405: Option not supported by drive
........Approximate random access cache size: 18 sector(s)
405: Option not supported by drive
Drive cache tests as contiguous
Drive readahead past read cursor: 219 sector(s)
Cache tail cursor tied to read cursor
Cache tail granularity: 0 sector(s)
Cache read speed: 0.45ms/sector [29x]
Access speed after backseek: 0.41ms/sector [32x]
WARNING: Read timing after backseek faster than expected!
It's possible/likely that this drive is not
flushing the readahead cache on backward seeks!

WARNING! PARANOIA MAY NOT BE TRUSTWORTHY WITH THIS DRIVE!

The Paranoia library may not model this CDROM drive's cache
correctly according to this analysis run. Analysis is not
always accurate (it can be fooled by machine load or random
kernel latencies), but if a failed result happens more often
than one time in twenty on an unloaded machine, please mail
the cdparanoia.log file produced by this failed analysis to
[email protected] to assist developers in extending
Paranoia to handle this CDROM properly.
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants