> You're right. The .wav headers require to lseek(2) within the file > which doesn't work on a pipes. It could work on certain files which > headers are placed in a way lseek(2) doesn't need to move the file > pointer.
> You could try to modify aucat to skip the lseek(2) calls if it > wouldn't change the file pointer. Possibly call read(2) and discard > few bytes when the file pointer moves forward by few bytes only (iirc > .wav needs data to be aligned). Forgive me if I'm dense, but I'm a better artist than I am a programmer. I'm trying to follow you though. I understand why you cannot seek in a pipe, but I do not understand why that affects playback of a MS Wav file through a pipe. Aren't the headers kept in the front, and my understanding is maybe you can grab enough bytes to check if a header is present. I thought wav is just a raw sample with a small header. I'd think a quick check for header wouldn't upset playback for raw samples without one.