[flac-dev] Undefined behaviour
lvqcl
lvqcl.mail at gmail.com
Sat Aug 29 09:03:57 PDT 2015
Erik de Castro Lopo wrote:
> Yes, but the code in FLAC__fixed_restore_signal() is (ignoring identifier
> name differences) identical to FLAC__fixed_compute_residual(),
My point was: I think that almost anyone uses x86 CPUs to *en*code to FLAC,
but *de*coding is performed on various devices with various processors. So it
would be nice to test decoding performance on various CPU architectures.
(But I doubt that in reality it matters much: FLAC__lpc_restore_signal
performs noticeably heavier calculations to get sample values)
-----
And about shifts: maybe it also makes sense to use casts in
FLAC__bitreader_read_raw_int32 ? Something like this:
if(!FLAC__bitreader_read_raw_uint32(br, (FLAC__uint32*)val, bits))
return false;
/* sign-extend: */
*val = (FLAC__uint32)*val << (32-bits);
*val >>= (32-bits);
More information about the flac-dev
mailing list