[Live-devel] streaming WAV files...

Ross Finlayson finlayson at live.com
Mon Apr 12 03:07:07 PDT 2004


>1) Just a little confused by your explanation (I'm new to 
>networking...).  From your explanation, I gather network order is 
>big-endian.  You state that this conversion for a WAV file was *incorrect* 
>to do "...before streaming them".  Yet your last line on what the 
>*correct* procedure to do also says "... convert ... from little to 
>big-endian order prior to streaming."  Curious why there would be any 
>endian conversion at all, seeing as that should be the client's 
>responsibility before placing it in some audio buffer, no?

Matt,

Here's another explanation:
- When 16-bit PCM audio samples are streamed over the network (using RTP), 
they *must* be sent in big-endian order (see RFC 3551, section 4.5.11).
- However, within WAV audio files, the 16-bit PCM audio samples are stored 
in little-endian order.
Therefore, when streaming from WAV audio files (using RTP), the 16-bit PCM 
audio samples read from the file must always be byte-swapped before being 
sent via RTP.  (The mistake I was making before was doing the byte swapping 
only on little-endian computers - which was wrong.)

But, in any case, the bottom line is that WAV audio streaming should now 
work for you (even on a Mac).

>2) In setting up my development environment, I had to change all *.hh 
>files to *.h (since my IDE -- XCode -- doesn't let users define extension 
>mappings).

I'm surprised by this.  Noone else has ever reported any problems with 
building the code on MacOS (after doing "genMakefiles macos").  Are you 
sure that this is something that you *have* to do?

BTW, the reason for using ".hh" is to help distinguish C++ header files 
from C header files (for people who are browsing the code).

If the use of ".hh" file names turns out to be a major hassle, then I 
suppose I could change this (rename them all to "*.h"), but this is the 
first time I've heard of the ".hh" names causing a problem.




More information about the live-devel mailing list