Как вы обнаруживаете до / после разрыва, чтобы вычислить точную длину дорожки на CD-ROM? - PullRequest
3 голосов
/ 22 марта 2020

Используя IOCTL_CDROM_READ_TOC_EX, наивный способ вычислить точную длину дорожки на CD-ROM состоит в том, чтобы предположить, что звуковые дорожки имеют предварительный промежуток 2 секунды, а дорожка данных, за которой следует другой тип дорожки, имеет сообщение -пропуск 2 секунды.

Но, к сожалению, это не всегда так, например, многосессионные диски.

Поэтому я придумал следующее, чтобы вычислить точную длину для каждой дорожки:

  • читать назад начало дорожки
  • выдать команду READ CD для чтения Q подканала
  • , пока INDEX для текущего TNO равно нулю, мы фактически находимся в зоне после | разрыва

Это работает, как и ожидалось, и мы можем определить промежутки для вычисления точной длины дорожки в секторах.

Однако немного удивительно, что эта топи c не описана в спецификациях мультимедийных команд SCSI!

Вопрос:

Это правильный подход для вычисления точной длины каждый трек на CD-ROM?

...