philippe_44 wrote:
> I've tried a fresh pCP 7.0 install (32 bits) and can confirm that no
> alac plays with 8.1.1 (Squeezelite hangs). I don't know what it is yet,
> its surely related to the alac decoder but I don't know how, meaning I
> use the same in my bridges and in squeezelite-esp32 with no problem.
Has this ALAC decoder been used in Arm architecture before ?
This may be a red herring but when decoding Flash on early Pi systems -
special precaution had to be taken for Arm's Mixed endian
Code:
--------------------
# Basic raw io encoding/decoding (based on Data::AMF::IO)
use constant ENDIAN => unpack('S', pack('C2', 0, 1)) == 1 ? 'BIG' : 'LITTLE';
# special case for ARM doubles which flip high and low 32 bits compared to
normal little endian
use constant ARM_MIXED => unpack("h*", pack ("d", 1)) eq "00000ff300000000"
? 1 : 0;
$log->debug("Endian: " . ENDIAN . ", ARM Mixed: " . ARM_MIXED);
sub encode_utf8 { encode_u16(bytes::length($_[0])) . $_[0] }
sub encode_number {
return swapWords(swapBytes(pack('d', $_[0]))) if ARM_MIXED;
return pack('d>', $_[0]) if $] >= 5.009002;
return pack('d', $_[0]) if ENDIAN eq 'BIG';
return swapBytes(pack('d', $_[0]));
}
sub decode_number {
return unpack('d', swapBytes(swapWords($_[0]))) if ARM_MIXED;
return unpack('d>', $_[0]) if $] >= 5.009002;
return unpack('d', $_[0]) if ENDIAN eq 'BIG';
return unpack('d', swapBytes($_[0]));
}
--------------------
------------------------------------------------------------------------
bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806
View this thread: http://forums.slimdevices.com/showthread.php?t=97046
_______________________________________________
unix mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/unix