[linux-audio-user] Re: [linux-audio-dev] [ANN] netjack-0.9rc1

Paul Davis paul at linuxaudiosystems.com
Mon Mar 13 23:37:41 UTC 2006


On Tue, 2006-03-14 at 00:21 +0100, fons adriaensen wrote:
> On Mon, Mar 13, 2006 at 11:59:15PM +0100, stefan kersten wrote:
> 
> > as paul stated, network byte order is defined to be
> > big-endian, so yes, you have to convert 32 bit floats (and
> > doubles, for that matter) on intel, because they are stored
> > lsb first. of course it would be perfectly valid for netjack
> > to use little endian `on the wire'; but this would be like
> > putting my powerbook in little endian mode when playing a
> > wav file. sort of.
> 
> OK, but for floats the situation could be more complex. On Intel,
> the exponent/sign byte is the last one. Is it always the first
> one on BE platforms ? If it isn't then using ntohl() or htonl()
> wich are designed to work on 32-bit ints will not help. 
> 
> For doubles, things are even more fuzzy. Can you just use ntohl()
> and htonl() on both halves, or do these two have to be swapped as
> well ? Will either rule produce consistent results on all
> platforms ?

i don't believe that "network order" is defined for floats, but one
could reasonably assume it was the same big-endian ordering. however,
since the IEEE spec crosses 8 bit boundaries (IIRC), simply using *to* 
isn't going to work. i think this applies also to doubles.

ntohf and htonf would be required, i think.





More information about the Linux-audio-dev mailing list