>Mark, can you be more specific about
>the decoder interface you'd desire?
int decode_audio(int fd, unsigned char *buffer, int bytecount, offset_t offset, void **localdata);
The function reads from "fd", and returns "bytecount" bytes of decoded .wav style audio into "buffer". The "offset" parameter indicates the starting offset of the output .wav stream for this call to the function. This does NOT correspond to the offset of the actual file on disk.
The "localdata" parameter points to a NULL pointer on first call, and the decode_audio() function may then allocate memory as needed with kmalloc() and change the pointer to reference it.
On file closure, Hijack will kfree() the pointer if non-NULL.
Cheers