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

From: Paul Davis <paul@email-addr-hidden>
Date: Tue Mar 14 2006 - 01:37:41 EET

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.
Received on Tue Mar 14 04:15:13 2006

This archive was generated by hypermail 2.1.8 : Tue Mar 14 2006 - 04:15:13 EET