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
unix@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/unix

Reply via email to