Fix 32-bit arm int issue.
For (some?) 32-bit arm platforms, int32_t is actually of type long int,
not int. We have a couple places where we assume extracting a bit
pattern from a float is type int, when we should use int32_t
instead. The discrepancy in types causes some packet functions to
fail.
I'm not sure how prevalent this issue is, but these changes at least fix it for #2412 (closed).
Fixes #2412 (closed).