ok, i made some progress...

cdparanoia uses "LBA" mode in the ioctl to read cd Table Of Contents.

other code uses "MSF" (minutes, seconds, frames) mode instead.

using *both* modes shows the familiar 150 frame difference (M:S.F -> total vs LBA):

1. 0:02.33 -> 183 vs 33; delta = -150 [format: 2, datamode: 0] 2. 2:39.23 -> 11948 vs 11798; delta = -150 [format: 2, datamode: 0] 3. 3:56.35 -> 17735 vs 17585; delta = -150 [format: 2, datamode: 0] 4. 6:13.68 -> 28043 vs 27893; delta = -150 [format: 2, datamode: 0] 5. 8:57.53 -> 40328 vs 40178; delta = -150 [format: 2, datamode: 0] 6. 10:17.13 -> 46288 vs 46138; delta = -150 [format: 2, datamode: 0] 7. 11:22.55 -> 51205 vs 51055; delta = -150 [format: 2, datamode: 0] 8. 13:05.10 -> 58885 vs 58735; delta = -150 [format: 2, datamode: 0] 9. 14:17.03 -> 64278 vs 64128; delta = -150 [format: 2, datamode: 0] 10. 15:29.38 -> 69713 vs 69563; delta = -150 [format: 2, datamode: 0] 11. 17:52.58 -> 80458 vs 80308; delta = -150 [format: 2, datamode: 0] 12. 18:58.50 -> 85400 vs 85250; delta = -150 [format: 2, datamode: 0] 13. 20:22.58 -> 91708 vs 91558; delta = -150 [format: 2, datamode: 0] 14. 22:10.05 -> 99755 vs 99605; delta = -150 [format: 2, datamode: 0] 15. 25:07.65 -> 113090 vs 112940; delta = -150 [format: 2, datamode: 0] 16. 26:27.55 -> 119080 vs 118930; delta = -150 [format: 2, datamode: 0] 17. 28:35.25 -> 128650 vs 128500; delta = -150 [format: 2, datamode: 0] 18. 31:46.08 -> 142958 vs 142808; delta = -150 [format: 2, datamode: 0] 19. 33:02.48 -> 148698 vs 148548; delta = -150 [format: 2, datamode: 0] 20. 33:58.05 -> 152855 vs 152705; delta = -150 [format: 2, datamode: 0] 21. 34:47.68 -> 156593 vs 156443; delta = -150 [format: 2, datamode: 0] 22. 36:02.48 -> 162198 vs 162048; delta = -150 [format: 2, datamode: 0] 23. 39:00.55 -> 175555 vs 175405; delta = -150 [format: 2, datamode: 0] 24. 39:54.43 -> 179593 vs 179443; delta = -150 [format: 2, datamode: 0] 25. 41:09.45 -> 185220 vs 185070; delta = -150 [format: 2, datamode: 0] 26. 42:54.33 -> 193083 vs 192933; delta = -150 [format: 2, datamode: 0] 27. 50:15.10 -> 226135 vs 225985; delta = -150 [format: 2, datamode: 0] 28. 51:34.03 -> 232053 vs 231903; delta = -150 [format: 2, datamode: 0] 29. 52:56.63 -> 238263 vs 238113; delta = -150 [format: 2, datamode: 0] 30. 54:19.70 -> 244495 vs 244345; delta = -150 [format: 2, datamode: 0] 31. 56:55.55 -> 256180 vs 256030; delta = -150 [format: 2, datamode: 0] 32. 59:05.15 -> 265890 vs 265740; delta = -150 [format: 2, datamode: 0] 170. 61:39.73 -> 277498 vs 4794173; delta = 4516675 [format: 2, datamode: 0]

uh, except for the lead-out track; i dont know what's up with that.