From be99f27b92b23ea0d47681eaf3ee4680dd52cfd4 Mon Sep 17 00:00:00 2001 From: edde746 <86283021+edde746@users.noreply.github.com> Date: Sat, 8 Aug 2026 10:18:34 +0200 Subject: [PATCH] fix(player): move TrueHD off the carrier when playback speed leaves 1x A bitstream cannot be resampled, so the carrier only ever accepts 1x. The selection gate covered that, but nothing re-ran it: setPlaybackSpeed reaches the sink and returns, and the renderer only re-asks when audio capabilities are invalidated. A speed change during carrier playback therefore left the carrier live and handed it parameters its empty processor chain cannot apply. Signal the capability change from the sink, which reaches onRendererCapabilitiesChanged and moves TrueHD onto the decoder; returning to 1x re-offers the carrier, so a speed nudge no longer costs Atmos for the rest of the session. The carrier delegate is never given a non-1x speed while that selection is in flight. Report the requested parameters rather than the delegate's while the carrier is active. The player polls the sink through the media clock and adopts what it reads, so reporting the pinned 1x pushed it back into the player and silently undid the speed change. Rebuilding the track selector parameters is not an alternative: DefaultTrackSelector skips invalidation when the rebuilt parameters compare equal, so a forced reselection can silently no-op. Verified on the SEI Box R (Android 14, armv7): carrier at 192kHz with no decoder, speed to 1.5x moves it to the FFmpeg decoder at 48kHz with the clock advancing faster than real time, and returning to 1x restores the carrier. The device test skips itself on hardware that never takes the carrier, as the Nvidia Shield does. --- .../assets/ffmpeg/truehd_speed_repro.mka | Bin 0 -> 617382 bytes .../exoplayer/TrueHdSpeedTransitionTest.kt | 195 ++++++++++++++++++ .../plezy/exoplayer/TrueHdCarrierSink.kt | 40 +++- .../plezy/exoplayer/TrueHdCarrierSinkTest.kt | 83 +++++++- 4 files changed, 311 insertions(+), 7 deletions(-) create mode 100644 android/app/src/androidTest/assets/ffmpeg/truehd_speed_repro.mka create mode 100644 android/app/src/androidTest/kotlin/com/edde746/plezy/exoplayer/TrueHdSpeedTransitionTest.kt diff --git a/android/app/src/androidTest/assets/ffmpeg/truehd_speed_repro.mka b/android/app/src/androidTest/assets/ffmpeg/truehd_speed_repro.mka new file mode 100644 index 0000000000000000000000000000000000000000..6631c0c88a938916fc06e575269986fd1342b371 GIT binary patch literal 617382 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�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
D+Ha=Xxa=o%_8em(CrdLZEZUgwFLwXMuBn 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

w^_S>W7z zQ|;XQ5}bR#J`|n%fTo7deL($;_qoLfoq#TXD0J?_PC%CrX%gt%N0dwFKBCFR``qHA zPC%DGrrxJ>y%LPheL@Lz?vt@|pG>uLpGt7FVQ|Upg&iz$|KJq|oLgE%>lLY(n@J|ZfWKI&ehKY=ayDc zA;7t%Rn-Y_ZfP|qpvzZRA;7t%HJpI&MsIWm=a$yg)WEr=wbajWZfR{Npv%`$A;7t% zb)A4N_eN)MZfQLg0-am>ZSw&qEgk6u zboo)CbB}fczRQo%B+$9XDwobZR+EeOxuxTrfG$5?y-(+QB^aH1q7vxblVazdlxpXm zoZwua!b#_z8ans1(7D>&EO74W8d$u~EuEpqXW-m3QtjL`6P)XXY;^8fs#rSrEDa0Z z=a$ZP0=niL4Hlj2z1Qem@4ZInp09hLbI(^ows+lf=>jL9YkW2*oqLfJMh}CG{(=8u zeF{4F5|u~b+)GmJ+)ERjdzl_xbguVaqjRs&B+$86YFOypE0uuvxuvUA2z2h%ni@Ly z8Yc|(PR+Ht2RheF*67^plz{iSrR(+E=-eB0XLRn3P8b|^4|eWNsdnzo3C_J)AF4Rx zun(o0zeR;W=MJh9=-gYKfG)pHg+S-t?gV@{dZRNs_YO@BoqMPHna;h-3Fz{>RS0zM zJx)NEd!sWt_g)o3;N1IC?cDnlocn-=h0c9YQ$y!Is6xQ|+>*}j44nJ028+%e(!kQW zkA%*B)CuVFM?>d6rfH;eA6L=PxliaG=-ekm=RV~GcKK7OcJ8PI=RU1zq;sFqu+X{x zQ+d$2&pH8J{%q)6Z*)fIKCgkLbG;Ib&V5k{bnZ(|K$rW(PCC~ocG9`t=#0+wO0dAW zucg|#uO~S7_0YL*=&?-az8O0AEe#8u`?eD3+;{XupmW~|o$C`j>D>21=Xxa=o%?|% zm(CrnLZEX;htBmzXMuA+O0{!8PH^rg`cQQ4r*I`@arxj%-^ z)#he_bAQsn(z!qD@fkSx=TtlQmjvf}Ase0hn<|#h{Y}F{=l<>lbj=?cEIQYFuhF^Q zdyUThTlYZc{;dQ$_a7&qYkW2*oLkN~VRX;m`O8^-3OKi%Q+d$2aG z7o1xzYFOaha!Hc_=aw~wbgr%j&Mm8s=-hHuQv>IgYfc#IotnDt0nROZ$r_xitATUN z1Nv=nZh0Kt8Jt^gI$?0wJ;=G`R+^n#ZufVtejYft+)*LGx#g}p0nROt>xAAeFOR1} zfOE^^JE8ZxQC9=!mM75Ez`5lK)z5Hlc_JtDc6oVX6#|@Fp2P|0a&L47=awf`A<((y z$e)YQPax*9mQtg}1m-15{KEI7A3jRqFZEl(Rcw>+H_(B;!b z&Mi-`X@qmjGpK0b-13aN2ROGpQ{>$8%uZmJ&zxrGmS^ej-14lNMmV=Tn}!9>E&oU5 z0q2%ycLKV6_Q<(qZ*&Idmgm&K!ntLy1cP(Sb1MPPEzjcwbh%ILgmcS2u@lZMd!sWr zx9pW*bZ&WpG&{GvV1MW8=fS$=@!Bj=VE(Xha|e;9Ok|)-9KpaRR%1*)%)1yj*|hmY3Iuf^*9& zXlmeGT@9RDUeO8Y@|7azmREMd*kOMi8abl8iY5WhEw8FvI9FE#=ayG<0=j&4^*)?i z_DV1~x4fnj;N0?Bp>xY?rP;aVwfj4_>{B@5-154SbIa>R&Mj+mGdfpS1Lv04*W;7U zEw7(u=ax6<@7%H%vcb9Kja0F4uC4~oEpO}ubj>CjEI7C9z1QH}viDwtbIY6S9^hPE z4V+uv!U^aapUp|TpIhEpQ$y$O;)J2zso7QcK<9eN8lAhF5(*3SChV@?M(6IK zJEL>=bOOH{_e!;M_fBx`-uh5@pIhEXg+S--t4^SE_j3Zee18=JoqK>2@ZIQ*&hS3B ze4wU=&OJ!|Oy?f#1a$c!Dg-+BP$!_vz0nz+dzcC#aPHx$cJ7D-=N_S9p>vPa)X=#{ zsu1u#x2&@}1Lq#C!J>1I(ZJHV$A->5&I#!9<3i^iuW6)nPf*d&xhLu#=-iV+=br2Y zcKOMvcJ3(&&OKGrNavoWVWD$RS9#F6XE*^}en#kAZ*)fIj?}=?xn2oI=bo(uI`;LOXps#LZEZ64xM|A6WHa~rrNpJB{=tbeJDEj22Bl} zdxQEJ?{mvHIssjNQ|R2AoiMidFI2Z^66oAP<nq0ikE#K+{bop)SeLB}G!RXvO zltAa+89VpRR6F;s1n2q`PCECV(7E@9&ei5-fphQEz~X&w`F=e<1LxkKYUe(X;9M_c zqjMip#nQPCX;|<+xBRdZ&^1FEEIQYFuhF^QdyUS0O!q+NKBk0h@4Dsk<4!==_-sx( z_em#=?(N*C^eO1vQ7VtXxua6;+@}+q`-~o4bguVaqjR6tB+$9fX;|po=afL_KCeQc zb6?QZ(77)pkNk#j2fO9JohR&@_m}ciz zChG6picjH$b1RcX&aF%uIk%$C%_=xoNLK^rRwmculg_P7o@VD(rs(h7iWjoMxs|C@ zv2d=g2F|Ta?F4kqG#V^8w=%60&^6wB4bH7huX})Vbv1BqWdCpw}R=oEboLiY)lK|&d=FqUfxw;xSw=$;+ z0nV+=rKy2)D|0(xsCR1S(LKPq6)#zXb9FUvZe>3GHaNF3zwQjqtt{Y#!D08Hb<33n z)9l>JLj9eqp9jvZEUZF+b1RFe6X4v+qE0}UFQ!6(b1REG0bTBm&fwh25}Fz~x3Z-A z8P2UN8tf;Ahb9FUv zZbfHz(z%tDHCS+NWfcu9oLgBna&BccC!ot$i=10oUDF8XR@P9_z`2z*bq{cEWv$4$ zm9?F~E?+y%&aJG|-?^1_HH~m?Wjzf`ZH-|Mw2>n!|5bUwxs~;ufG%G@a&E;Nox!=4 z4K=WEZpACX;M~f_N`P}Kn>Ybo?h`xV+=@@^gmWw2=nT%ScqJH}TiGJb&aG_O-?{pE zux`1sl^)A2cMnYsox6wn8Sir|dpZGKzE|kny`3<&_vx{ZCV|e~ zSGjcVzM5RT&#mm|1a$fS>U}!bE5Yd81C>DM9uzzGpj12e-~{LT6izz#(9pSuh0fLH zW`T1L*TCX^Ze@fXpMi5nq}sVhBskX#+34J(RIzmKQ5qJ!&#fHo1a!?Y8Z0{ZSSO%s zj#I_bxyS1s=-lI#knMe+TRFiA=o+8RN#~yAgweg7d$K+SoqLMPBXI61sdnzE3C=xD zk1jgbd#};CXJ``W+%q*Sbncl-!28_FNEHH|dzPk#&OO@+_-;H$_dw@*$r_z|t`hJ* zw{o6-8=ZT;?u^d8zzKuH%EQjRFxAezD8acG=|katZslSX0-bw_I)To;)CuVF%Tx$- z?&VHEmwTf#I`;}q4V`)?Lg3u%QtjO96P$a4 zhK0_(QByz10cm@>@ga-ll1!b8lDC(7AW$ z9_ZXVL+9S*1a|pdsdnz&3C_Jo(@5vut6`yY?^Aiux%WE(U4DP)TyJzn=RT-`rE|R! zjLv;n33Tp|6VT;8v6IgAiJf$=H#(zpy%H>N?&GO;?h^^leIj)3lX@)Exle`89i?HR zbDvfMo%@WQ2z2f

us=C!PCj=v=P^qjR6vs1WGf7eeQHqqD%dFQwYKFDE$n z6@4f=_f<^|o%^c#na+L93Fz|IL+8HX1bmmjsY#%7-%>7}`<5n`&VAbn=<;{e`*f~X zg3-C}DS^&?KX&f>sdnxM3C{H?oOJGop>sb9ovY2w0_T3Lfu(al(c?34?kA~s?xzXP z^+Gl}_j6S&o%^|lh0Y!01a!?88Z0{ZODCXfy!RTN`?cn<<)`;0nV)!ozUCmx*9mQTGG_Oxz)1z8P2U%oY33l z)v5{s&aKv*(A(v@8aTIFS0T{3)kd0~TOH`{-0CUf$)IJY{!iU!WDPM~{$bE^|Z&aF=5 z1ax_IqBJ|VI&pvJRwvOk!nxH+H7sy$buyI)oLimT3Fz|4Bj;AV(HWduol*k}=T^NE z49=}itpqr?I*k+1RS9rzbv8W_;9Ok|)-6|kVkewiojr1H)hof^-0GZ~TsXHnmkI&S z)zx6#a@8B1(Ye)m((K&oy#1Y9olhSM&aKX`seyBKHE?cq0Vkl#7mS=+UC0UeE?-!a z0OwX0Q7)XTtATT?i#h>azL2?=?8Ly1pg>&aG~sVS#gXHE?cqLlpv?Tir-g1LsyZcEV8a z-*q?9J;1qDFIj_gbv1Bqbu;}oIJdgF?hMYYZsCN%VfP^CR<}&GbGJ%x?pFFxc%NI{ zT7^L8Zlg}1bGLN@x_mno0-d|P6Y$-*y%O*~x4MI-hR)ql{Y>ZXg>+IxqEA{=-hoYuypRe zp>y|h0=j&^(7F3-8tL2vR5Wz%fw~7e_n^?Z2RngXesHRtdq{$F57ji%xrb?3=-k6q z9(3*qC!otmgwFLwXLRn78dy5lE5Yd8qm@AC9^(Xbxlin*bB}cby8Jj57@g~tV1aW_ zNVRiMOmOarp>t2tW0}r9IdtwR8WuYDR3*^4r|F46=bjci*C%$;xo3pV^-3^0ccdnl z&OJ+oKtq{t&V5!>L+3uHex`GucLKWn1r-9F`=S%j<=*Iw&V5OR5IFbc zR6F;T1n0i0VWD$h)6~$puc;8|T%Fw+IQI<=7M=U12A0l!D|GJLPC%Ex9Xj_NO(UKA zu8M}veNXp5=e{30_X8)e%Rfl9b4MpQ_d`u1o%@l7h0gt0#fzJIcbgnl#3!M8$ zs-631f^+}UhoW=;*3{6sf2*JA+<%;aF8?=jZY|@4-tY2SR+9kd)^f^)b9FUvZY}SG z-Y%~d)cbI5%`3s++*(NqaBi&}I=5C%vvX^e{?4uW6izs|R*Rflt4GeQX>&6=S62h) z)&}(Wq;qQnX?AXHoc_+Oc_AB|TWhIe;apt}oLg%JL=1@PwxwSc+fG(d)g#hQ)=5_+Q+#8+2xwUyz z2y||3-ZVS6HeY||*5=o+z`3;rG&OLpt_IGn>FiEAx3-W53(l=Atbv7dYl}qAtu5*V zboru@b8Cxf8sXg9;wlq0~R&fHl+$VOzxiz2I3Fp?l z(HWdu^GYx}x3)%_om*S8zjO8TVBKD;|EEO?(=+uI4~nte1_bguVaqjSCY8lAhp?t#wTUkTaX_qnwLoPe(J z*_?FlK~5Mw3^Kyh!TJ<*?jb6Vz`2K{+PQ}&IQK9;y69Z*y+-Gb&?L~gM`&2++#{5L z_qnwrRS0zMQJNY$_h=^!^-j$(x(7PfOV;SzW0ipSxwYf;+vwcmb!T+$2~HRsb`N&$ ziK%w(NeRw9NgoRDb89E75a`@f)CqL%sZKzbpQb{fb5C~yz8k&K8J&BEriRWvQ~gZm zj&uUL{45m$oqM(u(B#e@r=5T8=e`&^_odLe+T1K~?#mijI`sb~0-gJr3W3i3TvJ2mj&Z_J@6>#ud!Tc@ zWR1@KQVDeKSNd&q?$^3AI`oJNMgEJNLT;=YFRTMdyxHA<((ss}tzlADnvd>y{MvrbL%DD1DsngN6xKRoPaK`SJLdorXyoLjGJSm4}xL*)VI)(4!> z+vU1Cwo)54?2$NfMBN*m!MXLO1{Th(dnFj0TW>1?&aHQx(A(v@8aTJ^6FcGDx;Hw5 zbL(CSM(5VYPqTCD6ZChkejdEftxu@OGMrnVC~|InVhszNTc1P;aBh84JrUqsT@Bvn z)_r0poLiqfa&Fx#!QkBbl$u;Pw?35$0nXLc;C*i08=cX)^=Z=V-1@Zrom-zy9}3Q` zPp_$gb9FUvZhZzPpvz~BoLisC3BBLt^_evZaBh7T<-)nT8aTH;s}s=Wv#Iyt+`3nS z!MXL>l>q0~=Lnr!pCirAt!W^aBh7eC!lK<)?mT8b??0f=hnUV8k}2SO!oli>T2NJ z`r=MN*Z6EsIJdr}6Gr!bYcHiw0q542R(a65^`+D7-1;*8om*d4k1ja3?!DLG-1_pG z1UR?8f`$do)z!ec^%YeJaBh7iO%0q|U)c#my;HM_?g7rNd&wG{tE+)?>#OOv!MXL- zb!TvHeGMlJ4!Z|Ax4veYom*e4zjO8Tz`6CcRS0lyeI0cIoLgVl3Fz|mR0wcx{l8AY zccV8tgLCWaYii)!`UdJ}IJdr`6VT-wsSx1Y`o>N`mwTf#IJdru3W3h8Z<=Q3);H_# z-1_Dk7C5)Qg{B71)z!ecb)DTAICm=z7M;7b2A0my==1?%qnEbN6uqy4)vr;(c!2Cw9`g-sp_Z^-8e7xd)`$xd$dV_rTD(2kEg)=N=q7 z_Ye&WoqMPf=-k8fM4)pI3!Uo|JL%jJp>w?wjLtn$lS}6wr9z-{j|!dZjm`q+9+PV4 z9-H9YoqJB`Ty1U^IQLu)EZ*nV&(q^G zaPE1jcJBEJ&hlZlzU30Mpi_Z1lYjm#nUZZm_(>>6+mnk9J zyKcFDxf9SeKAV%yz0wJzhe1aFI(?Ns1)Y1f$|G>@)v0#wH3`nWR*x<^_c{#=oqN3| zfzG`_!$RlYpai_nt>36ZpmT51)X=#%J7K7IYHraz(79f+M&}MH0q=9`x9Ydixwq-g z=-k_#FgWZU?A$w2?c6&PoO`D}6yE37?@}Sqxp%7*=-hjpfG)pRg+S-t=LCE=dZRNs z_kK+co%?|Lna+LC3Fz{NR0wqL!%je#d!sWtcSwa0IQNlMJNMB9=RT%kp>rSC)X=$) zs}S%$x30501Lr=e!J>1Y(!kQWqeACC?F4lB)1h;p(KOPz|5MS>xzFkz=-lT*=RWTQ zcKP$EcJ2!a&V5nSNawz!VWD$hR(a65uQ&l+{z~XvZ*)fIzNUetbG;Ib&V54(bncr@ zK$rW(PCC~ocG9`t=#0+wO0dAW@21+h?#Re8|4jcS^m+o<(-ZlkV87o6K@XjtIf#(*XP&TWjNVS#gXHE?dD zsX~Br8!b%@oZDzSq4#gVjgIaC&TV+f8l0=EfpZ(<>bJqUjq!A6aBgFKC*ZrWF+rN0 z+nBJwbM^DUxs8cb2ykv=Vs!$X+nB@&z2A+ENmU4NZeubh^nN$$YT(?)&B7R4N2Gw=uO7(BGUUH1Uz zHs*+&+nCb{?D9F&?A*p&{hiyGThj>VHs;Z=z`2ciRUU9|V?HOK%jb)n+wewbaBgD( z4J@47@JcW^x3Q2C;M~T-PC%FY#7;Q3;S)RI+=e$ggL4~R2}b8O7EiNt8%y+eu6`b@ zTW&0=$1Sv?WpTwM*;EjN5(C!E_@K5}luE5YF0#)_I; zIJdEq3IWd5)nMInV`V3>%U4OWa~rGncWz@feJD7$vAU)P&ehexxs5fPfG%G%a&BWS zCyed=5?EW40OvN=Q7)XTtATSH>pB5lzMgs?&TV)l7@XT!UkPw-V}sDSjSbT5+{T9e zo!js!oN#VqpbkVuqdyUTBU6VlP?xA6!bN5gJ-sd*jR&UMxd$aU_aJ>Jyw7bMtU{o3 z4^b!3xraIdU4EDffzCbL3HWaGMrU}R+Zds#p>vN=KhwEKIssjNlnQ~)J=zKAa&L4- z=N_X%2%LLts-1gWf^(18u+X_DXlm%(6I2LzpWD#coq=;t(qPfKCu?Bo+*3m5p6Ud2 z`Kh6EPt!Egxu>gW=-e}O4|MLCp>sz%fn7c_)y_RD!MSH^8tL3~G%R%PxhfAj_dF+{ z%g+m)>y6In+zT|Ybgox|(YY5XfzG|y3Fva4*h%O5#7;Wb8=cX)UI`XB_wrOb_lgAP zUJ*L?Nus=C!KqJ=v=P^qjPW6;!iCEva_yV1jdR)rX>UZ`0J!xwomG@jkb4yA#mmcZANp(+OjH|4Me3CV|eq zTe)=Z-I`py&u!e}1a$em>U}!bE5Yd8`;|cFJ`g+ifmA#9!35{}6izz#;n2B5p>wsl zS>W79G_ZJ|+jvxu&%n8lrrNoWB{$lOl z@956x+;^QYIP4y@Zn^PZs-63Of^*;3hoW;oP$AH{qtyv??uSl5mw%)}pmRTV0=nEA zozc0UXlm%(Pu0(K?q^Owmw&E8pmWDK0bM>u33TokDulqfU#8l*UnMyAYYhvX`;DfC z&izJ(Ky6In+m`;yRI(J~YG&^@-`u@%x@Ip2?cVI?UES#&W|JU4I zhD%bNZQn0}Fc7+`tD6usSO`vV4esvl?(WVE?l!m$?yzx(jk~)K4#5TqmH^LrzVGv8 z_y2mjzSgJvIBIjByLzqbs?KlMnzaJwwq|ewx@JZV7M$Di-fM7f%X_cExvg1r4{)xo z2F`8G>I8I+&*p@4TeCS~bnoMSc6|ysw>5{#gU)Tu(PZbg=Irm>)?9jY!MQE(y$0vD z=Fud;xvhCMEO4%_2F`8Gr$T^pTk~sb;M~>%P8jT+ngw+aaBj;>*5F)S4V>FrNWTrv zZ7r-jgL7MpIALJOJ;=GOMVsv0)?)pgtDgtXZ7r@sfOA_*s1xAa){;&@moKG4fOA_* zI|1K~-slX@Z7rjzfpc5Ss-NN9)^bijmoKkEfOA_bI00Smjn3fQ)`}_wI=8h_lbzdI zxxaH;t7ur@+}5g^8aP*11LwAMb|;D)b32z2fqp>w^_S>W8g8tvS@Yn;1}J`|n1ucn61-BX3KDTwW9-o18k8ZSckEwC47qZd0$EjlJ+~YJXc%R!k-U;ZM6Es+K z?ukx7*Ld$WI`?GV1D$)a64Ksv%dJzKfUfb`oOJGKP8dA|GWxUTNPP-A_jHv<;M~(2 z?c6hJoO`AoU39MZUZZo*)+Erm=V(~y+;fzG_qnZeRS0zMd72tJ_k1S|_D;I6FX z3MZh;uT&w>xmP&>UG9y}=-jI{HFWMZ>SsFlS|^~(uTvq=xz{@ZU4Fe1=-eAr2!V44 z8tvR0Yn*$NhK0_(SyMyj-mF5v``nh!?hKrJs|JhCy-fp4=iVMV_YNnZ%kK!Cd#9$6 z&b>=TL+9SDd!Tdg37vbd6WHbVHrl!O)j0QlO(UHy==EbDwIobDyqp?$e=jpV4EP z&V4p??sFOzI`?@c(77+@i9qMR5IWZD;e1EOhQSPC(a;(O}WJ-g}MC_1IqBRVoq+GgpY$o{+@Dn*fpdRuv~z!{aqh2rbkVuqdyUThpC*CM{Y}F{=l-Sy zI`?-K0-gJZrUuR}5+@7}G3LnOMXGy%a|eqOx0qN13+EP-M9wWHbppD4(#W~RWST}ex0qZ-1Lqch(>=hs#T1cq ziz%JJE}yc=&Ml_u@7!W)O(UFJOrv3ebBn*LJmB17S|^~(r;VIjc%w5ox0p@?3+EQo z>mK0TVg@C^xy6i5K$rW(PB^#liJfq6;f>DV+`=ot=-gt~COfzIXMgAF=fS$=Vm3XN z;oM^O$hpNF8WuRWm{SRGZZVgh2ym{h2J4m!pV$fK7V|{TExZy8&MoHCOqjQS|o9x`;U;Uk1ETj(w=N1cVYT#U54V+sn;skX0qLFip#hife^2Id? zaBi`La^YNE4V+sn=>&B7QtEv;xA00ZIJa0v32<()Z0Ou#*(N);SgyZw3!lOX=N2nO z&Mj7qoLgvfGdfpS1Lqbi>+wnF7ArT|xy35|om+Sz8=PCLriz7gbv1BqvAPq`HEU?F z;M~G{ufe&6_g;f@i?wwRaIUTf&Mnq)0=mX$bHcgBdQKQU1Tw(5+%23i*gG{_ z>K^D^FIl5=w^9P$=N4P*x6!%V=+5ZeZJjVMZX?gVuC9x4PncTXpv%e~PV z-scv3sSpC^?%inT?o;F3eKjm}?tYpYI(I)60^a8qI=eG)?g1JsI`=>gES-B$=-h*y zfG$5cbnYRVMmqOU6%Cy`T=zidjtHH5m=oCLhc(){hu1jw2u&lMd!&Yi&OJ)yLFXRr z1a$e)p>w^_8J&Bq2A0nCN-#S2cqP!eCpZCJ?h`xd+!LLEF84-fbgox|1RH5$N1AL+AR$PCEDO(79d-M(3WZ z$)$78Qz6i~=Y`JoMrVO@FKD!LFRXFyD19h8_aaRVoqLh`8Sit8i=BWjza(_-rB1+i z`DK~}I`?wr(z%ywa`8U5xWWnO@+;N*bgox|(YaSEfzG`qcJ4KecJ8$`&h;srbnf+` zb8iTptIf><=MHFK@jkb>QIF5Sxi>c2xi{4~*9+O`+*?$!bnY!07QD|bZgm2><~9u$ zo$I~V=v?o;M(5tCd!TdgR6^RjZn?P23FsQ1%}M9p;{<#+-m6bR=iaCC2%LLgqn&$y zjdKU}=%RDI_Zpr1peBLNeMrMX=RTwayw5EjRw2;2k7#P>+((@-*!!LPnC^kj^^!F@ z_i-iAxlib~(Ya6R&gk5yoG>ut9_-ww8|~a@YMlFwJ`|n%tO|k7eNLS~=RWTQbomP^ z1UmOcC*Zr$8=cX)FKKG%+?UnQbnYuoK$pL&LZEYBa{{{D8=cX)ud5IO=f2Ts=e}9v z+_y9=bne@l8anrF6#|{BvpWOlzN^8abKldz(z&BU=f3X*bou+Cb3f2D(zze1Xz1LJ zbPsgy$DwmSaRR&ilSVuD(;DY~rfH;eKi9C(x&Kyq(79hY0bTw@=v;4fM(2K|fu(c3 z5{%CMMhSH87$>01ePSn_>k~WaTyJzn=Xxbr;M^Y??cD#=IQKuHbAQxhna=$wbned@ z7CQGACD6IQ>WM(-{u(;hCw9`g{|lY#m0)!4@0wgX_YV~Uo%=`R+|nDJ(Ya;XWapMy zf9ICDJ`|i=j-{!Ab9FUvZaKCSdb_;*Q{>!o94GXCmzTpd32<&Xu5#gAT@9RDj^~8l zE-(MA-iLEbuLOg0%a#)0+_DIrTNX`rZdvwsZs}7v;oP!{oLhDx=a$;sjLy~7z`5lF zdVJEk zd#}N{<+PdvIJf+Vh6T>m)xf#sbSeZmx13&61Lu}AIAO4NYG%|uz`3QDtiidu8aTI{ zS-%a=Eoaf4!MWwEP8b++4{~n#&n7#!oUOle_4B~Fps z&MoJ50=^r)(HWdu&ZDV;bIWVuC4~oEp>J$om(!Z!Gd$k#Wk>SZn;F{+;T}Lpv#wxoLerX zX@qmjrByU=Zn=!^0nRO#jhtI9=LB~7a!qz_xqN@;mMdr);oNdX4GWxGuB7sSbIX;T zfG%G-a&GC3&fwf~RShhhTY4oJoLjE01UR=`!wKkepV$fKmOil)&Mm#s8Jt^sB^aGs zuG3`amh1L+u6`b@TQ1krV;RmZ*N>cAZlGa-bIT2t0Oyt)>4^a6>T0lVx%7#haBjIt zTW+pGfOB;cN%G_L+@m!KbnY=47CQGBCE$H-d8`V7 z&OJ_3L+2jvgu&jaIYIY8=X%K+oqM7Z@IJRZNxzNGJy~}~=bqw(fg$%`=bqYV=bl#M z+|%@-@IJR3sY0N0Pgf_5U4EttfzCb43HWaGMrU;H*_s+U_Z;;zoqMhm(Bjy zLgx;sJm}mToq#UCF?6msIvWpNezOLa&h<(#I`>v3(7Crc0bTABJLz1X*h%Mlqcb|! zE5QQi-qmR5-d*F|yF=&RqsKCxdvEC6`!pI`_fQxn2oI z=RT~-rE?!qA<(&xgwFLwXMuAcYqWD8uW{}Z`cQQ4lbRYj_eu3Lo%@s%(B)5u&V9xS z=<;VZ33Tpr%B6Fk)8x{*&pQEK{(^d+&h<(#I`<_d(77+i&V9Mj&V8lExju!H&V4O( z?(3m*wYgc~+&46^bncsadav(e6dtH!xr$VTVBql%?--_fwpx$imwUGts>i_Z1l zYjm#nUZZnA&^^$(A1Hy&{m=>M8lTNc=YH&j(L*4kzkGe7PeJE?s`3b&`)Q+{`&o^1 zKi8v+&h_4FbnX|L1UmOi4GW$7r4s1euT%(h?$??cI`m_S+?zc*y zbHCGXqjSI4ozb~JIALJOJ=nSbX|!{Hta0v-`cQQ4PbvgD_h)qio%@Ru(B;3X5a`_h zIsxB}-sp_Z{hy|W&izgOOy~aY1a$cyDg-#Uoj9Sl%XKwyZaY;W(7Elb$?Y)3+J}Sjhx#a&k4Oo!f5rcW%4VG{U*`BI;N12!dLqENx*ELC zZTrMdIJZ4*!Ta2{H#(zp+cP%Vx$T+yJGVWvJ`|kW zo<&mw=jv+U-1e+aK$rhBa&CJzC-i=ow`bQRz`5-?lndwTYT(@VoK8TO&!ygnbK71C z2IsctQ39OXo;P%Ed)_8Hw>@8f=eB(cC!E_}AaZVd!N|F7ZEi;A>T2NJ_Ck7m(z)%0 zn(W;6!u_4w_Chu|x4oz;7S7exz`5+f9sJaBG%eH8+n+ulH(0Oz(hbOO43BNYOi+uqm- z_-^z@XK-$N6HN`A+ul_D4Cl5ta{{`2a}@%eyM+_b<=*HF?{nK*st^L_Zq;b#Ze8Qt zZ8R)&?zWm5I(J(Y0^aAgb#`aq-0d}3bnXrsSUPvd(78J~0bRaR=-iz(jdboVDjGU> zSKR}hyIbho-JQTL-@Vb!-J{02dukf#+`Tj`bnf0N4?1@rC!ovs37zYW&gk6zG_Z88 zSAx;G2PlEgJOXnV^LZEYx3!Qts6WHY^G}^f* z);RYheJDEjWK9j7d$Rf&?{nLyI00RLYUte4oG@m{{~XevA4h5u=-ktlOXr@h$;JEJ z_8CqqxOXpsqVZr;{_N7ih*IcH-qI13X8lCIC*XZ0Ubq{pz zl}bo^*DbfNass->XLHiI*EnHxZ|7dCPeJEir}7A#dtIZQdwq>_Z_uNQ&K=OO(788i z66oBUG%R%PO-jJ~-1f~X1UmN?O%0uUs}lx$r{*@@1D)$7Yjp1IO2GTv_8t0dbnczH zGdlM!C-A%R?nXQJo*L)gqYs7mx$S#Z2z2g!>I6FXekY*I2UQ4k?gLK1ccV8tqjMkB z)X=#Psh{cGhn;{fe?)~q=RWELbh$S=qjMiqAq38SywT2mqQ<#TYFOypr!+Nm?o%oR zI#*|R2F`s(gGJ{)tAV9+p9`J)yc5vn&xg)^LDNX*zNn(1b6?Uu(77*%&V9uR?DAI{ z?c7&uoco%lkTP2Zmt2A=RNg=}zc^(R#< zoU5yWbE|Qj(AzbY{@>}`%6qTDxs~@`gLA7t>mJ}-T@9RDjqilsuBm)BC!AXqP8i+O zxmBr80q0g)=omP+YB$-rRn_0QRY#95IJffNYjAEgfhGaYt^T56fpc{=aBelB3IWco z{;H{gbE}D*FxWda6YCz}+{#PV;9Ok|oLfz*-v;Malj+Xj+-hpGJiM=T?7rLhpB@t_IGnrq$HIxz#_^&v0%vofFXI z)2k5R+-e3Vpv%3{8Jt_qs6wD~tC^bY+-m0j&aGzAu)w+1teP4)S62h)Ryw>5}&x0)kzZZ)S9(B*SR&aLLsG{U*n+$tJ4x0*-y0OwZoM$WC~a{{}3z9u`j zn!mqus|7TTaBj7rh6T>8{-yGObE}1%fG%Gsa&F~~&fwf?5e+PyTX`iIoLeoX1UR=^ z+zIG%pV$fKRz9&4&aJ%B8Jt^rB^aGsE!|}2R?GBvu6`b@TdtPXV;Rn^mW!NQEw5pL zbE_4U0OwXK>WKj7>T0lVxmw8y=<<~#=T=?`2Ip3*YI5P+YBd!CoU5zBy5-6nozc0~ z8clX?wPt_kR%_`)!MWAini@D)R|Dr(>o@^jzHa2)YCR|5yL^330-RfIpj49=}KQ39M>Z5lea+O)~etv2iL+{&kL(z#oN&fPL}t~NIdoV%3< z7VmSbt@Zc}oV#_Sox4qqbG?v_&fQKGOXqHxQj^ys2< zz4scOyN@P;&fQnTLg((Q1ia6!_ERCyx%+Es=-dOGfbYfwbq{o|m#opb2PpyXbE|{( z+vwawbZ2z#p-vbWQXX2jTn%rub4S!TcZ5C^-se__sSxPg!_^6N?h#HvmmjG@pmUFM z0=^r)(HY+7R!3`U=-gw}&vfpwPC%C*r$V4}k9PvP+#8+IxhJR)0_UFCXy=|(>Bu*=VFv~$m^aqjt=MmqNb4GW!np~{2K9pwac`KZvj-sp_Zy;uWF=Xxa= zoqMSg=-kVkfG+omopi2G?4)zO(HWiVm0*E$uWGb&udZ?K)uD5*(PNp;y*702bs82r z_j)DJxi{#EKMi+=m+N+=pwN>r*)C+($#_J{CInadl&7$|3)&cI5EtaSbe;`-C2! zfpec|v~!=VajqA#(Ya5nV(HwcH7s=QGfqI)JgdQ?bG`Q(o$I~V=-d}{4|MJeN}zLJ zbOO4@XLHiIFFRp$@07oyPeJFts`3b&`)Z?|`&x~2U)Q6H&h_4Fbncs)1UmOE4GW$7 zmJ;aPw^ayq?mL^C4E9dVd%6cY*Gtyu+|f#)bKlo*qjNvdozb};I$>bQJ=nP) zHQKo!*EsiMeJDEj6BPoT`>8sC&i%{@=Nay}nMMLNQPxnCQ{uVm-cPFsRe{ZyN|LE`BPNHdq zb33Vq1}GdQ<1wgwi??RX^^oZA^k32<&_m=k)t zTvr3a0&h1R4TsT)(1Lt<8 zb^^M58udP$+wn>;IJYyc65!mSU6W#1Lt;Ta{{_%b`2Js+nK`&=o;_6 z2IqF>(mlYrx*9mQGq)4aH9ngY&h5D-(=@@7U=KX z&VqV$!MPppy$0uY7SbfZxt)bIEO4%_2F~p)qC$XkJBw;+;M~q)P8jT+n#FYwaBjy- z*5F)S4V>FqQojw(?JT7`gL6AeJ7HkRJ;=G8Wt!~V&a(ZTtDgtX?JTE4fO9*`s}tbd z&I(RIm#?TofO9)5IRRbnjn3fQ&dQn^IJdKk`Wepctm*`G`D!WzIJdL96VT_@%ZfDcTxt-0Nz%Jjc$vrbmKqj1 zcPo_#ox8OY(B)f)&hTG|q;tK|8J+8u zV1aXYX|!{9t#R(Ip>ucBW0}s~J#_9K8WuWtPbJ`eZf7q&5$N2#Lg)I#PC9p=(79d- zM(6IQ$)$7mS0T{3`-jf;MrVO@4{Wq^52|tQ!TL~i?jf2QI`G z5l+B&`C*y_I`?qp(z%Cga`8U5bA%Jn0GY_qjQf|0-bwI?A&7-?c8H)oa<9K z>D=Q(=bjKcSDTv!&OK2Bi}$&mll1ruoO@EEoqKYPbG?v_&OKEXOXr@dVZr;{&S_3S z*NoI)(YfAxjn4JnYjp0Jx(7Py|rbIRRbcvpMP9bDS`G2xR2kbM-0c-1Af( zfpgDmv~$m|aqb0rbkVuqdyUQ=rAeT3FVe8kxfdw`?{hmBs}ShiOEfif?xju`?46p+ zbPsf{m#opbmn#A9b30e)x6!#*>dxrgtDG<}z#luzd?mS=MFdl-;LhrjLyALQ$y$8q<*GzZ*~H@{1z1goqMYj(BD&iYG<5ERx(7Pt;wZx-%%mZx$lI| z^+sobbKh&Ub4S-W_kDdRI`;!j4W0Xe`kBuC&;!z5f1*jCb3auso%^XK zm(Kmn3Fz|A)%$d=SAx;GUnqgj{W5m$myLGrS2fP{DV%ifH=%RKgwFj|-H3I|oo_X; zbnbV0dM-@xw{ztl}F&*Kbq`ZEf`w0l^we2SeuS}%A$w1 zv*h1z{{R1X(P0;_dCAD(-Bgb*IJfJ)*Wlc4u1SD%yJKls;9Ok|oZB5+g#hPv|D>sb zbGzd>VX$Xvy2Er2aBkO2*5F)S4V>E@PrnV$?fzMJ2IqFicf!DsdysRxttLCSTl9CX zejYftTdEM?+-_T)0OxiqC-ioCS4$=7+-}ziz2A+x8aTH*fu;t|?fymm4Ci(ybV6^J zcmJwFfOESOIia`9bv1BqcVZO+o!gzH$H9mkJAFu!3pT{71jH2Zr3Zp;N0%YN`P~_tAx(&uF_=Zc3181+^$dIgmb&AN6zi8 z5jnT3&CTdsT@9SuT}zKoI=8!4lbzdLyT5b0UdRULcGp$K!nwK{IJdi=6VNs5Yp~$l zuJ>MpbGzPq4bJUuqh3HWZ@OrHYI?QX8}pmV#MH`=*d z)HrubJ-X;z@4ZInZmmh6bGOm3(7D?v0q=9W+o}-g-0d_qbnf;}7#w0uxqJuR1D)$7 zYjp08O2GTv?oRq`bnec&Gdgz{Ckza^2RnDyMmu-68t3k&4~6%+-Q86PbnYJN1Uh$5 zC!ovsQX$}dZg+1d;JeWqo#B0McOOj+ox894naD;4KG((*`#S*veHRTz%-hX)KxAo`wbi@K@=?{8IqMHJIlQe>Fk~tD>pJYvj zZ=w?*TH_`E&%bCUV`*Li-(+kJ3*ejlN%aEwCgV7vx9xRx%&_r#|G{qJzefVT$+#L= zz&9CB_W<}NK4JmzO~!XZZ`qAg9Z2|^Ed%rGp{NZ@J;5^JpjJC8o)Q1-wF6`TtMXk_$CWF0bTPieG0%gSxDtU z_$CWA8NSKF{o$J|qDL3tn=Gnf0elnxi4^cn7T2% z-RQqZ0=~&Ix(fK}Y5?D4S^YM^H(5@12KXladnDnTtk7imCM))buYMlDH(5!A0Qe>= zs}lgv?TKW`;lHQKp4 z0iv&Sx6w4xx!Y=3=v*JMK<94n1a$fKp>zHBNIG{%4J@6zlkS1e^$`nn?k-Nice#&P zzzg1FS0|v$cT<7Uxx4Eg0_X10Xy@)((%=lbuFbnf1vbNA7((78ThfzI7ePXs!5 zztFk+I{{sOK=&QZnEx##L0=-hLakoNwA-Q+wc;JfjB zl?R=BffLX*7wS{cxuaAbfpbSS+PN3iIQL>by6D_XG%R%PrJ4jf_c9F&oqL%Q@PaqF zT!ldA`k&C!xmP*?-;G!49_ZYwb(PM&S_yc;n_Q#cM(19uJEL>2bHV`r7x49scJ2)| z&b>h&3NLt*0TlwBd!ssm&b`SA=<=IY2z2f(PC%F6q69kkR!t3^dz<>1&b{3U=yD&t zKx_i9+^-1{^&bnbmB1iau)?$>`y=MHMH=-dZ1 zuypQ&p>rQ{0=oR6(76w58tGggyg=tZs(YYw9}AuPxD(jrk2l)6Isu}ubDz{S(z#D* zSm<0Iu|VfO;{zbppElISnkG`@HUf&h-%sbnc5zK$rW71v>X7C!ot;R)NvE zujn2E=f2u#=e}0s+}A?qzOKhIo%=@U+&48WbgqwBpmX2W6M@csJ9O?lPC%Ex8#?zr z-2eWap-1 z^>=PMwjNz@ZtAlj;M{Z^O#+;o4%4u}xw;xSHyu}n0OzLuC$w;G`e!HfemAD$>mK0T z)JxXjTwM*En-=j|$vpE4>K3nA6bap48%jeL*!nvteg2B0|k63_n)4831F82`&aBez}6VT=J zs=(mf)GNX0+;sjXJ2zdRzjO8TVBK=MpdQO`Zu+mtx#>b07C1Nc5esl`x`>_#aIUTf z>z30+oq#T1EOKt@m0)mgx`ZYd&P|t8A;7u18mwDRmvRETeCZ}TH(jQ`bJJz@q2Szf zIZX|mtE+)?Q~$$SI5%A(a&Ee!6VT-=X%gVvbYH(e)kZo00z5zf`sz`3c9SfF#$^_uM5 zbp8I$O}&r}&P_K|#lpF|8aOxI$O-sv+*pGJ=cYaj0?ti0RmH-&>1MhII9FE#=cb!G z0pE>Vs66Q0EuDbx#;x=z=-jPU9)WYWZnSf^sd4VMdUVmbJ_~}*-CmPG=kB0kp>uao z0^aAQJE{=qT>leVI(KI$;Ja}b-2gx?qM1hI`?o*4V`QG_Z8;(V=sXaRR#hn9#Y$Y8vTWAG|>49+vre!2#h&h<(#I@d=m(79(h0bTAR7Uxk-18dk-1BRkdw%HL3-nl~b1w{?J4(Ys=U$`)I`?8d5$N2DL+4)N1a$eO zp>w?wjLyAWlS}7bp+cZ@uLzxcr4!iYS2fzXSJycA8ht1__gYO2o$DhO@IE)a&I#!9 z>qF<>-~@E}fF^;?y-~Sz?v0vUyw6R2!~&grvwEM-^-3^0*GDYSxwpm6y{*yCy}ib{ zcW7AX+&e?(-W59cZgnG_d$$G_?{iZhu@E@-o<=+O-Wun6Asd~0zbcl_yGT8-S}Fgo%?!?b6?koqI2I+A<(&RsuSqkx14}3 ze_Mq>=f2|vboo0p>=-e@(bH8;0yZqZmJ69(_^mXp{nnpVJ2Mr6I>mwHE+#j8QF8?uf?oUoYm;bDR zrE|R!jL!8D3v}*(oq#U)5eszg|D1p>|4ju(=Xxbr;M_l&?A$Er?_B*nc%PeTB^#Za zWs!5UT*CtAW+ptE+)?vuT`wuKBwL3(n2F z_Zpm=dG9qiH=9oP0O#sz;M{C_C-i#4iy5No6V`IfpfFDoPh7fxpfb4 zZssLxaIUTf&dui4Z-aBQ`E+M+ZZ^LY26|UCW(zdgx!HpKovWV*&dvU%LV$C#h13af zZnm%!(B+G$5a8TwQ77QL(Hot?x!Gcx8aOvwT>T8^W=l8$UG9Sy;M{B}C!ou{(HWeZ zEv-VJbF*cd?A&bG{?5&o)3Cs~+47niI9FE#=VmMDzlC$N6*X9JZsxNf;M{EG$hp}n zPC%Eh5;-?pRnrLPW1&2$1pKj&s^YZ~F)Y#j{? zoSXTG1vocb&k5-A^&;nH-slX@%{I`$!nv7Og2B0&k63_nvyGjAF82`&aBjAV6VT<} z=nT%yyb_Gg%{FhebGN8*?iQhQx71@9?{l-QLg#L+VWD$Njdt!q zHO@U)!$RjC5<2(L(7D>&EO72{4J_X0Ww%}!S#(79)5YUtcE zoq+Ggvvd!1u9vLQxo0Z@?{l+r^xNp%b9HBQ?s-la7*gcgi8VXF(ayb~#<>^hL*adH zcA*M^&K;#rpmQ&B0=oQS6#|`mi4)M}mnebGy;M^}=U%3MrgJZM0=oPP6#|`mr4!KQ zS1N(dy-I};IQQyCJNKFz=U%H}p>wa()X=%tsSxl!H@jZ{EuDLV28+%e(7@8UH-^r= z$qDH4n?mQ_tZAfkZ&A_Exwq;b=-k^v=icrFcKPj%cJ3WD&b?F9Naxtn%0=~=N&?L~g zZz`A0eN&T5=f33xbotxreLB}G!RXv~l|bjd7d!X8Mmu+OjdS1Eu+X_5gwFjibgnix z3!M9r2A0nKSdY)ZxgR&$xu4WH*9+O`+|N|8bna&w7CQHHC!lNot-+#mz4scO>%G_L z+^=*GbnaJ5pmV==0=niKl?Rs<9~Gzbgq}I(YgOq0-gJtejA(CObDz`#V=Z51gB4Dg-z;&(#TVZa$V1db>OyTZI7U=6`ZR?{}lF2F}gL z(bT}X`7re}oSTp9gx)UC$5SD|x%r=+(A(v@8aOu}Uxh&D=B*|>H!u1-H!n3TaBkk# z)WEsA8aOxC*`0K5-qB#exp`Lu3+Lt&M9$6s;)LEV*VQq@hJ7}q??w*KC)6~;x%ppJ zG;nS{k?sM`%_okWn@{2dcKIYtc5Xgtf9K|tX&T|&d~yv7oSXkmeXHf#2o6o8z0-UR>!Mf$#Cw9WQ`D~GMbFT!0 zbMrYgxo~birwRei)zx6#a_)`J=-hnnCObEur@wRadG(>-+2IuB0sA7{< zd;dqr3K|wTH(${S=$e%@Sa5Fcz1QH}+QlhE`C2LuIyYad$+}wMw!MXW*nglpEUthxl=jv+U+mK0T+)LKrTwM*En{TS$2IuCR>CWKXd~+uZ47mrr&&{`J zv~#ztaqgD-P2(@bGKF}(7D?<0bRbW3W3hu&Ix0N457&4jn42sH{V`UL+9?G zex`GGbOO43ClvynyR#F}<=*HF?{o8AR0x4{cWtzDcdK#k?iv<4cMnYsox6t$0q=8j zo!uEYcP|YVox8UNmd@QLbnd=RK$q_uI(I)!Bb~dyiiXZTK=(lB9vC|JASbZP4{Ee? z53X_UA(}=y_fQQBojY9RLFbNe0=j%e=-k7cfG$5=154+6B^aH1q!Q@dqnv;)_lcc! z?$J&_mwTf#I@c?~0_PsrXy+bZ~PYa#vm0)!4>6% zZhoE<(B(79KI&ei5-fpf3cz~X&wevKZVfpf2Ev~#bmajqA#(Ye>FV(HxL zH7s=Q4NgGU3}~?ET<^U`=X&ooI`?MX1D$)b64Ksv%lR!%K-c(ePCEBCC*ZsBc6|yu z_YRdu;M_YJ?c6(SoO_oZU39MZUZZpG(In8h_i9+^+!PziXSn?I!AM&~}PJEL~;&V54zOXt2BI`=Inpv&J1 zo%^(null) + val trackEncoding = AtomicReference(-1) + val player = AtomicReference(null) + + handler.post { + val factory = PlezyRenderersFactory(context).apply { + setEnableDecoderFallback(true) + setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) + } + // Mirrors ExoPlayerCore: without this flag DefaultTrackSelector silently drops every + // renderer-capability invalidation, so the carrier could never be re-evaluated. + val selector = DefaultTrackSelector(context).apply { + setParameters( + buildUponParameters().setAllowInvalidateSelectionsOnRendererCapabilitiesChange(true) + ) + } + val exo = ExoPlayer.Builder(context, factory).setTrackSelector(selector).build() + player.set(exo) + exo.addAnalyticsListener( + object : AnalyticsListener { + override fun onAudioDecoderInitialized( + eventTime: AnalyticsListener.EventTime, + decoderName: String, + initializedTimestampMs: Long, + initializationDurationMs: Long + ) { + audioDecoder.set(decoderName) + Log.i(TAG, "audio decoder: $decoderName") + } + + override fun onAudioTrackInitialized( + eventTime: AnalyticsListener.EventTime, + config: AudioSink.AudioTrackConfig + ) { + trackEncoding.set(config.sampleRate) + Log.i(TAG, "AudioTrack rate=${config.sampleRate} buffer=${config.bufferSize}") + } + + override fun onIsPlayingChanged(eventTime: AnalyticsListener.EventTime, isPlaying: Boolean) { + if (isPlaying) playing.countDown() + } + } + ) + val source = ProgressiveMediaSource.Factory( + DefaultDataSource.Factory(context), + DefaultExtractorsFactory() + ).createMediaSource(MediaItem.fromUri(Uri.fromFile(fixture))) + exo.setMediaSource(source) + exo.prepare() + exo.playWhenReady = true + } + + assertTrue("playback never started", playing.await(30, TimeUnit.SECONDS)) + Thread.sleep(SETTLE_MS) + + val carrierEncoding = trackEncoding.get() + val decoderBefore = audioDecoder.get() + Log.i(TAG, "==== BEFORE: rate=$carrierEncoding decoder=$decoderBefore ====") + + // AudioTrackConfig is built from OutputConfig, which stays PCM16 by design; the real + // AudioTrack format is swapped in the builder modifier. The observable carrier signature is + // therefore the 192kHz carrier rate with no decoder instantiated. + if (carrierEncoding != TrueHdMatPacker.CARRIER_SAMPLE_RATE || decoderBefore != null) { + Log.i(TAG, "==== SKIPPED: device does not take the carrier (rate=$carrierEncoding) ====") + teardown(handler, player, thread, fixture) + return + } + + val positionBefore = positionOf(handler, player) + handler.post { player.get()?.setPlaybackSpeed(1.5f) } + Thread.sleep(SETTLE_MS) + + val encodingAfter = trackEncoding.get() + val decoderAfter = audioDecoder.get() + val positionAfter = positionOf(handler, player) + Log.i( + TAG, + "==== AFTER: rate=$encodingAfter decoder=$decoderAfter " + + "position=${positionBefore}ms -> ${positionAfter}ms ====" + ) + + // Returning to 1x has to re-offer the carrier, or one speed nudge costs Atmos for the session. + trackEncoding.set(-1) + handler.post { player.get()?.setPlaybackSpeed(1f) } + Thread.sleep(SETTLE_MS) + val rateRestored = trackEncoding.get() + Log.i(TAG, "==== RESTORED: rate=$rateRestored ====") + + teardown(handler, player, thread, fixture) + + assertEquals( + "returning to 1x must put TrueHD back on the carrier", + TrueHdMatPacker.CARRIER_SAMPLE_RATE, + rateRestored + ) + assertNotEquals( + "TrueHD must leave the IEC 61937 carrier when speed leaves 1x", + TrueHdMatPacker.CARRIER_SAMPLE_RATE, + encodingAfter + ) + assertTrue("a decoder must take over the TrueHD track", decoderAfter != null) + assertTrue("the clock must keep advancing after the switch", positionAfter > positionBefore) + // The whole point of the switch: the speed the user asked for has to actually apply. At 1.5x + // the media clock must outrun the 4s of wall time spent waiting. + assertTrue( + "playback must run faster than real time after the switch, advanced " + + "${positionAfter - positionBefore}ms in ${SETTLE_MS}ms", + positionAfter - positionBefore > SETTLE_MS * 6 / 5 + ) + } + + private fun positionOf(handler: Handler, player: AtomicReference): Long { + val value = AtomicReference(0L) + val done = CountDownLatch(1) + handler.post { + value.set(player.get()?.currentPosition ?: 0L) + done.countDown() + } + done.await(5, TimeUnit.SECONDS) + return value.get() + } + + private fun teardown( + handler: Handler, + player: AtomicReference, + thread: HandlerThread, + fixture: File + ) { + val done = CountDownLatch(1) + handler.post { + player.get()?.release() + done.countDown() + } + done.await(10, TimeUnit.SECONDS) + thread.quitSafely() + thread.join(5_000) + fixture.delete() + } + + private fun copyFixture(context: android.content.Context): File { + val output = File.createTempFile("truehd-speed-", null, context.cacheDir) + InstrumentationRegistry.getInstrumentation().context.assets + .open("ffmpeg/truehd_speed_repro.mka") + .use { input -> output.outputStream().use { input.copyTo(it) } } + return output + } +} diff --git a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSink.kt b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSink.kt index 34df6028..585c4379 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSink.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSink.kt @@ -76,6 +76,7 @@ internal class TrueHdCarrierSink( private var burstsSinceAnchor: Long = 0 private var playbackParameters: PlaybackParameters = PlaybackParameters.DEFAULT + private var sinkListener: AudioSink.Listener? = null // --- Selection --- @@ -255,6 +256,7 @@ internal class TrueHdCarrierSink( // --- Persistent state: mirrored, so either delegate can be activated later --- override fun setListener(listener: AudioSink.Listener) { + sinkListener = listener defaultSink.setListener(listener) carrierSink.setListener(listener) } @@ -270,15 +272,47 @@ internal class TrueHdCarrierSink( } override fun setPlaybackParameters(playbackParameters: PlaybackParameters) { + val wasUnitSpeed = this.playbackParameters.speed == 1f + val isUnitSpeed = playbackParameters.speed == 1f this.playbackParameters = playbackParameters defaultSink.setPlaybackParameters(playbackParameters) - carrierSink.setPlaybackParameters(playbackParameters) + // A bitstream cannot be resampled, and the carrier delegate has no processor chain to do it + // with, so it is never handed a speed nothing can apply. + carrierSink.setPlaybackParameters( + if (isUnitSpeed) playbackParameters else PlaybackParameters.DEFAULT + ) + + // Crossing 1x changes whether TrueHD may ride the carrier, but nothing re-asks on its own: + // the renderer only consults the sink when capabilities are invalidated. Rebuilding the track + // selector parameters is not enough either — DefaultTrackSelector skips invalidation when the + // rebuilt parameters compare equal. This is the path media3 itself uses for a route change, + // and it reaches onRendererCapabilitiesChanged, so the format is re-evaluated and TrueHD moves + // between the carrier and the decoder. + if (wasUnitSpeed != isUnitSpeed && (carrierActive || isUnitSpeed)) { + log?.invoke( + "info", + "audio", + "Playback speed ${if (isUnitSpeed) "returned to" else "left"} 1.0x; re-evaluating the TrueHD carrier" + ) + sinkListener?.onAudioCapabilitiesChanged() + } } - override fun getPlaybackParameters(): PlaybackParameters = active.getPlaybackParameters() + /** Whether TrueHD is currently riding the carrier. Read by the core when speed changes. */ + val isCarrierActive: Boolean + get() = carrierActive + + /** + * While the carrier is live the delegate is deliberately pinned to 1x, but the player polls this + * through the media clock and adopts whatever it reads. Reporting the delegate's value would push + * the pinned 1x back and silently undo the user's speed change, so the requested parameters are + * reported instead; the reselection triggered above then moves TrueHD onto the decoder, which + * really can apply them. + */ + override fun getPlaybackParameters(): PlaybackParameters = if (carrierActive) playbackParameters else active.getPlaybackParameters() override fun setSkipSilenceEnabled(skipSilenceEnabled: Boolean) { - // Only reaches the normal sink: the carrier delegate has no processors to skip silence with, + // Only the normal sink: the carrier delegate is fed a fixed-rate bitstream, // and dropping "silent" carrier bytes would break the frame cadence. defaultSink.setSkipSilenceEnabled(skipSilenceEnabled) } diff --git a/android/app/src/test/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSinkTest.kt b/android/app/src/test/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSinkTest.kt index 7a4309f3..91df4936 100644 --- a/android/app/src/test/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSinkTest.kt +++ b/android/app/src/test/kotlin/com/edde746/plezy/exoplayer/TrueHdCarrierSinkTest.kt @@ -100,6 +100,60 @@ class TrueHdCarrierSinkTest { assertEquals(AudioSink.SINK_FORMAT_UNSUPPORTED, carrierSink.getFormatSupport(trueHdFormat())) } + /** + * The real UI path: speed changes while the carrier is already live. Querying support after + * setting speed passes trivially; nothing re-asks the sink unless capabilities are invalidated, + * so without this the carrier keeps running and is handed a speed it cannot apply. + */ + @Test + fun leavingUnitSpeedMidPlaybackInvalidatesCapabilities() { + val carrier = FakeSink() + val carrierSink = sink(carrier = carrier) + val listener = RecordingSinkListener() + carrierSink.setListener(listener) + carrierSink.configure(trueHdFormat(), 0, null) + assertTrue("carrier should be live before the speed change", carrierSink.isCarrierActive) + + carrierSink.setPlaybackParameters(PlaybackParameters(1.5f)) + + assertEquals("the renderer must be asked to re-evaluate", 1, listener.capabilityInvalidations) + assertEquals( + "the carrier delegate must never receive a speed it cannot apply", + 1f, + carrier.lastPlaybackParameters.speed, + 0f + ) + assertEquals(AudioSink.SINK_FORMAT_UNSUPPORTED, carrierSink.getFormatSupport(trueHdFormat())) + } + + /** Returning to 1x has to re-offer the carrier, or Atmos is lost until the next open. */ + @Test + fun returningToUnitSpeedInvalidatesCapabilitiesAgain() { + val carrierSink = sink() + val listener = RecordingSinkListener() + carrierSink.setListener(listener) + carrierSink.configure(trueHdFormat(), 0, null) + + carrierSink.setPlaybackParameters(PlaybackParameters(1.5f)) + carrierSink.setPlaybackParameters(PlaybackParameters(1f)) + + assertEquals(2, listener.capabilityInvalidations) + assertEquals(AudioSink.SINK_FORMAT_SUPPORTED_DIRECTLY, carrierSink.getFormatSupport(trueHdFormat())) + } + + /** A speed change that stays at 1x is not a transition and must not disturb selection. */ + @Test + fun aNoOpSpeedChangeDoesNotInvalidateCapabilities() { + val carrierSink = sink() + val listener = RecordingSinkListener() + carrierSink.setListener(listener) + carrierSink.configure(trueHdFormat(), 0, null) + + carrierSink.setPlaybackParameters(PlaybackParameters(1f)) + + assertEquals(0, listener.capabilityInvalidations) + } + /** Everything that is not TrueHD keeps going to the existing processed sink. */ @Test fun otherFormatsAreLeftToTheNormalSink() { @@ -231,6 +285,18 @@ class TrueHdCarrierSinkTest { return field.get(sink) as FakeSink } + private class RecordingSinkListener : AudioSink.Listener { + var capabilityInvalidations = 0 + override fun onPositionDiscontinuity() = Unit + override fun onPositionAdvancing(playoutStartSystemTimeMs: Long) = Unit + override fun onUnderrun(bufferSize: Int, bufferSizeMs: Long, elapsedSinceLastFeedMs: Long) = Unit + override fun onSkipSilenceEnabledChanged(skipSilenceEnabled: Boolean) = Unit + override fun onAudioSinkError(audioSinkError: Exception) = Unit + override fun onAudioCapabilitiesChanged() { + capabilityInvalidations++ + } + } + /** Minimal AudioSink that records what it was handed and can apply back pressure. */ private class FakeSink : AudioSink { val written = ByteArrayOutputStream() @@ -242,6 +308,7 @@ class TrueHdCarrierSinkTest { var refuseNext: Boolean = false var refuseEveryNth: Int = 0 var refusals: Int = 0 + var lastPlaybackParameters: PlaybackParameters = PlaybackParameters.DEFAULT private var offered = 0 override fun handleBuffer(buffer: ByteBuffer, presentationTimeUs: Long, encodedAccessUnitCount: Int): Boolean { @@ -267,9 +334,15 @@ class TrueHdCarrierSinkTest { override fun supportsFormat(format: Format) = formatSupport == AudioSink.SINK_FORMAT_SUPPORTED_DIRECTLY override fun getFormatSupport(format: Format) = formatSupport - override fun setVolume(volume: Float) { lastVolume = volume } - override fun setAudioSessionId(audioSessionId: Int) { sessionId = audioSessionId } - override fun setSkipSilenceEnabled(skipSilenceEnabled: Boolean) { skipSilence = skipSilenceEnabled } + override fun setVolume(volume: Float) { + lastVolume = volume + } + override fun setAudioSessionId(audioSessionId: Int) { + sessionId = audioSessionId + } + override fun setSkipSilenceEnabled(skipSilenceEnabled: Boolean) { + skipSilence = skipSilenceEnabled + } override fun getSkipSilenceEnabled() = skipSilence override fun setListener(listener: AudioSink.Listener) = Unit @@ -281,7 +354,9 @@ class TrueHdCarrierSinkTest { override fun playToEndOfStream() = Unit override fun isEnded() = false override fun hasPendingData() = false - override fun setPlaybackParameters(playbackParameters: PlaybackParameters) = Unit + override fun setPlaybackParameters(playbackParameters: PlaybackParameters) { + lastPlaybackParameters = playbackParameters + } override fun getPlaybackParameters(): PlaybackParameters = PlaybackParameters.DEFAULT override fun setAudioAttributes(audioAttributes: AudioAttributes) = Unit override fun getAudioAttributes(): AudioAttributes? = null