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.
