alac_decoder-0.2.0-4.red80> K KtĉH2!c31^ Wgeasupport@red-soft.ru  WgUISߙ'#hޖT~ 2||; 1kDw5`+ǿm$/'x冊XRu36"{]5E5QA,& %卹ixF080:.nSꔾ[BB=1?!d  R $(1:> GS}     &Lh   ( 8 9 : G $H @I \X dY l\ ] ^ b ed e f l t (u Dv `w<xXytCalac_decoder0.2.04.red80A basic decoder for Apple Lossless Audio Codec filesLocated here is a basic decoder for Apple Lossless Audio Codec files (ALAC). ALAC is a proprietary lossless audio compression scheme. Apple never released any documents on the format. What I provide here is a C implementation of a decoder, written from reverse engineering the file format. It turns out that most of the algorithms in the codec are fairly well known. ALAC uses an adaptive FIR prediction algorithm and stores the error values using a modified rice or golumb algorithm. Further details are in alac.c. Although an encoder is not provided, by using the decoder as a sort of specification it should be fairly trivial to write an encoder. By exploiting other lossless audio encoders, such as FLAC, the task will be much easier. Although one wouldn't be able to copy the compression algorithms verbatim, as adaptive compression is used in ALAC and not in FLAC. There are, however, a bunch of academic papers on the issue. The program located here will not be able to handle all ALAC files, it can only handle mono or stereo files. ALAC allows up to 8 channels. It should be trivial to finish the implementation once I find files that I can test it with. The ALAC decoder supports both 16 and 24 bit sample sizes. The decoder is fairly self explanatory, it can read an ALAC stream from either a file or from stdin, and write it as raw PCM data or as a WAV file to either stdout or a file. In theory one should be able to stream data to the decoder.dNiTstapel80.red-soft.rutRED SOFTRED SOFTMITRED SOFTUnspecifiedhttp://craz.net/programs/itunes/alac.htmllinuxi686l)AAA큤dNiVdNiWdNiWdNiWdNiWdNiTJ"9e137fa40c4251ae9bdc906ddaa8979e8be6295e7a19e62b1fd62ec1c547ecc1c63336a6e71461b17b29bbbc9d1495b148337b717ff9bff4e615707d5a8110e3349abe36938e27f00cc24dc065fb99207e437c371066a4140f8157cb9915c36a../../../../usr/bin/alacrootrootrootrootrootrootrootrootrootrootrootrootrootrootalac_decoder-0.2.0-4.red80.src.rpmalac_decoderalac_decoder(x86-32)@@@@@@    @libc.so.6libc.so.6(GLIBC_2.0)libc.so.6(GLIBC_2.1)libc.so.6(GLIBC_2.3.4)libc.so.6(GLIBC_2.34)libc.so.6(GLIBC_2.4)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsZstd)rtld(GNU_HASH)3.0.4-14.6.0-14.0-15.4.18-14.18.0dNX@Aexandr Subbotin - 0.2.0-4- Build for red800.2.0-4.red800.2.0-4.red80alac.build-id87fe458937c519adf987d068c72fd68ad47dc1b5alac_decoderLICENSEREADME/usr/bin//usr/lib//usr/lib/.build-id//usr/lib/.build-id/87//usr/share/doc//usr/share/doc/alac_decoder/-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=i686 -mtune=generic -msse2 -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protectioncpiozstd19i686-redhat-linux-gnuELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, BuildID[sha1]=87fe458937c519adf987d068c72fd68ad47dc1b5, for GNU/Linux 3.2.0, strippeddirectoryASCII textRRRRRRR utf-886ebb56e6d994ed4573f35f1cfc89672e03aafd8cebe056ea5a084394f6b66340ee1d6a858ba137a64baff72e381b7cb84d054283a5d6864264e030d188d02e1?0(/h}:sPg5g]~/[_$G(+nrQAzv_,"2~)*3/XYG=3`*>{? y`6:Fd*?#rb1Ǝw_EnYޢ|+tv 9 ((MPNvC"^0t#R",]mb_51螒=eiXاX0Kfj҇N8`yyw]i(`{n4bTy%ŭf3S1R1]"I?L)fq'b&9:AF;rZZJ$9nGc+fIYF:\V{/"=:y;a%[5p+ f.@Ad'&)p2ä#1$(N(N=EWC8jѯd>~@F8Fv5$qC5J1R}_ǽ%1VV++SA=༎v!AGAڛeP!94֗Ggg6%.y0ޫ|pNa4'nW߸=qba:1gIFHАfc1_̔W=,:rk­Tl7U[ tWE2/pf#~-u낏%:=GC8^]>W4:6mͳ&1='cɍE\^7VޏB OAŀvw`{,o,9"U׌g ?h!RR;YVXRKM-/ +qbHۼ9_L,l_ \>ebG|Pj \\6=1 ?dcrrKyXLw:1` 2zo/z6^uwz?yO{D78PHVWTd1HiRX|/m8XCc nاt3K4غ?jاZ h_]N%QS$;:9~SWG|q兹njB8FP&A'm(Vje2Wc{8\.u`P?̀e4ya=$sG럢8D?{m}v xk~ ~0xZÜ'z͡o4nW#2iyu%ͪD*K6/lĆ5<0\6*bB$cxufI.W&s.nz dPd5 |C3ׂh?$_g#٫3 {s&׸>0xpmVsg2 ৉O#T:-o Zmynzk7C-/0mV"Modet0SߏG-jYsکO?zA@Lf_%94Q<;5Kތh;qGS.)XqyiG:a qD!]Н./ݏ(qGFq<ВBW(]aUY7\qh?HS'vJHr^/clv0=xk>z?xZ zA˨u=˷Fnuu`bgWߛKTJBЁ=g q *B#܋OG>>,/,[0yPaCpϭ fY7J{{۹!9xY7Կ4R=EYL 8O [y0(:!v#plp Ls/S:zFfGh? G`D^8!*  NxIU9v*"`Yab`iJ8rh [2{1t4"W_jLAtj<@#kJuRQ7r4XbyBE1O% &:}%'T=4>mګ/#H!!Q(+V+!ڽތ?lɢ#ՆH鉙d}ho'vdʉ;ؕ6&h_pbk~tGu4v?xid~4X3ҏFe@` GlS)Քb |W?j9=ahO~6 + @V  ;Gv, 3pZп2}yP袷#ky,JM$!*)TZJ `L¦#L* §◣(Tt-rMC!T/OaU MIaNTRT2&$aHȔ*qJO{# N)Lj6(IXb_,$͵Hk潇0QSGIT=[phOئ ٔB5GCGPJNɎ5QD, ǩ ~Bdx6 cgE/p4Cu4\9Lpxb彷ńPʄ==\VB~I]e31DV>eW:rU0`8-E{WZl-mi_x鬒ZczJXr5˾ZٷnvVz=)ZI] 4˾dԾvޛŵmka۫h|#6 +_T- tjtoM~Y-R56۬}S^Ծ.ګw n-iwVbxfM6jCQBϴh֫kWUJ ^[ݭw8ZxRrYҮ]دz/m#Sʨ?R\JTۆ4ˈwkWl" x^7k+)J^f{IHMʰRm}ېZnnxJqƵ<*=g:Vqsphs+U+f}zퟬ@,۫{۰Y[m oj+O-*¦޷[uUz-n+no{7njm・fޞ}?_@0%}*X1ف* IXC c uD qYVo>uGkROR3 #I⋶C7ma0R??[dl;nfCtq'vWk$Ы CڝaI]{EAT";D%dl-9)?^a,GY}?H'v޶ψPKgqStq8ؾUzmQK R&{xˊOY Yt|GRSQYA-Yڏq א^kNky3vV$Xmmmf7;񔥑} 9? đvƽZ^Zӯ׻y@ʠ SjlڽƬ,-)[ZRۍ@+n{IN+wu³ZH!͒@ Pr3JTJHjB*MM%sfBAEI-=JHA̦TI\?ONʦd&1ͨ&$dKPMeӞbF()d>R/BI鴕6i lRb>=NvԴQPI6ES ʉt>9)PN-PJ{)ʎRJQMP a/K()tR(t)i3]{@ro[+)JfmmvU`vk+A{ZW՗{Wx^_Ԋ_l '3D~muRqԖڸkki?ԮnmGڽm^ 1= Trj*J&R$Q dRQrJJRD)U)Q#uJ!QLNHՠZEJCDAC'PRhr@7"k\t e`cGE7xx5sdrM1>kѼ`c佳1DP6G g:@4I#B﫚=e uA4ry SԥK4IN Ku_8.5z ^]R-i+R7nkX.ReZ-ꯤ8SRKQׯ2jkVR5z=3WLFX~,;0i0{-mI ͗aA)*t1CKV%Jcc,XTae B (2,)U`߰kɝ̖m}^ "pؕo,|a;$7Ә1%7s?d(.HNL 1Ae(7`)I)pMʫk!*^(bAB4E0@f|""C@ MDY`VJ6@B'6 Vd5 \] sTdP=ԑDaAj8bn!!s" bC&lZ mb !C&re(2sghXO+Z#A1,ne1,1Ù,T( 4E׭4'`r"١ p|p@ GXBJ1% VQDPS$A `k;T+I0!} 0A?yGhz4劇(o[Aơ?)-;yq 㽲0ojn3ZiuUܸb}$v={YofSrlE`JGU/&69ie'߸vVXJ *1_%iۃ6{PnGL]T5O' j׵h2gR18d+H/ W5ת/x&Nd'c>_#g[v7M}fg ١(e JCcQ8u633=[|nPH1\;-<=lPw wqqM5*swa%7!ݨ}Qp@ԋZ; uaX! i~n@4ӏB! !G]Us`ko: EQ&?1M}$Rz[KDW\CnlO-({51rѰr4#Sw j&5&_2 BwN6[iZ])0ANJ䏌~ />Rf#%Ľ]'L{bZq͐9<^43 xւCJ ވ#ԡfnpsD}-{U e' p7U8ڀw; .˟l\[3a_kNS]ޟX+6KcG5*R~qnV4S l=c)ˍ5%%J>T  Ƈyw4Ԙ4V`y?**B]ZF"TQ-sMrlpdV6 ݆Q/Sե A#gy\i$R%ScA%}ǴB{W6U^Ut 45W' |q72/ڨS\WlB -ahkH9 lz*e-K:/1:-6 NTQΕB6E"_rBbt6V0]^{A Mԑf~ I@\֝*t b/^7)pYlZb lSHe $l, L\EhmH`l%S?}QCLJXqKDYhhY,H uk"|c$WFU*)svh`t[j/7OȒH@]g*1@saquQ;DaD|ږZ6 }Ra.HkY2tv@dH#G-^Xisߨc5꾛oET CD  EDyJ )l>XcQ_ vZKOp1a_;%jI{5dCv+kԺp5e3FdӜ^J#1J`nIMSϓ=?f''<،]6i0.55f<lr2V.'mƋA%Ks!` m +K |p{uU{7e!_0ϙ x:SR 6nᩪ|+s@ "A'fV'M@JI"W7RPS_#*Cɡ9Fa6 /q|D}T*)R߈<`$!͋XѴL09ۼa(Mڢiܮ@ E#vs%l~Cu]ƹlUӊ+ 6bGy$D1A")7'œ Q\zi !q,ĵtZx'dSkL!D\N'5R7>t_KNqi4.M+Z,XcNK/8n&Xծ9+8eԤ!2ޭiOEe@{v.^tqRT(hy t]N:vh?$Em2>'nn=ñD|Xd>bpF+ە^[02mB<ڟe&46 a/v˓sp-5J%O>Ռg&Y46>ա=j A+vsC& w_dN+{d{u` \Lnޚ 4Hl![0 1(ҜC7જԷnX?Jk?{YGn/Ps &[ѐ8:s1 0|fh@q<4[.j8jbsqrsEMp^ (0!