[alsa-devel] Suspecting a bug in plugin_ops.h

Clemens Ladisch clemens at ladisch.de
Thu May 26 16:53:00 CEST 2011


Soulard, MathieuX wrote:
> static inline u_int32_t sx24s(u_int32_t x)
> {
>         if(x&0x00008000)
>                 return x|0x000000FF;
>         return x&0xFFFFFF00;
> }
> 
> I think that 0x00008000 should be replaced by 0x00000800.

This function is indented to sign-extended a 24-bit value to 32 bits,
operating in 'wrong' endianness.

Why do you think that the sign bit is in the highest bit of the second-
highest nibble?


Regards,
Clemens


More information about the Alsa-devel mailing list