[sane-devel] [PATCH] Swap bytes in 16-bit PNGs, because PNG is big-endian.

Olaf Meeuwissen paddy-hack at member.fsf.org
Thu Apr 27 12:51:31 UTC 2017

Hi Aaron,

Thanks for the patch but it is incorrect on big-endian architectures.
>From 3.2.1 Image Transmission in the SANE API specification:

  Conceptually, each frame is transmitted a byte at a time.  Each byte
  may contain 8 sample values (for an image bit depth of 1), one full
  sample value (for an image bit depth of 8), or a partial sample value
  (for an image bit depth of 16 or bigger).  In the latter case, the
  bytes of each sample value are transmitted in the machine’s native
  byte order.

Your patch should only be activated on little-endian machines, not on
big-endian ones.  I've fixed that up in a follow-up commit and pushed
both to Alioth.

BTW, your v2 and v3 patches were the same (for all I could see) so I
ignored those ;-)
Olaf Meeuwissen, LPIC-2            FSF Associate Member since 2004-01-27
 GnuPG key: F84A2DD9/B3C0 2F47 EA19 64F4 9F13  F43E B8A4 A88A F84A 2DD9
 Support Free Software                        https://my.fsf.org/donate
 Join the Free Software Foundation              https://my.fsf.org/join

More information about the sane-devel mailing list