[paranoia-dev] Extending paranoia for digital playback

Monty xiphmont at xiph.org
Sun Jan 16 23:58:05 PST 2000



> I'm working on the Linux/PPC kernel (more specifically on the PowerMac
> support). There is "feature" of the new powermacs (iBook, new iMacs and
> G4) which is that the CD/DVD player analog output is _not_ wired to the
> sound chip.
> 
> Basically, when playing CDs, MacOS now reads the audio datas via the
> ATAPI and routes them to the audio driver.
> 
> So we need to provide the same solution for Linux users. Basically, what
> we need is to route cdparanoia output to /dev/dsp. The problem with this
> approach and the current cdparanoia implementation is that it uses
> blocking writes to the output device. That means that cdparanoi reads a
> bunch of audio datas from the CD and is then blocked while outputing
> those datas to the audio driver. Obviously this doesn't work.

Cdparanoia is designed to be as simple as possible as the level of complexity
is already unacceptably high in many ways.  I'm surprised no one has forked it
yet given that I don't like implementing features or taking many user patches
;-)

Do you need the paranoia capabilities, or just the ability to get data off the
disk and to the sound hardware?  I'd expect Mac hardware to have pretty good
CDROM hardware that wouldn't have loss of streaming problems...

In any case, you can use the library interface directly to write a small
threaded utility (with or without paranoia) to get data and stuff it out to the
audio hardware concurrently.

> So my idea was to implement an option to cdparanoia that would spawn a
> separate thread for the output. The current output routines would still
> write to a memory buffer, and would block when the buffer is full,
> waiting for a semaphore controller by the output thread. The ouput thread
> on its side would write the content of the buffer to /dev/dsp and unblock
> the write thread if blocked one it have made some room in the buffer.
> 
> What do you think of this approach ? Does it look ok to you ? Should I
> make a separate tool using cdparanoia lib instead of adding an option to
> cdparanoi ? Is this already handled by the beta version ? (I tried only
> version III for now).

The cdparanoia mainline will never thread.  I much prefer the route of building
a new utility just using the libraries.

Monty

--- >8 ----
List archives:  http://www.xiph.org/archives/
Paranoia homepage: http://www.xiph.org/paranoia/
To unsubscribe from this list, send mail to 'paranoia-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Paranoia-dev mailing list