> > I am progress of doing the same for dagrab (expect a follow-up to PR
> > 57227 soon).
> 
> There is no need for extra-patches.
> #ifdef CDIOCREADAUDIO seems to be sufficient enough.

The version in GNATs is obsoleted, but my update did not make it there,
although it appeared in freebsd-ports-bugs@ (I used the follow-up
email-link in the GNATs web interface).

I will prepare and test a version that used pread() like yours this night.
It will be here then:

http://home.leo.org/~barner/freebsd/dagrab-pread.patch

> Is using CDRIOCSETBLOCKSIZE necessary as well?
> If yes it shouold be done in enable_cdda callback I think.

I don't now. I don't know how to interpret Soren's comments in

  http://freebsd.rambler.ru/bsdmail/freebsd-current_2003/msg15989.html

regarding our situation:

  > The right way of doing audio graps has been to set the wanted
  > blocksize with CDRIOCSETBLOCKSIZE (not needed if all tracks on
  > the CD is of the same size), then just read from the device.
  > Ioctl's was newer meant to be used to read/write data, its also
  > faster to use the R/W path...

Can we assue that all tracks on an audio CD are of the same (block)
size? What about those mixed-mode CDs (sorry, I don't know the
specifications).

> Moreover, is there a reason we should use CDIOCREADAUDIO on RELENG_4?
> Please test attached patch. works for me on RELENG_4 and should work
> on -CURRENT as well.

Yep, it works fine for me on 4.9-STABLE and 5.1-CURRENT (and complies
with Soren's posting).

I think the best solution would be to patch all applications to use this
approach. The only question is whether we need CDRIOCSETBLOCKSIZE.

Simon

Attachment: signature.asc
Description: Digital signature

Reply via email to