whipper-team / whipper

Python CD-DA ripper preferring accuracy over speed
GNU General Public License v3.0
1.11k stars 88 forks source link

Read/Verify cycle is inefficient and should be improved #579

Open eharris opened 1 year ago

eharris commented 1 year ago

The read/verify cycle of whipper is pretty inefficient and I think it could be dramatically improved. Instead of re-reading and re-verifying the track if there is a mismatch, it should instead just reuse the previous verify pass as the source of the read pass on the next try instead of starting from scratch with a fresh read. The chances of a verification match success would be just as likely, but the number of extraction reads would be only half as much, and would allow for more retries without increasing the extraction time.

Azlinon commented 3 months ago

The existing validation logic could definitely use some optimizations. The proposed change seems like a good stop-gap measure to improve things a little bit, but maybe not the end goal.

I wrote out a whole response, but then realized https://github.com/whipper-team/whipper/issues/266 had this one nailed.

MerlijnWajer commented 3 months ago

Yes, this is indeed something that whipper would benefit from. I've made changes to the old morituri at the time to do exactly this, and you could even consider not running in full paranoia mode first, but rather just in the fast mode (flag is -Y iirc). This will drastically speed up rips if you're doing many of them.