From 2277595be4d150eb14098ab4d7959213b22e0337 Mon Sep 17 00:00:00 2001 From: Kyle Simpson Date: Mon, 1 Aug 2022 15:54:20 +0100 Subject: [PATCH] Driver: Split receive into its own feature (#141) Adds the "receive" feature, which is disabled by default. When this is disabled, the UDP receive task is not compiled and not run, and as an optimisation the UDP receive buffer size is set to 0. All related events are also removed. This also removes the UDP Tx task, and moves packet and keepalive sends back into the mixer thread. This allows us to entirely remove channels and various allocations between the mixer and an async task created only for sending data (i.e., fewer memcopies). If "receive" is enabled, UDP sends are now non-blocking due to technical constraints -- failure to send is non-fatal, but *will* drop affected packets. Given that blocking on a UDP send indicates that the OS cannot clear send buffers fast enough, this should alleviate OS load. Closes #131. --- ARCHITECTURE.md | 5 +- Cargo.toml | 9 +- README.md | 8 +- benches/mixing-task.rs | 16 ++-- examples/Cargo.toml | 3 + examples/serenity/voice_receive/Cargo.toml | 1 + images/arch.afdesign | Bin 56250 -> 54175 bytes images/driver.png | Bin 170216 -> 156491 bytes images/driver.svg | 14 ---- images/gateway.png | Bin 131679 -> 131681 bytes src/config.rs | 22 +++-- src/driver/connection/mod.rs | 41 +++++++-- src/driver/crypto.rs | 4 +- src/driver/mod.rs | 2 + src/driver/tasks/error.rs | 31 ++++--- src/driver/tasks/message/mixer.rs | 9 +- src/driver/tasks/message/mod.rs | 6 +- src/driver/tasks/message/udp_tx.rs | 4 - src/driver/tasks/mixer/mod.rs | 80 ++++++++++++++---- src/driver/tasks/mod.rs | 2 +- src/driver/tasks/udp_rx.rs | 6 +- src/driver/tasks/udp_tx.rs | 63 -------------- src/events/context/data/mod.rs | 8 +- src/events/context/internal_data.rs | 92 +++++++++++---------- src/events/context/mod.rs | 20 +++++ src/events/core.rs | 37 +++++++-- src/lib.rs | 12 +-- 27 files changed, 294 insertions(+), 201 deletions(-) delete mode 100644 src/driver/tasks/message/udp_tx.rs delete mode 100644 src/driver/tasks/udp_tx.rs diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index d14ac6ebe..78855d5f2 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -35,13 +35,12 @@ Audio processing remains synchronous for the following reasons: Songbird subdivides voice connection handling into several long- and short-lived tasks. * **Core**: Handles and directs commands received from the driver. Responsible for connection/reconnection, and creates network tasks. -* **Mixer**: Combines audio sources together, Opus encodes the result, and encrypts the built packets every 20ms. Responsible for handling track commands/state. ***Synchronous***. +* **Mixer**: Combines audio sources together, Opus encodes the result, and encrypts the built packets every 20ms. Responsible for handling track commands/state, and transmitting completed voice packets and keepalive messages. ***Synchronous***. * **Thread Pool**: A dynamically sized thread-pool for I/O tasks. Creates lazy tracks using `Compose` if sync creation is needed, otherwise spawns a tokio task. Seek operations always go to the thread pool. ***Synchronous***. * **Disposer**: Used by mixer thread to dispose of data with potentially long/blocking `Drop` implementations (i.e., audio sources). ***Synchronous***. * **Events**: Stores and runs event handlers, tracks event timing, and handles * **Websocket**: *Network task.* Sends speaking status updates and keepalives to Discord, and receives client (dis)connect events. -* **UDP Tx**: *Network task.* Responsible for transmitting completed voice packets. -* **UDP Rx**: *Network task.* Decrypts/decodes received voice packets and statistics information. +* **UDP Rx**: *Optional network task.* Decrypts/decodes received voice packets and statistics information. *Note: all tasks are able to message the permanent tasks via a block of interconnecting channels.* diff --git a/Cargo.toml b/Cargo.toml index 3a7629bb0..f38dabd04 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ audiopus = { optional = true, version = "0.3.0-rc.0" } byteorder = { optional = true, version = "1" } dashmap = { optional = true, version = "5" } derivative = "2" -discortp = { features = ["discord-full"], optional = true, version = "0.5" } +discortp = { default-features = false, features = ["discord", "pnet", "rtp"], optional = true, version = "0.5" } flume = { optional = true, version = "0.10" } futures = "0.3" once_cell = { optional = true, version = "1" } @@ -32,8 +32,9 @@ rubato = { optional = true, version = "0.12" } rusty_pool = { optional = true, version = "0.7" } serde = { version = "1", features = ["derive"] } serde-aux = { default-features = false, optional = true, version = "3"} -simd-json = { features = ["serde_impl"], optional = true, version = "0.6.0" } serde_json = "1" +simd-json = { features = ["serde_impl"], optional = true, version = "0.6.0" } +socket2 = { optional = true, version = "0.4" } streamcatcher = { optional = true, version = "1" } tokio = { default-features = false, optional = true, version = "1.0" } tokio-tungstenite = { optional = true, version = "0.17" } @@ -110,6 +111,7 @@ driver = [ "dep:rusty_pool", "dep:serde-aux", "dep:serenity-voice-model", + "dep:socket2", "dep:streamcatcher", "dep:symphonia", "dep:symphonia-core", @@ -145,9 +147,10 @@ twilight = ["dep:twilight-gateway","dep:twilight-model"] # Behaviour altering features. builtin-queue = [] +receive = ["discortp?/demux", "discortp?/rtcp"] # Used for docgen/testing/benchmarking. -full-doc = ["default", "twilight", "builtin-queue"] +full-doc = ["default", "twilight", "builtin-queue", "receive"] internals = [] [[bench]] diff --git a/README.md b/README.md index 4ce592b2d..cb6b230c3 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ The library offers: * A standalone driver for voice calls, via the `"driver"` feature. If you can create a `ConnectionInfo` using any other gateway, or language for your bot, then you can run the songbird voice driver. - * And, by default, a fully featured voice system featuring events, queues, RT(C)P packet - handling, seeking on compatible streams, shared multithreaded audio stream caches, + * Voice receive and RT(C)P packet handling via the `"receive"` feature. + * SIMD-accelerated JSON decoding via the `"simd-json"` feature. + * And, by default, a fully featured voice system featuring events, queues, + seeking on compatible streams, shared multithreaded audio stream caches, and direct Opus data passthrough from DCA files. - * To be able to use `simd-json` from serenity, you will need to enable the `simdjson` - feature on both songbird and serenity. ## Intents Songbird's gateway functionality requires you to specify the `GUILD_VOICE_STATES` intent. diff --git a/benches/mixing-task.rs b/benches/mixing-task.rs index 036839294..d07db4050 100644 --- a/benches/mixing-task.rs +++ b/benches/mixing-task.rs @@ -25,7 +25,7 @@ use songbird::{ tracks, Config, }; -use std::io::Cursor; +use std::{io::Cursor, net::UdpSocket}; use tokio::runtime::{Handle, Runtime}; use xsalsa20poly1305::{aead::NewAead, XSalsa20Poly1305 as Cipher, KEY_SIZE}; @@ -41,14 +41,12 @@ fn dummied_mixer( Receiver, Receiver, Receiver, - Receiver, ), ) { let (mix_tx, mix_rx) = flume::unbounded(); let (core_tx, core_rx) = flume::unbounded(); let (event_tx, event_rx) = flume::unbounded(); - let (udp_sender_tx, udp_sender_rx) = flume::unbounded(); let (udp_receiver_tx, udp_receiver_rx) = flume::unbounded(); let ic = Interconnect { @@ -61,18 +59,23 @@ fn dummied_mixer( let mut out = Mixer::new(mix_rx, handle, ic, config); + let udp_tx = UdpSocket::bind("0.0.0.0:0").expect("Failed to create send port."); + udp_tx + .connect("127.0.0.1:5316") + .expect("Failed to connect to local dest port."); + let fake_conn = MixerConnection { cipher: Cipher::new_from_slice(&vec![0u8; KEY_SIZE]).unwrap(), crypto_state: CryptoState::Normal, udp_rx: udp_receiver_tx, - udp_tx: udp_sender_tx, + udp_tx, }; out.conn_active = Some(fake_conn); out.skip_sleep = true; - (out, (core_rx, event_rx, udp_receiver_rx, udp_sender_rx)) + (out, (core_rx, event_rx, udp_receiver_rx)) } fn mixer_float( @@ -85,7 +88,6 @@ fn mixer_float( Receiver, Receiver, Receiver, - Receiver, ), ) { let mut out = dummied_mixer(handle, softclip); @@ -115,7 +117,6 @@ fn mixer_float_drop( Receiver, Receiver, Receiver, - Receiver, ), ) { let mut out = dummied_mixer(handle, true); @@ -143,7 +144,6 @@ fn mixer_opus( Receiver, Receiver, Receiver, - Receiver, ), ) { // should add a single opus-based track. diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 973772255..02ff869be 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -6,3 +6,6 @@ members = [ "serenity/voice_receive", "twilight", ] + +[profile.release] +debug = true diff --git a/examples/serenity/voice_receive/Cargo.toml b/examples/serenity/voice_receive/Cargo.toml index c616efb0f..f0eec66ad 100644 --- a/examples/serenity/voice_receive/Cargo.toml +++ b/examples/serenity/voice_receive/Cargo.toml @@ -10,6 +10,7 @@ tracing-subscriber = "0.2" tracing-futures = "0.2" [dependencies.songbird] +features = ["receive"] path = "../../../" [dependencies.serenity] diff --git a/images/arch.afdesign b/images/arch.afdesign index 01947cf408317254c8d7645d764360f6dc55abf4..d7ab5a044d7461fffa371e49c09f66958573fbc6 100644 GIT binary patch delta 38223 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

04{ji^rk44RpMBZgUj6dW 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 H*e~;6W=DwNPD0J!L5hNgGdM*6 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 diff --git a/images/driver.png b/images/driver.png index 56dd68bb91c9f83e1f11d3ab0d4f4e8381f2f74e..b06c2c26f551de4f67f31eed3f94082e027e036a 100644 GIT binary patch delta 99098 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

DvS-tsjf3|$L7115m;ViUOK9j; z^|^(KBU

0Hc-HYrVxsKi}}!5Y8OZ*$|tN;@~kmJ9V$o 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⪻NJt3M+9}J5gbSBY`TS#l-nW-AH!>2* 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

RRUQ)GgJYG1+V!vOU+FfD5K~5qn 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 JnbMc<{9o~@3iAK} delta 112931 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�?O>A&g(J*(w_6_Ebxa3Hk=B4f)X8m;QP7$fkWZ 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�U6Q|PYVWWUMnOj>4j4H+x9=k(N8r>7WfL6vnfA8~A^E$L5x2z@G$MoWKftL+ zTKW>jDiB&WRx+t+XrM}l3q&D>g}NEfA+tqnY~fni1_0GNN1iiO!u5&|qWQX$JlS&Y zM?maAAmalh=#ws20YTmdDJ~FXv63!2p|9@jgdlC1r{d{9gaw6S=~Ft}KeOK^N}z6* zJZsE|r1n+yC#J_;!9WlB&h&w!VZ8oFI)$BgEV#iiwOF4;Pn7W1xmT*}!OFiZ_Ivil z+Q0t}3wOn*xibv}x_R!(nk|;Jzkz>r*;U-F*54;UmL=tr11*yrsK>TS&v^`DQnP zXL|RCN6@5eJb7~@+IW1LZEyOAFyVQ0nwJdRT-i3HY z*C3*f*=ptX_KUqjDS>m20SDa0vmYhWJXCt_V=<5Izn#_LMaLD;i^8@H?>hVrfBu!uKxLy(5h7Cv8ze{= zoU_xm^(*TV=;Qy8Y~Ai-BDj6?>g}6JR>a2&#VFiklIBB%5OdGE*|~Uv+r{~jGHtKIGiLqx1-7mKb!H}h?@uf5d^yjfbH58ab{0|c?)?@k zYYv5+ONl_`dzC-lx67+dc74A)d4+4d=C|%YDXSH?lz=?*0uIgdk-2HBo1>!IK}x4i zxk=Qq+kMOZ0JMG$D(aDNR~eujA;p^RKTDvu&6AgCm<;`6F-v~Qr#|Gg%~puU;=0!0 zcBR(0bo!He4tL@aP3GAt|I1?U2W0j&G%^e)EwZ`PzORzf*2lZGjp@YfRJMNRFH`T2 z!1^vialKRBV|!wW0R)lVfy3y8f4ua9l+Ou zc*!@BksDT{SfN?}K{YV%gQS=5laq8^tKeg@{2j9dD4VBg>VVIZ0o{gwSSY@By$AcF z90I8kP>Dmt;;rJiEb&Vz>y#uUBp^$Ti(@9jW%gtWmlNRQ`wgSZ*x1%WWaam=qbG(5 zaIc8Z%O7Y|0{&p@OE)tBq8(sLwMhR-8nP|h!TRUw7OHCg>dr4mIhr*7arI zj1n|$Wo76`SJ#%gQ(MCxixLazZoj!hsJ>Et{~c$6hFF8~LY6g4`FKKAYekvAP&LNT zdscr<=s8G$vxFcJQ9g8w4zc%K?63cKweRY;bBf35i1N?;=EnzI0=6{c%|ur^A}a_? zWa4Hq5-*HAC0@tn>95X;YgZZ0{7tocuQi74Vvmb*UK`4NX*s(=#Azz_^v&pDa~6E^ zB$-3+S`50Wn*G_i<7I6BpCW2a&7lURXF5oaOP<)doK~zIax_Hj-E)9@$(P|~pGNB) zT)&K$4~V{Xpf5|H%!Y@DgJF@brW%|skFO2<{!IiolZ50F3f6qnB{87fI5@-%R=2V~ ze>yui_W|N425#?WV7PzNYh}OdmlC!c91w5{r@;9yNJbm`C*hz2`pl~YPJZ7bHgdVctryfc(N zZVO$N>yHn0?tfkkw1|z~Ri=zR3lJF0E8XrF*)i!mzSXnM90DFgf6WyQ7O1@6Jw#!j%b*dhHbF?GI$BYVvjX;>s56 zc!0pb1(-s_t=G`>1F-%y6AF>s%*;PsCVoHw00$idKpOTy zT3X!ublCZ#j=y=02!54RaJ*Vj54{{VEaB%$)NlU3GrQ=JFuTV~yVqb5X%l?KlB&of z{V>ofvqzy5_=5C-WFE8+x04I)teL0q7jdeK7sbfqLTWnqSu?edlwIWKRj=JrV^gu$ z_JyL8_-B9z>H_PLq(mhHSFk7tOn4gb$%4rd`f4|TFb?9V^n(?9(n zv&JQuS1?ZUK2*7Qb{jK>3=yCfP?z1-aEd3n+{y96nCI3le>9NRK!|y%xgUKw!gv=5 zC9p5*ew6>xkQM;v9LT`n!azY^ud8hVvmN17Le!hkP!f(j8hU!(y(V7*tovUiExK!h zPD2+20-zoSA|}kn9~GpIvmTKEdIpI=i_3i<5LZTKVsyEr+}_+ggU@+Sg*CQpcGlR~ z82SlCefA69u1qzqsx1l!Kg9t zZbjJG%FHeSw+EOux;-_DUTb4%hqc^s5M zho-9bBbn@>?Ji4N0fX(w7a93W{d7Uf2NLDuIE6Opc9o4ziM!CwmS%Oq&i7E%k(E$` zhTlhV<0WpvWdgk{u5jI{Vb5zy%yIr4C6@91+049uB!Z|bw6Eu9C_5gPrM5s8$aAF@4E zi7wxyNxk!ES7v3;lj)M*yXD@kcM3M{cM^kR6pM|wB6Ex9L>x%wH}b0^y8b4Hf(4e_ zJNMo6*1@yr-ReCuK2%e8;?Z4`h07?4w*$sA1$X54rW1p0I`@~+B@v7i zu>JqsoI92I;n1;V&M#soDCcEK_yi^=K)pW%8Voe3FAY?e!qCnlP-chOhCq8NWIf0Q z6GoEd)yCwTM7aM0XwmaWz*K>o7j1ugL5^qBtG%A`7wxkL+uIqO9sBhH`nW5yd_Ms) zp!8!VJf(KF}!0ET`MV4^@A2jEfU4xOP>FXjdEJOJHU@0b>GC zGI{|;3G&gw;^fAy(!Q(gq1CCCEV7QA4)(r3W!iP7-a^d^a@!hE9otXJPd(PtgFmjL z^Y`9hx)5OkE%jYwWDhW7f&6vyz+V0xj1Xa#1M928YJd~Q2s6RzWTKIC+@i+xQ62tw zUuB$sM7-F6jVP_CSdf!bvtr{$TUf$ywrc-g;p5Zyu~r|0a>{}gmn7^)Q zDE!I&Krh?t2ILpx_84QCgvsM{FC=k=$VKu?UO87d`&8b1f^U$rs}f6t{!m9^rZe4a z!Ar5%h5q?Osd9#*#?Sw_(mJcI^|`PBdB#ShePuZH<4Loul=uS~R=3;C_(D!Ttj!zS zHSt5}+CfSkA6#J7{=3A}fy_<~N(4H(w3wLQ+^BHQO#thCL*%`H+(y~`ap}*366ajEdBoTCwg%B z7#G|BHgH?01S~MIu_tSt9)2k{FsD6kGzf3yR-|FmIC(Nggu8XMF1mM7*WtSM89OxsQF*5j_@cn)2=F^8Q{oVrTj;9@ zrWC+Al#`c#R+a{cf@=Dhi_#`8jj3F1d4%f<$D)Q-mr)et!Ju_6!0Lujco|cA;W1(z zV`Fcauzd`q0%wvQNUQAYBX#yBlVggOi=~Q)b$nylM7&brWbcGgUqQU)0lCfrxfgvlt@LWSXs}LV zcdj4~hH81W6Uv6|+Cw`5B45MAGQ3xHbmn7JLO5U2PCZr9iKjwIGBXItIl!;g56kq8 zDQ9y9WT%W%87&^ovWS4Z)vQ538Ar=rW(6LN%!)8V{Nvoi1K<$XPy#6;W(xo2>#(gr zeGI)}PfvRxKj6zlLt)DVC=?$b-_itzQmEG;0}gN=W;;867y)?$F2Py^?~o1;mdlhzLAZri|| zy!*>C{!?t6_Sock3~7N$b}3KZt(ups`HX z;teBAMxA5Zk(}f_*9E&(D#jLlIPu65F}MZxCKm@n0*-CM4OrBUu=he}(qh88Z9+Cc zBlPeUGrZs?2|&=?-F1u(2O%Xow*CaMAy28cx%!5(&a9C}0Sr!Ak*bI)HV+Gefl-_4m{7VPJs=+!YU-x2+#kpX!HMg7oj_ z|7(RuhKHj%yWP4%?w{7maUeTeM@v)ZM}01G_;%y<{aQA^x)#-u-@*cIgZZ(FPu*C; z*PK||b1a6$39UQJlY|W){F4!=CD=-AV?DGo=RWBCI!j0xc4>35v8Kg9Jonu3rhL@9 zKQW}@7Ez%J`Idw1Dwi|yq(pvI>?lz;C*C~udico(&BwiQ1ykyGqU;wNZh&vRVG42B z*_!AlhmAkZ{ux1X?2ZzCXp+`n3XP1Mf>IZ#ieTxuKhug+`FLSR)P2_y#33pw+|P+& z#n(H`{{S(z`^*QVjf{*8vgpAJgF&>4n<@3;EHFr1I}GI~j`Lqj5H6QJ0z<_vkX8PQ zvcOY2Zm*@f2uu3Rrt`&SlT)oeT)-nEWMB`WJZhZk{CAH7TNd;Kmu9#x6U+;X+Z?wa z7ffobVTo{BeHrWd{Nvd8u6AQRSIUc*)cewz=@W^4k4BSdgD%<6OpVJka${s{e4x=S z|3+{}sQx&Zlp_gicGYw?Eih4Q=yM&v>Ov@!2s?krg+VWgcVWrmTEi(_=@%{?{g)Hr zNa7Lg#rPy6k8-ta9+{wa(F4O-R`_JGvtD?@!Z^Tqz30cjc1H) zVnYpOe<984TjFH-LH#Jjbm60MiE_vD$zgicoMCSKhV6gPZptfPa(1HKfceRBx2S2 zHA?1>w5X?e?S<8`OR&CvuT{bC>h8N%C)DPYLO&1hA0LP$QQ-US8!A%1$cvcS{*7Z7 zwy+*TK55Cz(`vb(pfaH{7ZsBpoSadkxLCm6kmzM92s0BR*DNbUh1L3c__gaT2}Ik3%uvv8Pj>d>4} zWS>Q`d&mFm4`Y5KfIz}-+sxIc>tferk%IK9gsC1R_w4j>GP6h8@RKUfES|vAf~QO0 zekM~jetXiT7kD*nzx~Xf$^6~b|Ax=OC0uGeCDUf)gBM43Y4-PNP(B;RIQR8J#F?M< z6|E)I-~Ju7b)!&xShK7);y}3Mw0Vpvnjn!D|LvP^5ypnso>ztNShGn0$JoM;49$x?P`Z z<2=G5wH@iTT0a@DJ-jyHTQ+|v-i06!U0<8N$txG!*ll>|--#}RCIIgPHHBwNb5qka zII$35XU~1`)FT+UV$hgda{WQgL4?NzEoCE>&z$`|00?xqo>7F&gWlxdKO0liZ4Rjt z5D{O-A)GD(t1zfC0lJ(JXXwY^jIV{F8@3Uk06sP7-NtGhw?RbtOoDdX`Xl`^c+d=@ zl?`B`LE8s@DHy0WZA+byjJ3L5W1;7jgM&44LUO4;!()gZK5{;D^q)waoHO`Qc;DMD z^mNkEk$3$UPcYn@RJ!r+3cm&w&R2FKfw!6tikk!!4IC6m$tupDJ$Zum zz|2?U;=!pyIh+mcsH zWSJ{ZMsK2iIuG?~X4;CSP$S7&BU>1EyG?E1H}|d=w+yd!a#1iZ-f4FMh zHRPGiOcmd5mG8z2Tt6R>as!G_|10J0dnVq#XBZTCSGJN1dG{GPlQNjqp8kj)NFt-T zc|Re~2B$f2zeD{^OZ#JMfk#(RKB#G{Y{8#$9HB;gJT?5q-GWRgpLmQ`DC4(WY1#1G zc#w%6M&jtIsTGlAj`1t(xGIH2gr2%f0x$v;=rVd_QjZ@p?npJeFcQ=^A-LYiQF~Im zX)9esA{t7tP4;+igLO&RfW!INfy%n;yliqiIO${JAM=f!6%qmK$#0KwpYJZ^_rB*Q zr+nK-cUK`^DVp8R`b*p9JmvrA5+KEzO}7`H6SKUcw=$i4j3bjcgCjVYKx#>d7p;?xoEPzWv0l{sEmd=D35Deu{ zFJJ;oMMZUSM)qxNjAr8%hSy7QT>u{ruyI#bvT9&FXm3>650W9j|E~42mv+?T@&%5R zx=B#hQn`7TxThr#cbyrT`Bq2i1^<_jo1m-WDw-{1*M#n-Tu|`?aq-E`W#}2IMO#!k zrmsDpkuO?tMUt@gWG-cWl+<{X6D7>`rH_Nmr&meUocnWm0^7rzg#sMF#%f{vOS*Gp zslme5SgB#0kn=0&hk$sME5Jbu@q#dya~!bzffpz4l%S=~_|D_wdE)}}G*EIsHDQ2Y zHlU@o6&Bs=)5BMtq{_db2U;7wW8*faHF|g7qz4H%Yd|s2Z$B70jT80ODa*)Of5e*s z!o4pxBjt2dG|V-CRzf%WSVw3o6#7qLzDVrnFG6%*)uyFRd2at*T|F6CT=z0>NQ*SW z^{c%q6$L_wwaI!KgL;}DsdwVI`abgvc+ka5KY8(^T+rk26P{yCDrUhg5^0pWc1}Jg zvakCkTtTKXu0UVx@#Z^aY2D;>mc50(3D?#(e-YTk1Aq+#Q+J@Ydr>lpgBA-!8mFQ+1BF}6`0v_|R)PxD=1yF< zM|{)k&%Tep{T{m9kiv+23FQ-g6Olg$n`IazV4}3{W?Z}JDi9o#E5?qy(y*<+`^vFP zxe{E16#iF}y$5jwkb_@DW<_d7$pQ<~8Jjz)k=%)$VyTmh#Eb$zloQKIC8I&{r}7n& zkV@MzA%3bfbH#S(U10-W+t`RKHYWW0wvyGUUKEA7r-23}5F)g?E&#yrb5NuXuM~fN zZ-*1xxk-BI*mQz$#=)(-3#inezQdDLPi&f2P2^j~jg_r@UX{EWo|O?DHYnsv&wIy= z{4QG@gvxgf4}U3YFD)+if+Pk&mSttJbXwdXTNxgrn83030=ypAu3l}!GkTtgJDIm> z$c@Z!@b1R@*a3=~44PlGuMA8yP(HoXyQ=KZOIC+W0&$Kx$#wA7>#gJK{F|2d;DA=& zkS1byAVuPE=xQGp?V+L*#UafWt9EVbkoH5N4LxrH>-(u zWue5NNf~j-ss>k`OBjni3|2nuoB@KsZ6>74*+u5Q79l1m{eF?O)C_D z{v1S{aG1_W;pIOBzAyNA0=1`X;FDlOJdfy9U;{S#nXBVNB?6Tsl;>9vOo+k~F|ikW zS7C`M>g3aK-Ob#uq9}d^qDB5Wm#Rp^~kg&{z ze8=^BbLRX&LlD?^OiWoB8BHxMrl5cY5;)TdklF#j)nq4wF%4a0yF~?zA?E-71^vfn zYFH?O9z_7p0UXTaB5rW-V|@fKQV|gY7-gB5Gy*jlI!{*CpiZ;@QOT?CGS-4H2QFb@ zeLcMqz@~ouP_l_$?(OZ3iz5?C;U>b>7@qeTe$@gUj#nS5sz)SkmD^Qd3y0x@N*%7{+`>JrAi z>9PJ@6Q;V_+GFT`bA_2;HRPLkBz|vA1e=NR+(iIP;jF!c0s+=dMe-VOO9YP=ao`V5 z0f`s^DGCVD@g(ZY%X?uU^7}X6{rhgf?0t^>df!YBWJeblmqvIVKt0|H2cY&oM4;Pq zEkGnU07z2+C4lY>AVy&HzL9W*bq!c=$TxpD-@$6q9X>hu>Ug3331nm>b?8nnL#uAgBeNx%0>T3-GG()akv-6u^bDypQQAZ!%s zBs(LE(7gBQRl21xoYE0cMx&Yba1(8kcu^-_G&S}*<@Z7f%6;=bR?1^keW7hp`T4@F z;^kPiiVnp&)GC-#nxrWM+r|9@hpK3g4F|bdHE9Udj_;Vuo6XEO@VBDm>38XyogD|jqBI%*^UZEe*mh)zsY)#vC^Ep zf;SA*JkNX5_O`b4K0U!m+jtFPV-Va>U%xKubxhV(TK4&~3y=kNcfs1W79I)=Tgt@J zMcpo;Hg|W&Kikpk+_Qs~3Zy6i3T}$K5(dLgnf(6!4SJZ+^77hbr=%Fj$|7wrV}Qp@ z%cahOcFKZn^hsClK>lB~fDCc`|ID6(YHE%^;k!A2Lp;7Jb%P_~gIbwsr{0o)78yI= zmp&IbfUAw{{+_#ds2PAG@sD^-T4GFa1e)49%qVQQZgr9b>Kl;7la+O83=Ro- zP_EvCo#39;iInNummo8Ex zQfhz@GCwae0p7irQQ&U{>1~0ZL9+k@5tJmjTaP^tG24BD6ty%%vTAH6CJMwwzp+zQ zDGMt6)9;!_bD$u3BDS$n0`&yER+-e=Es7vCYjI)0)Zo+RZxGOYg~tX?dSv9J_CP>v z_l|;HcXJ=eBcNk5HH9htsCbdsuw5_*4D^?ZP>at2O{YszM%O!_p9)75>1(I*5iT}? zj_do80mo6ba=RaHU6s}5{$LJ_M|!a7Aq$4*2m+5vX6WewZ>t66)CfhwK<{lX&zsdf zWC@u!4KIPT_)$3cU49CL_WNUAxqTi1c4RS7$3ZHNLV>-9ugdK)wBOg+iI}KpU0oea zBDf7lslv=aCYFkbd+8rq>L!_?B&DQ$VbmXRSw~CjTVmiv8N*T+7WxrXJycX&1~UYM zugnv+WS6Fd zhCLg|%HHc;QR)_o&@xJ)WA8ogNV zbzZOMcsw7^$MfHw(zJqGv!Az5fAC5@atKT&2>N_8?$1vo65qSn_qsB|IHs;@4Lr^7 zub$vVE9mF-nXIR)iOvlr;oPIU$_N9i;GOu~Kd;dFfpC&T8D{}kv#y`@=zH05!w{Kk zXUp>Wzwcx@bals$9SGqQTZfGj!VkFoObEaEaw^|-rP|T66|Xf_&25{HE+V{8e=J!= z1PZMnecsG{COqM(oLg$CTiH~L!A&;AG~#>qyedhs?mR!8$f=RaLPmJd-t;Ay?e(BD zm_+MB9+{-xKDEXHx;|D>lnnKpziuJ;qWj1vPl}-Qgjzgq_X@x=9BMZT7ccK#|C1^z zG7cPY1uo)k6DpRQ%I7Z;U2A3(80=Xj&% zRy+=Ff4(#uR;|WJeoa?7`Vb|TS85Q3$(}Ei^^H!kU~-HX{}x-#(6nkW`y{1yp zE&8!}BRjjK`G>9iZxIb8Q5HMx$~crUV?942{LZ9jiS=QHY5jYt;dGS-dhWNVq-<;) zJ)f^8GS1Vr#(fWStol39U(Kr7iRoAL`|hb0Q_76n{J1mx$EDM!KZv9ie~mu2hIELj zKJI*TDtnRZD0z$mvdJubFuLF%fz*effF}PkJ^g$8m6#|9!&*!KK)0{r_wrTBx0e^G z%PymZLjLLPHW>f2TSNpI^wWOZuR&&TkMu|PDxp&Y%I1inB<0&m%d>SfOTAFRTJYM} zWSCZkBEBjZL)g_VP4#ZnN-uI~CTr34z>Ng18Dd(up+R)ffzFM}%v<+;zJG$(VX?+N zRh}+#g?ebAj$SHSO5|hi^G3Ow+}*ZfSY%aV5_OU0hR6q@okK}+x?IJw-bIhO8y7DT zmlSTjUfJ5y|95qAh_M_|}pR1xn;6^(j4yJg|j|1Pu(4VV7wv0OCZ< zhHY*bB^9Y;#T7^5PhxA~dEdF3t2rQ$RQyf6XLbJYFs0 z*5y!XN6dH9TM)l}6Gfi~v`L|NNRPx^pnd#Q(Z>^>GDgt{>INvd-+%Oo-n5DQ&v$XI zK!S(gUr+@)<@C8s(l%}TEQn9B(80q)J$?EVqV9$0*)o+V@G?FR2A!qltKt01+hpV) zdNWF|9OofT;lpJ`)%in=64f@3iCdbx*h*&S+jzt~U9zWhgF z9api+?{n%qJ^d{n4Rm4#xj0PIjT%a*>7}tfM^Hq6f;X&6BgU%}9HvG)r-P)s-67yi zxonT3Al0Kk%8GTDN`uMLcq9nnTa4Ym^n@sFRz|lptWuZHG=)`hCbq}`3gD##B%yrg zN2jR-Rm!}wd7_{{`U#d0y?PV{?0Tqxv_u+v4#q4m^qZhxK<6@8Kad|YPP=#t9}+>S z^t&vTGr8LPwkEPW(gi5?iWh&s(XSq(qL7m{_V>fPrt%gW$- zyJAdhc}N!giZjG#KbZM~;Fy>T+>{X3(3@;uU$F|aelvM|ULI-}0lc1x7pavt2k5g} zl!(&v3F=53OFDd4Y9~$MJ|YBP!30Vf@6gh6sU2#tkc_6j9ds`Id8XBZ{CfSdvxa}C zXLpdVIN|tUCR`rHwG+;Sz3x2aJJn}qq^u&kj$1mn4+9hY$67u%#mo!j|eCv)-+Pv1V1__i+yC zHHtr1e`13uCNWkrZLF#Jpr}{#(fGH3@EF^iJtI$p-#I0g&kls1s5tkNv>D=8G; zzYP<5=@4?MvC?@Oig%3-M1!H&KRXn=E_C{Qn7x#_U+~^^cmCdgb}Ug@ za|xS5(fz31PpOKRG^Lp+jWz#8I;3DB^;P=Kq#fa7X^B?GIZmMK!Hv zdL*ypD~}drbia>0d;a|OVsi=MEoQ2hT$OIuG4@^h)K0(e(kFNNvD<_`SME(D&JfaXGzd$MCaH2^w2lj|Fa}C%O%teZedMO+@ zyhRy|TlwiOCv>TIlh={1G2|DO(Za-XowjK4zXf#+#JcPY|E>)6lRc-EgZv3uhq!oM z_#n5EZ&wM+g3CGf`%c6VS)fjhVUL7n@cQsL<=%&`j+%*GJFoS#h;faTk_@+~gyKkJ z7s{a$4wV|6%N{Rfr<7p^&+30FcPJ5wyv!MzVuU)JHo1TESCNTDp~E z09d?q{pIG5Hd?G42U$5ZeLC1LJTP?7a8B$hDCx=yJ6_qKV4;FwKoUEl(EIzpjAO+U zA0c=?YHL{3Svq>Jhc#~U^4xHn0*}jmH+_$J>*3O#NS03ez)VCr! zISXl8S@zQ|xNx3Ln;KILq{pq zRW6^$#>D+W`u_g3TH3vMfnn?%08na!yS}h&K_opY`Qy7YPHQ-r4Cb7ie=hQWox9_ zb@CH;>n$eF8DTtmuu|~fBegDt=9YS*5fGkT7_}pkYL1_k-lwGnn5PjiP-7!h-gPUp zkA=QKQw*AXaf7I=u3o*`y$`BHRTh#hX60#QvUXBV$7=-w-PoeS!j3`PWC7}p3Tf#! zr!evuu*&+UyN+$&<=VLOomJ7T8t>G#cKkRy2;@Rh=<5R}5FXxZyD;cK!AhiU-IDgi zGePlFj0o@ExWr3~ij@sx$uG^DvlK9)4BRLr4@G(FR*_;i{57Xiry==q_QkogH`$(N zXFC(Xix3p7UAJ!B)v^{t=}aNtk&uw^@+Atst=)Q|FOX?M{kdRe6dna#DYr)V6TNN+ zxWF&SK$Ifon%+5zvO)Cl5?!|3>Q3F4u<9>ixrA+I&iZ>BFXh~!NUoB#USKJv9m@*U z)GBcmCnd6KX(4}`pYHY=BVcl)N3Z)fTy`58yVF|5+)LGLbot8>5K^-%|0E7f3OQn;I)iJU$rNa z3lYv}C25a#6=eOaO+i}7u%5dOu?#*F^dCh0eV1r8&w`p%KkOG~G-JphMwvu>)DIfq zi+i+BSNfp#@DTye_)?wwM(%swoKjOO(Vw{)aYw0$#1$i`f}n#7feqa@!Xv+4Jbc3A zw{81CuiC`xw@zr;5eJWjKmul$#EN-B2)+I!ipd@!)ySD*)_Jg<;95WJYWr-WL*bnwdc&@%CW(lC^N9)0-o}*Np!uX-a?n54kpJ=4$c-X2A-960 zc>9N(%M0??oV4U&iBVcad3m{xiBAqvG2>+N9f-qS#4TYCfvne0n;;(KLXg|RHIKPu zj_(GWA}O};3ve2kbaDc|HOS}2=>{J^!g-pd<*z6Dle?bYrT(z|CP#YwluQPSZk%aa z6(0HXcJBDM4RiNPa=5zdsjJ7;MPh7nt}fM|9jz9q8Ama8c_1!?0Y~eVB&mFA2lbWQ zu?>M`8NT6XIerXG&0$WKJmQU8v-jfC)9nGxAeSt1ybvg;LLXCc^5j+t!t^8*M2uRL ze{zt?o7vf+<~jz@4%xbTLY6*bl=j_1tw@QZTR1wDV=TsbVvfU#JVGbMUW43`K=IQ2 zaS3Wh(8BvQi&1%@<6Y^F|2)vh?a1YIHuN};gcZ1Z`w}a+CB%DriI>m0DzC3%q{~YqqBERTZ~P7J!GITY9#}7j)wHr20*nXM2KU|+zd|ct z1x>2bahMvhKlh`D-U0~vIl^t>U(L4bSR>Bg8ahrPOK}>s-CWP|GVzjKw3F6jpZPCb zp-})xAhYojQDm*jRuU0ge}7D}JkN_K&Bx5abL2hde8!)CG(K#yte-ShLX^Yc*28#`po!eCmnE}ke`mAW9*(gO9h;Fvyli|1 zG?0odCf+|PwwPxXbf_JVn$hB;%p5MX{USDSE?`bLjX1NM)tX@*xp-8CrSmpq4^7cp zhyb2`Z?SjojY*zvap-@oX?=0fEE3h7HrU*mPoK46KoD8Eb$j$zX9xo|f$}RLnDL6Y z>3FU_xZRotKGZEB{T7#XRE`pKZ3!ee-GW zEAjOfyuLGEPVjmhO|Tv;+Kb%Rv;O%plu@IDLIu%)fJC6T#lWuQzII!II(Z8YjifW;-{e{cE4}-ZO!Oz}j9oc{f`g-xZ$ZS- zps%ooOs4k*mP~gi!DZTLoI2$>l0j73j;K-7Dj^9@&$VDUJq`@ze4TdNdhXUh@w{f( z?@vQCJ#C5EDvBNqIi`$X4KQ+$$=JXApM0QBSGIZJ& zr4YwTw*Ezu+%O*XF4X6o-pos(Y3HdQ>9BoBiI$NnZNYft@Yh|MT8q#_qNm_GUOBF< zMs5mIP3M1kq!0aQaw~>AGx42$c_mI=z}Ks2>Dd?0H0E#ozb%^nj;!`#KtgGya}XJu zw({|GZV;Sm+Bwyf%S7xLu-v)1sLkUo{RU6uW;JL}^g?t!=(ntCX=#ZFDc1PC8`pix z9>q@cdFQ0sFUh`P7`r%}T7)*X9gBBs?MbA~y!0st0sMcS)=DKDZs3aXC#WGzb*JO13`UM($F9@%W<$`G>cw8>3!8SXx; zKJ<#GNoyNL-Im{gwd+FlhoNZ0{@f$MlOvCJT`YK8Q9 z{2BA!nyv9Uc~h%amiFO;3$4n9S59jpv}!L*16@)Q^|qSbE6Z!|dMDh`)NNiimDP@K z4?Ja^&rRfkN{T#a|NabHy}v zud8#*I~q`(ruNhNz9c^&EXKL=D5LMlK+*G|yd~t((ackFK(A0=( zD$Bx0ibM8k`9p$)f_8re8GNf;d|KSS=af0 zZ-~U(tmXHIb|8E{96sDW5~m>JYwb3^K+sTp=@J7VU;@XBF_>{mEwvwP4lLI#FNE}y zn@9b6r{m|OI+OH%`-t*gh*!aUM%~l}EFQRt9JgTGUDJU?%UhSGx4Dr5%KCi_amMGZ zv_qb1W->+TRYoz6N3|qrlsOL8#|4PAtYu=dj##;ZRC?Vz!Gl}WKDEu3>iYhf;o?<8 zKw3tAo^*M+-DzG3S%7;g96>S1A5@6_0!4e;Mt{;r4|V0&QyRn!jTgL>lzg0y!jLKk zc@vD+?6UMz05w!2Ap7t^bocIjb0W@oh-+u1>%GgJ)`d4~He5BURoguM!0=2KQ`8Bj z@DXL9qE8;V3mrNu!m5xMmI36z@sg@Iaf5Vi8);VENmy9xT;u2yU*{%Y9#)tlD6k-N zhNH((1%q*0x^Bqx-GI5M>BL39A~UEy0e=E|z>>)A@@#iCeSC(v3C)(XNh|9!ztYvl zU)oYOu5IFisulC?j*ZtA=?;Tq5sS#|iZ4U6sI=^?i{tberI-fRe*icW_68R-} zMVE)h2nR>S*>9WNmf=-hP<-~6t34F@LTTwo2xMDPx^c@%Za32yiRWwx%KM%#+;?R~ z{=a+vK^i>)49)D<2yVptGEq|Er*#P??6pt&>+Hk=vO{m2K6g)L-FW1Ul`pmvd)^Bo zTdMsodqV5jOEs~iGc_Nq+AB=ff3O-nmXml|LGSs~qPBZw{lKF}0V-jC(S;GFhAR5v zN!M;&^wnniV*d{x(^Jd#;B1@zx+_)`k!R7sMI%M^8X)|8d?7k9s^Svy2+*-ys5Q@a zpM`89me}Mw^nO7!=3R^tN&28(1awPr86|*N0M7v~C>$N?&{egyE(f_=7j|xb;yLob zGw14SGnLhI%Nyq&3Wl9+u=F<;an=XnN;c(_wO~|B&mjS4uBumw2NKfd{NH#CmeXc> z%U^YHzoxNi6Gi&wssA|Iw5CpWAfwo_ZQF3Q^QFs|+kfI?+IB}6bUW)azin8RH9c9% z3NiENzUQsObUeGn%dPbl#n!Dt0ay_rHv&oHHv}I;^BpJ7-V`A$Z+NEZoH=s_; zU7e^)B4F9d%iI0z2;=mMi4Zsa3N;VJglztJ29)4#kL2;}RLlgpR>2M@{S_;6tf6F7*kw~$;llt{S zr)e9teR%%eBvdUBDAJXHX0QutX5yiOg8B^;E32boE}3jO$f~rEz9o>j-g$&oAshOFtxK()ta7Jnt_n|w35jegcdUj`>B_;IEoyfcBe3kvB3fV`q8Kp zJhUFHt!KtY&7N6jQ+Ii_YfS&=n@J3}n7Jh12ZqOT)g=h@BxVJB5uH7Khf7z{f1OQv zP1Z57gI<=ZpJHRTYirw{1-qw9RUta}t`pib+;}8h*VvRF7$$RV+PGoEzqtcq zYJgAYXS)7k`2Ja9!R;^lPpsj8D-+_KfQ@FHyjp79`<(ongNJ}H(l0~#0RMYq*@vPv zs%6G`2*Y4+M*5ex`?GPhkl&Y6sZ`t_rf5|8*yP?D`z(PiL%;a_^D9go`9NRnrhgxj zN3@>pVVbHMUH*uG>6h}F`a&%&QwZ}9Rh&8#2Pm{4#DMXCzQo=TW@Jglx@)bz&Azxd z7R!bAr~f7%DBDt~rp%uKXAa)jSS*1bk{&4NT+Gnz5;M>8004=J6chwG1>lb(eR7X0 zzjdCy7t}sl<0k`mxsaOgOe^TGg;gxko*a1Lz=I$Xpyyc2c@u;ih+)tzs-~`v)NKu< znNUrY!7xHOVyw7v(0Lt7Dfk|watDyBpaHPN$Weh?!LzAkNj-tBKuzS`e-`4JDuY{d zeh9Q$i*;32p~%_)?b{mu1L!a0iaw8;=G-2fBy_(C_(MyWn(q+DwgZq3C}BxcEg}7l zUuGp&?ESr@zg~$b49UCN*=K*SSogFKcw!$>2mlQyC9iuOGc&uge?UMPs!rJ8cxGlM zrcKISIF~5k9oN-uLq+OSjM!7bRp6@nJPFRuMF?88rsG;FCy-4IE?|ZE!G3lka?YTcsC_K&D@Q68* zA$I{VJdDVMtwI}GXS+qJ@Sc;quEs2X*$_rEFSZ$j0f@>` zR#p~8tgP&aQejMPL=ox6?*n}%@W(2burP9jPgP9~s-F6`wy9fG3$Mf3AbJS{0nIV* zE+3KTWxBeC_POKFQssC!zwov3ZqDt3FYy_Al>i-|;fhe(lW_c~+q;e3+Uviy`^bEy z1A_{=SG`>5&nMlH-=e=%n@&C}h|>ye3H6H{9AwdvTR3d=%pRSfkr5Gv+s0^VPo%37 zzZl64-J-IS=;yy&>V2sD*S(m}s1qb~mc19FnTg5z6KE~_+}z;Zjj(X}dw`NRzO+8z z4P~aYa|)F`Hd-ug2K6djO)8GhX}#=m>gSss@hK(5_<90e+#FcpS(o(iKYNvs92bN3;$`s}0e70==m0`W90L;N16bdig9wfS!TNp(1AsO(Ce6(6grFitLoJDxn8YX z!z{`D+ug+S@93x=Q|yZ@Y+PEJ)=pYH*8>73NRbQmC-{QEw}x5+sHMh4O2$jj0}Oyi zf+#sya3q3FIcY;!*d!}Ut2Jki-|&&&&dFlC-sY-1h5QuBG+#4Hq>j|Regrr%K0n(5 zCm|w~fxI?KG42^B$Exe;%1DIg<+4WboooskOq-HUUzXw8^k)GbwmM(xB2g$m3X!n%c3yo{ zpk8M%F)@LWn3I@(hI1kJD{sdzpmU+N_a62Dq5CDaZHe1;I>@c#I?%52w`HQO`_rHC zoNxTikNsK6)0u)BFG;P<@Rd1MJx=fd?B-Dqsh9uf`R@^(Vn&78uuZA438)m zzDKcDg0?3bi6H-pEfC~ms?ybR<@TT5!u#Pi zk0fFP`qCcSv~KN#`0iJPslTmHL{GqxU>^_lqAX9ozzRCd34$&YKStMIh71_SDIt!G zi-WLANs(~Y^W6y=F&}Gc498t6TmIiA|R@%N97ovcl#b?jfvAy&NGX8My; zU-8e|AxBc3Uf)EKJELQHewy1Up2s2nirh!zM1CQdF+b#U1%=*PZM>Ybs>tH>TUiU&KW3`0Cn54yg=Ij6rB?Gj zr&B65gzF14IYM@@xZ~Q^C$$kMd54Ad*zV^FLiG>R)Z$HM=I4vbJn8i&osBQZrQ}IIRI)S?6%9YLt$=YfOF$c=SJtT*!wCjpA~+;AxZq6V0}(WS5AqqW9V+F zB+e62$j9z-C(Qn1=1GQ(ApyIJ%f)?76}YNv=;IG-?vm#uhF-3Sl0xljZAQmEZGTyd z4S(#j@n)M)+E7wSQkwSJidW}^(sZjtw1c;ZcvMu^U19fPDGF-6Lnh~7uIULBk=S=s z`d6QQ=IETr%^@6+7a^7W@b2bYzm3+XbMHgf*b!p*a)4`D)AQZW)3b$XRdOlpPqk7F zpA}?SnAY!kAzXcDeYjk9M9zp!@aB*|zv)<&InZ{T)^?ni*X>ostJ`7y4;li=?PP6T zy5qNjnAsR4xmaY}9r>+Att5 ziFC&9*h_Mr>Y+EkZ^PoWQlA|0VcK;A$v*6&FA@%b4IFH2pGP;6B)Rk=FbS*J=&zxG zUw2Hn!-2ZYuDcGcOB6s2*OV1`rLiZ@L3o7Tct);T#|A8cAH{5?aEI|RmIQ# zqBf1Y@+b2B=Xu{Ph|+)ffA{3{pDzs}{y(kb?^pZZzt}GNFaBSj$}(Rv<>oo>i@7`L P-%&ZHel%72!j1m|0RBD> diff --git a/images/driver.svg b/images/driver.svg index 0fc7a412d..c3b6faaac 100644 --- a/images/driver.svg +++ b/images/driver.svg @@ -113,9 +113,6 @@ - - - @@ -132,21 +129,10 @@ UDP Rx - - - - - - UDP Tx - - - - - diff --git a/images/gateway.png b/images/gateway.png index d3e91d2d4271aa90ea82233707e206d2c8dfef75..79f5a4fdeada7b2d5bb2a64a5fe92b8103d5a61b 100644 GIT binary patch delta 388 zcmV-~0ek-6gb3k;2#_QJf{`U6f5b;bBN4Q)un3}7QKCZ7#v;KNs6`UNs7-R_A>?t~ zU65ca*aj3t8()R~1=#F8Kg0)=;~}}B1}#DxRY41n|`ZS?YMufWhJgFU~3W{e^XS=5S|jA zSu<3Nw}m^DRCGo7RM?}*1%+=dJyzxyi<4#kvRDfT17L3xb|ew6%LvQM>B*$? z%I|%wmpJ3u`H-yLGP}?TGKn8I(~J|qCtVp8@1vg~24qK#eD6>G968BV#H$q0SS3jc z1COYAsUDX#A$nX!nu68;YQKHe6T?I0>P|m2JelTOFF3ZKR5Z=cL(?oBLER%VML iRadaP2YnLnTK)z*KWEb1ZFzWutpSIv0Rfk-0Rpl&5Vt-6 delta 386 zcmV-|0e$}Agb3e+2#_QJfRQC4e?&t>6C!9~VG$%+8A&1pZ7d?bKrNC8zMACn67o3i zA`)x`+kk>-E??Bb z6CwBf!lK*$j1?PBF@H?a)tSh6l!oKu4vQIYyk@P&=l&gSiKMQ8rA2r|e^Irf@TBnc zT2VE5Tewrn#1g`%!u^_DQ25r=<5hk!IbG#1leK7g6s+yS?sOf;>sZNXIbnG@o?LcS z`Mr<%5=SyW7m?T_){Rb>2|~D;VvJFO_!$--#7lqySiXnoaFgMn&wM+j_BhVj-5_ARKC4de6BFe*pT^avOET7KaG zhTcUl*EG*QxHjPIvZlp%;CvIh9@Ll?`;nT&tf>^do`7=!I, + #[cfg(feature = "driver")] - /// Configures the maximum amount of time to wait for an attempted voice - /// connection to Discord. + /// Configures whether the driver will mix and output stereo or mono Opus data + /// over a voice channel. /// /// Defaults to [`Stereo`]. /// /// [`Stereo`]: MixMode::Stereo pub mix_mode: MixMode, + #[cfg(feature = "driver")] /// Number of concurrently active tracks to allocate memory for. /// @@ -79,6 +85,7 @@ pub struct Config { /// Changes to this field in a running driver will only ever increase /// the capacity of the track store. pub preallocated_tracks: usize, + #[cfg(feature = "driver")] /// Connection retry logic for the [`Driver`]. /// @@ -87,6 +94,7 @@ pub struct Config { /// /// [`Driver`]: crate::driver::Driver pub driver_retry: Retry, + #[cfg(feature = "driver")] /// Configures whether or not each mixed audio packet is [soft-clipped] into the /// [-1, 1] audio range. @@ -101,12 +109,14 @@ pub struct Config { /// /// [soft-clipped]: https://opus-codec.org/docs/opus_api-1.3.1/group__opus__decoder.html#gaff99598b352e8939dded08d96e125e0b pub use_softclip: bool, + #[cfg(feature = "driver")] /// Configures the maximum amount of time to wait for an attempted voice /// connection to Discord. /// /// Defaults to 10 seconds. If set to `None`, connections will never time out. pub driver_timeout: Option, + #[cfg(feature = "driver")] #[derivative(Debug = "ignore")] /// Registry of the inner codecs supported by the driver, adding audiopus-based @@ -116,6 +126,7 @@ pub struct Config { /// /// [`CODEC_REGISTRY`]: static@CODEC_REGISTRY pub codec_registry: &'static CodecRegistry, + #[cfg(feature = "driver")] #[derivative(Debug = "ignore")] /// Registry of the muxers and container formats supported by the driver. @@ -142,7 +153,7 @@ impl Default for Config { Self { #[cfg(feature = "driver")] crypto_mode: CryptoMode::Normal, - #[cfg(feature = "driver")] + #[cfg(all(feature = "driver", feature = "receive"))] decode_mode: DecodeMode::Decrypt, #[cfg(feature = "gateway")] gateway_timeout: Some(Duration::from_secs(10)), @@ -179,6 +190,7 @@ impl Config { self } + #[cfg(feature = "receive")] /// Sets this `Config`'s received packet decryption/decoding behaviour. #[must_use] pub fn decode_mode(mut self, decode_mode: DecodeMode) -> Self { diff --git a/src/driver/connection/mod.rs b/src/driver/connection/mod.rs index 9a92a258d..4c2f1d36d 100644 --- a/src/driver/connection/mod.rs +++ b/src/driver/connection/mod.rs @@ -1,7 +1,9 @@ pub mod error; +#[cfg(feature = "receive")] +use super::tasks::udp_rx; use super::{ - tasks::{message::*, udp_rx, udp_tx, ws as ws_task}, + tasks::{message::*, ws as ws_task}, Config, CryptoMode, }; @@ -18,7 +20,8 @@ use crate::{ use discortp::discord::{IpDiscoveryPacket, IpDiscoveryType, MutableIpDiscoveryPacket}; use error::{Error, Result}; use flume::Sender; -use std::{net::IpAddr, str::FromStr, sync::Arc}; +use socket2::Socket; +use std::{net::IpAddr, str::FromStr}; use tokio::{net::UdpSocket, spawn, time::timeout}; use tracing::{debug, info, instrument}; use url::Url; @@ -103,6 +106,16 @@ impl Connection { } let udp = UdpSocket::bind("0.0.0.0:0").await?; + + // Optimisation for non-receive case: set rx buffer size to zero. + let udp = if cfg!(feature = "receive") { + udp + } else { + let socket = Socket::from(udp.into_std()?); + socket.set_recv_buffer_size(0)?; + UdpSocket::from_std(socket.into())? + }; + udp.connect((ready.ip, ready.port)).await?; // Follow Discord's IP Discovery procedures, in case NAT tunnelling is needed. @@ -164,22 +177,36 @@ impl Connection { info!("WS heartbeat duration {}ms.", hello.heartbeat_interval,); let (ws_msg_tx, ws_msg_rx) = flume::unbounded(); - let (udp_sender_msg_tx, udp_sender_msg_rx) = flume::unbounded(); + #[cfg(feature = "receive")] let (udp_receiver_msg_tx, udp_receiver_msg_rx) = flume::unbounded(); + // NOTE: This causes the UDP Socket on "receive" to be non-blocking, + // and the standard to be blocking. A UDP send should only WouldBlock if + // you're sending more data than the OS can handle (not likely, and + // at that point you should scale horizontally). + // + // If this is a problem for anyone, we can make non-blocking sends + // queue up a delayed send up to a limit. + #[cfg(feature = "receive")] let (udp_rx, udp_tx) = { - let udp_rx = Arc::new(udp); - let udp_tx = Arc::clone(&udp_rx); + let udp_tx = udp.into_std()?; + let udp_rx = UdpSocket::from_std(udp_tx.try_clone()?)?; (udp_rx, udp_tx) }; + #[cfg(not(feature = "receive"))] + let udp_tx = udp.into_std()?; let ssrc = ready.ssrc; let mix_conn = MixerConnection { + #[cfg(feature = "receive")] cipher: cipher.clone(), + #[cfg(not(feature = "receive"))] + cipher, crypto_state: config.crypto_mode.into(), + #[cfg(feature = "receive")] udp_rx: udp_receiver_msg_tx, - udp_tx: udp_sender_msg_tx, + udp_tx, }; interconnect @@ -200,6 +227,7 @@ impl Connection { info.clone(), )); + #[cfg(feature = "receive")] spawn(udp_rx::runner( interconnect.clone(), udp_receiver_msg_rx, @@ -207,7 +235,6 @@ impl Connection { config.clone(), udp_rx, )); - spawn(udp_tx::runner(udp_sender_msg_rx, ssrc, udp_tx)); Ok(Connection { info, diff --git a/src/driver/crypto.rs b/src/driver/crypto.rs index d12795095..db2e898f8 100644 --- a/src/driver/crypto.rs +++ b/src/driver/crypto.rs @@ -3,10 +3,11 @@ use byteorder::{NetworkEndian, WriteBytesExt}; use discortp::{rtp::RtpPacket, MutablePacket}; use rand::Rng; use std::num::Wrapping; +#[cfg(any(feature = "receive", test))] +use xsalsa20poly1305::Tag; use xsalsa20poly1305::{ aead::{AeadInPlace, Error as CryptoError}, Nonce, - Tag, XSalsa20Poly1305 as Cipher, NONCE_SIZE, TAG_SIZE, @@ -110,6 +111,7 @@ impl CryptoMode { } } + #[cfg(any(feature = "receive", test))] /// Decrypts a Discord RT(C)P packet using the given key. /// /// If successful, this returns the number of bytes to be ignored from the diff --git a/src/driver/mod.rs b/src/driver/mod.rs index 20a3f02b5..4045978b6 100644 --- a/src/driver/mod.rs +++ b/src/driver/mod.rs @@ -13,6 +13,7 @@ pub mod bench_internals; pub(crate) mod connection; mod crypto; +#[cfg(feature = "receive")] mod decode_mode; mod mix_mode; pub mod retry; @@ -23,6 +24,7 @@ pub(crate) mod test_config; use connection::error::{Error, Result}; pub use crypto::CryptoMode; pub(crate) use crypto::CryptoState; +#[cfg(feature = "receive")] pub use decode_mode::DecodeMode; pub use mix_mode::MixMode; #[cfg(test)] diff --git a/src/driver/tasks/error.rs b/src/driver/tasks/error.rs index 10a1bb796..339f14ff3 100644 --- a/src/driver/tasks/error.rs +++ b/src/driver/tasks/error.rs @@ -2,7 +2,7 @@ use super::message::*; use crate::ws::Error as WsError; use audiopus::Error as OpusError; use flume::SendError; -use std::io::Error as IoError; +use std::io::{Error as IoError, ErrorKind as IoErrorKind}; use xsalsa20poly1305::aead::Error as CryptoError; #[derive(Debug)] @@ -10,8 +10,8 @@ pub enum Recipient { AuxNetwork, Event, Mixer, + #[cfg(feature = "receive")] UdpRx, - UdpTx, } pub type Result = std::result::Result; @@ -20,6 +20,7 @@ pub type Result = std::result::Result; #[non_exhaustive] pub enum Error { Crypto(CryptoError), + #[cfg(feature = "receive")] /// Received an illegal voice packet on the voice UDP socket. IllegalVoicePacket, InterconnectFailure(Recipient), @@ -30,15 +31,26 @@ pub enum Error { impl Error { pub(crate) fn should_trigger_connect(&self) -> bool { - matches!( - self, - Error::InterconnectFailure(Recipient::AuxNetwork | Recipient::UdpRx | Recipient::UdpTx) - ) + match self { + Error::InterconnectFailure(Recipient::AuxNetwork) => true, + #[cfg(feature = "receive")] + Error::InterconnectFailure(Recipient::UdpRx) => true, + _ => false, + } } pub(crate) fn should_trigger_interconnect_rebuild(&self) -> bool { matches!(self, Error::InterconnectFailure(Recipient::Event)) } + + // This prevents a `WouldBlock` from triggering a full reconnect, + // instead simply dropping the packet. + pub(crate) fn disarm_would_block(self) -> Result<()> { + match self { + Self::Io(i) if i.kind() == IoErrorKind::WouldBlock => Ok(()), + e => Err(e), + } + } } impl From for Error { @@ -77,18 +89,13 @@ impl From> for Error { } } +#[cfg(feature = "receive")] impl From> for Error { fn from(_e: SendError) -> Error { Error::InterconnectFailure(Recipient::UdpRx) } } -impl From> for Error { - fn from(_e: SendError) -> Error { - Error::InterconnectFailure(Recipient::UdpTx) - } -} - impl From for Error { fn from(e: WsError) -> Error { Error::Ws(e) diff --git a/src/driver/tasks/message/mixer.rs b/src/driver/tasks/message/mixer.rs index 175295aa7..585e1359a 100644 --- a/src/driver/tasks/message/mixer.rs +++ b/src/driver/tasks/message/mixer.rs @@ -1,21 +1,24 @@ #![allow(missing_docs)] -use super::{Interconnect, TrackContext, UdpRxMessage, UdpTxMessage, WsMessage}; +#[cfg(feature = "receive")] +use super::UdpRxMessage; +use super::{Interconnect, TrackContext, WsMessage}; use crate::{ driver::{Bitrate, Config, CryptoState}, input::{AudioStreamError, Compose, Parsed}, }; use flume::Sender; -use std::sync::Arc; +use std::{net::UdpSocket, sync::Arc}; use symphonia_core::{errors::Error as SymphoniaError, formats::SeekedTo}; use xsalsa20poly1305::XSalsa20Poly1305 as Cipher; pub struct MixerConnection { pub cipher: Cipher, pub crypto_state: CryptoState, + #[cfg(feature = "receive")] pub udp_rx: Sender, - pub udp_tx: Sender, + pub udp_tx: UdpSocket, } pub enum MixerMessage { diff --git a/src/driver/tasks/message/mod.rs b/src/driver/tasks/message/mod.rs index 0009c177a..ba69101ab 100644 --- a/src/driver/tasks/message/mod.rs +++ b/src/driver/tasks/message/mod.rs @@ -4,11 +4,13 @@ mod core; mod disposal; mod events; mod mixer; +#[cfg(feature = "receive")] mod udp_rx; -mod udp_tx; mod ws; -pub use self::{core::*, disposal::*, events::*, mixer::*, udp_rx::*, udp_tx::*, ws::*}; +#[cfg(feature = "receive")] +pub use self::udp_rx::*; +pub use self::{core::*, disposal::*, events::*, mixer::*, ws::*}; use flume::Sender; use tokio::spawn; diff --git a/src/driver/tasks/message/udp_tx.rs b/src/driver/tasks/message/udp_tx.rs deleted file mode 100644 index 16b7ad1fd..000000000 --- a/src/driver/tasks/message/udp_tx.rs +++ /dev/null @@ -1,4 +0,0 @@ -#![allow(missing_docs)] - -// TODO: do something cheaper. -pub type UdpTxMessage = Vec; diff --git a/src/driver/tasks/mixer/mod.rs b/src/driver/tasks/mixer/mod.rs index 7be73d546..648bfd686 100644 --- a/src/driver/tasks/mixer/mod.rs +++ b/src/driver/tasks/mixer/mod.rs @@ -10,7 +10,11 @@ use result::*; use state::*; pub use track::*; -use super::{disposal, error::Result, message::*}; +use super::{ + disposal, + error::{Error, Result}, + message::*, +}; use crate::{ constants::*, driver::MixMode, @@ -26,6 +30,7 @@ use audiopus::{ Bitrate, }; use discortp::{ + discord::MutableKeepalivePacket, rtp::{MutableRtpPacket, RtpPacket}, MutablePacket, }; @@ -73,6 +78,9 @@ pub struct Mixer { thread_pool: BlockyTaskPool, pub ws: Option>, + pub keepalive_deadline: Instant, + pub keepalive_packet: [u8; MutableKeepalivePacket::minimum_packet_size()], + pub tracks: Vec, track_handles: Vec, @@ -104,6 +112,7 @@ impl Mixer { let soft_clip = SoftClip::new(config.mix_mode.to_opus()); let mut packet = [0u8; VOICE_PACKET_MAX]; + let keepalive_packet = [0u8; MutableKeepalivePacket::minimum_packet_size()]; let mut rtp = MutableRtpPacket::new(&mut packet[..]).expect( "FATAL: Too few bytes in self.packet for RTP header.\ @@ -146,12 +155,14 @@ impl Mixer { SignalSpec::new_with_layout(SAMPLE_RATE_RAW as u32, Layout::Stereo), ); + let deadline = Instant::now(); + Self { bitrate, config, conn_active: None, content_prep_sequence: 0, - deadline: Instant::now(), + deadline, disposer, encoder, interconnect, @@ -165,6 +176,9 @@ impl Mixer { thread_pool, ws: None, + keepalive_deadline: deadline, + keepalive_packet, + tracks, track_handles, @@ -213,7 +227,14 @@ impl Mixer { // The above action may have invalidated the connection; need to re-check! // Also, if we're in a test mode we should unconditionally run packet mixing code. if self.conn_active.is_some() || ignore_check { - if let Err(e) = self.cycle().and_then(|_| self.audio_commands_events()) { + if let Err(e) = self + .cycle() + .and_then(|_| self.audio_commands_events()) + .and_then(|_| { + self.check_and_send_keepalive() + .or_else(Error::disarm_would_block) + }) + { events_failure |= e.should_trigger_interconnect_rebuild(); conn_failure |= e.should_trigger_connect(); @@ -313,6 +334,11 @@ impl Mixer { rtp.set_sequence(random::().into()); rtp.set_timestamp(random::().into()); self.deadline = Instant::now(); + + let mut ka = MutableKeepalivePacket::new(&mut self.keepalive_packet[..]) + .expect("FATAL: Insufficient bytes given to keepalive packet."); + ka.set_ssrc(ssrc); + self.keepalive_deadline = self.deadline + UDP_KEEPALIVE_GAP; Ok(()) }, MixerMessage::DropConn => { @@ -321,9 +347,12 @@ impl Mixer { }, MixerMessage::ReplaceInterconnect(i) => { self.prevent_events = false; + if let Some(ws) = &self.ws { conn_failure |= ws.send(WsMessage::ReplaceInterconnect(i.clone())).is_err(); } + + #[cfg(feature = "receive")] if let Some(conn) = &self.conn_active { conn_failure |= conn .udp_rx @@ -357,13 +386,19 @@ impl Mixer { ); } - self.config = Arc::new(new_config.clone()); + self.config = Arc::new( + #[cfg(feature = "receive")] + new_config.clone(), + #[cfg(not(feature = "receive"))] + new_config, + ); if self.tracks.capacity() < self.config.preallocated_tracks { self.tracks .reserve(self.config.preallocated_tracks - self.tracks.len()); } + #[cfg(feature = "receive")] if let Some(conn) = &self.conn_active { conn_failure |= conn .udp_rx @@ -674,7 +709,7 @@ impl Mixer { let send_buffer = self.config.use_softclip.then(|| &softclip_buffer[..]); #[cfg(test)] - if let Some(OutputMode::Raw(tx)) = &self.config.override_connection { + let send_status = if let Some(OutputMode::Raw(tx)) = &self.config.override_connection { let msg = match mix_len { MixType::Passthrough(len) if len == SILENT_FRAME.len() => OutputMessage::Silent, MixType::Passthrough(len) => { @@ -693,12 +728,18 @@ impl Mixer { }; drop(tx.send(msg.into())); + + Ok(()) } else { - self.prep_and_send_packet(send_buffer, mix_len)?; - } + self.prep_and_send_packet(send_buffer, mix_len) + }; #[cfg(not(test))] - self.prep_and_send_packet(send_buffer, mix_len)?; + let send_status = self.prep_and_send_packet(send_buffer, mix_len); + + send_status.or_else(Error::disarm_would_block)?; + + self.advance_rtp_counters(); // Zero out all planes of the mix buffer if any audio was written. if matches!(mix_len, MixType::MixedPcm(a) if a > 0) { @@ -770,25 +811,36 @@ impl Mixer { // Test mode: send unencrypted (compressed) packets to local receiver. drop(tx.send(self.packet[..index].to_vec().into())); } else { - conn.udp_tx.send(self.packet[..index].to_vec())?; + conn.udp_tx.send(&self.packet[..index])?; } #[cfg(not(test))] { // Normal operation: send encrypted payload to UDP Tx task. - - // TODO: This is dog slow, don't do this. - // Can we replace this with a shared ring buffer + semaphore? - // or the BBQueue crate? - conn.udp_tx.send(self.packet[..index].to_vec())?; + conn.udp_tx.send(&self.packet[..index])?; } + Ok(()) + } + + #[inline] + fn advance_rtp_counters(&mut self) { let mut rtp = MutableRtpPacket::new(&mut self.packet[..]).expect( "FATAL: Too few bytes in self.packet for RTP header.\ (Blame: VOICE_PACKET_MAX?)", ); rtp.set_sequence(rtp.get_sequence() + 1); rtp.set_timestamp(rtp.get_timestamp() + MONO_FRAME_SIZE as u32); + } + + #[inline] + fn check_and_send_keepalive(&mut self) -> Result<()> { + if let Some(conn) = self.conn_active.as_mut() { + if Instant::now() >= self.keepalive_deadline { + conn.udp_tx.send(&self.keepalive_packet)?; + self.keepalive_deadline += UDP_KEEPALIVE_GAP; + } + } Ok(()) } diff --git a/src/driver/tasks/mod.rs b/src/driver/tasks/mod.rs index 945c6e222..584375b12 100644 --- a/src/driver/tasks/mod.rs +++ b/src/driver/tasks/mod.rs @@ -5,8 +5,8 @@ pub mod error; mod events; pub mod message; pub mod mixer; +#[cfg(feature = "receive")] pub(crate) mod udp_rx; -pub(crate) mod udp_tx; pub(crate) mod ws; use std::time::Duration; diff --git a/src/driver/tasks/udp_rx.rs b/src/driver/tasks/udp_rx.rs index 2d8e83074..3a3d1fc50 100644 --- a/src/driver/tasks/udp_rx.rs +++ b/src/driver/tasks/udp_rx.rs @@ -22,7 +22,7 @@ use discortp::{ PacketSize, }; use flume::Receiver; -use std::{collections::HashMap, convert::TryInto, sync::Arc}; +use std::{collections::HashMap, convert::TryInto}; use tokio::{net::UdpSocket, select}; use tracing::{error, instrument, trace, warn}; use xsalsa20poly1305::XSalsa20Poly1305 as Cipher; @@ -240,7 +240,7 @@ struct UdpRx { config: Config, packet_buffer: [u8; VOICE_PACKET_MAX], rx: Receiver, - udp_socket: Arc, + udp_socket: UdpSocket, } impl UdpRx { @@ -395,7 +395,7 @@ pub(crate) async fn runner( rx: Receiver, cipher: Cipher, config: Config, - udp_socket: Arc, + udp_socket: UdpSocket, ) { trace!("UDP receive handle started."); diff --git a/src/driver/tasks/udp_tx.rs b/src/driver/tasks/udp_tx.rs deleted file mode 100644 index 7eb9e852d..000000000 --- a/src/driver/tasks/udp_tx.rs +++ /dev/null @@ -1,63 +0,0 @@ -use super::message::*; -use crate::constants::*; -use discortp::discord::MutableKeepalivePacket; -use flume::Receiver; -use std::sync::Arc; -use tokio::{ - net::UdpSocket, - time::{timeout_at, Instant}, -}; -use tracing::{error, instrument, trace}; - -struct UdpTx { - ssrc: u32, - rx: Receiver, - udp_tx: Arc, -} - -impl UdpTx { - async fn run(&mut self) { - let mut keepalive_bytes = [0u8; MutableKeepalivePacket::minimum_packet_size()]; - let mut ka = MutableKeepalivePacket::new(&mut keepalive_bytes[..]) - .expect("FATAL: Insufficient bytes given to keepalive packet."); - ka.set_ssrc(self.ssrc); - - let mut ka_time = Instant::now() + UDP_KEEPALIVE_GAP; - - loop { - match timeout_at(ka_time, self.rx.recv_async()).await { - Err(_) => { - trace!("Sending UDP Keepalive."); - if let Err(e) = self.udp_tx.send(&keepalive_bytes[..]).await { - error!("Fatal UDP keepalive send error: {:?}.", e); - break; - } - ka_time += UDP_KEEPALIVE_GAP; - }, - Ok(Ok(p)) => - if let Err(e) = self.udp_tx.send(&p[..]).await { - error!("Fatal UDP packet send error: {:?}.", e); - break; - }, - Ok(Err(flume::RecvError::Disconnected)) => { - break; - }, - } - } - } -} - -#[instrument(skip(udp_msg_rx))] -pub(crate) async fn runner(udp_msg_rx: Receiver, ssrc: u32, udp_tx: Arc) { - trace!("UDP transmit handle started."); - - let mut txer = UdpTx { - ssrc, - rx: udp_msg_rx, - udp_tx, - }; - - txer.run().await; - - trace!("UDP transmit handle stopped."); -} diff --git a/src/events/context/data/mod.rs b/src/events/context/data/mod.rs index abc385e29..6021e4dab 100644 --- a/src/events/context/data/mod.rs +++ b/src/events/context/data/mod.rs @@ -3,10 +3,16 @@ //! [`EventContext`]: super::EventContext mod connect; mod disconnect; +#[cfg(feature = "receive")] mod rtcp; +#[cfg(feature = "receive")] mod speaking; +#[cfg(feature = "receive")] mod voice; +#[cfg(feature = "receive")] use discortp::{rtcp::Rtcp, rtp::Rtp}; -pub use self::{connect::*, disconnect::*, rtcp::*, speaking::*, voice::*}; +pub use self::{connect::*, disconnect::*}; +#[cfg(feature = "receive")] +pub use self::{rtcp::*, speaking::*, voice::*}; diff --git a/src/events/context/internal_data.rs b/src/events/context/internal_data.rs index e26d5ad66..a3b71b60e 100644 --- a/src/events/context/internal_data.rs +++ b/src/events/context/internal_data.rs @@ -1,6 +1,5 @@ use super::context_data::*; use crate::ConnectionInfo; -use discortp::{rtcp::Rtcp, rtp::Rtp}; #[derive(Clone, Debug, Eq, Hash, PartialEq)] pub struct InternalConnect { @@ -15,27 +14,6 @@ pub struct InternalDisconnect { pub info: ConnectionInfo, } -#[derive(Clone, Debug, Eq, Hash, PartialEq)] -pub struct InternalSpeakingUpdate { - pub ssrc: u32, - pub speaking: bool, -} - -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct InternalVoicePacket { - pub audio: Option>, - pub packet: Rtp, - pub payload_offset: usize, - pub payload_end_pad: usize, -} - -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct InternalRtcpPacket { - pub packet: Rtcp, - pub payload_offset: usize, - pub payload_end_pad: usize, -} - impl<'a> From<&'a InternalConnect> for ConnectData<'a> { fn from(val: &'a InternalConnect) -> Self { Self { @@ -60,32 +38,62 @@ impl<'a> From<&'a InternalDisconnect> for DisconnectData<'a> { } } -impl<'a> From<&'a InternalSpeakingUpdate> for SpeakingUpdateData { - fn from(val: &'a InternalSpeakingUpdate) -> Self { - Self { - speaking: val.speaking, - ssrc: val.ssrc, +#[cfg(feature = "receive")] +mod receive { + use super::*; + use discortp::{rtcp::Rtcp, rtp::Rtp}; + + #[derive(Clone, Debug, Eq, Hash, PartialEq)] + pub struct InternalSpeakingUpdate { + pub ssrc: u32, + pub speaking: bool, + } + + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct InternalVoicePacket { + pub audio: Option>, + pub packet: Rtp, + pub payload_offset: usize, + pub payload_end_pad: usize, + } + + #[derive(Clone, Debug, Eq, PartialEq)] + pub struct InternalRtcpPacket { + pub packet: Rtcp, + pub payload_offset: usize, + pub payload_end_pad: usize, + } + + impl<'a> From<&'a InternalSpeakingUpdate> for SpeakingUpdateData { + fn from(val: &'a InternalSpeakingUpdate) -> Self { + Self { + speaking: val.speaking, + ssrc: val.ssrc, + } } } -} -impl<'a> From<&'a InternalVoicePacket> for VoiceData<'a> { - fn from(val: &'a InternalVoicePacket) -> Self { - Self { - audio: &val.audio, - packet: &val.packet, - payload_offset: val.payload_offset, - payload_end_pad: val.payload_end_pad, + impl<'a> From<&'a InternalVoicePacket> for VoiceData<'a> { + fn from(val: &'a InternalVoicePacket) -> Self { + Self { + audio: &val.audio, + packet: &val.packet, + payload_offset: val.payload_offset, + payload_end_pad: val.payload_end_pad, + } } } -} -impl<'a> From<&'a InternalRtcpPacket> for RtcpData<'a> { - fn from(val: &'a InternalRtcpPacket) -> Self { - Self { - packet: &val.packet, - payload_offset: val.payload_offset, - payload_end_pad: val.payload_end_pad, + impl<'a> From<&'a InternalRtcpPacket> for RtcpData<'a> { + fn from(val: &'a InternalRtcpPacket) -> Self { + Self { + packet: &val.packet, + payload_offset: val.payload_offset, + payload_end_pad: val.payload_end_pad, + } } } } + +#[cfg(feature = "receive")] +pub use receive::*; diff --git a/src/events/context/mod.rs b/src/events/context/mod.rs index 693dc034c..2ea092161 100644 --- a/src/events/context/mod.rs +++ b/src/events/context/mod.rs @@ -26,24 +26,35 @@ pub enum EventContext<'a> { /// [`EventStore::add_event`]: EventStore::add_event /// [`TrackHandle::add_event`]: TrackHandle::add_event Track(&'a [(&'a TrackState, &'a TrackHandle)]), + /// Speaking state update, typically describing how another voice /// user is transmitting audio data. Clients must send at least one such /// packet to allow SSRC/UserID matching. SpeakingStateUpdate(Speaking), + + #[cfg(feature = "receive")] /// Speaking state transition, describing whether a given source has started/stopped /// transmitting. This fires in response to a silent burst, or the first packet /// breaking such a burst. SpeakingUpdate(SpeakingUpdateData), + + #[cfg(feature = "receive")] /// Opus audio packet, received from another stream. VoicePacket(VoiceData<'a>), + + #[cfg(feature = "receive")] /// Telemetry/statistics packet, received from another stream. RtcpPacket(RtcpData<'a>), + /// Fired whenever a client disconnects. ClientDisconnect(ClientDisconnect), + /// Fires when this driver successfully connects to a voice channel. DriverConnect(ConnectData<'a>), + /// Fires when this driver successfully reconnects after a network error. DriverReconnect(ConnectData<'a>), + /// Fires when this driver fails to connect to, or drops from, a voice channel. DriverDisconnect(DisconnectData<'a>), } @@ -51,8 +62,11 @@ pub enum EventContext<'a> { #[derive(Debug)] pub enum CoreContext { SpeakingStateUpdate(Speaking), + #[cfg(feature = "receive")] SpeakingUpdate(InternalSpeakingUpdate), + #[cfg(feature = "receive")] VoicePacket(InternalVoicePacket), + #[cfg(feature = "receive")] RtcpPacket(InternalRtcpPacket), ClientDisconnect(ClientDisconnect), DriverConnect(InternalConnect), @@ -64,9 +78,12 @@ impl<'a> CoreContext { pub(crate) fn to_user_context(&'a self) -> EventContext<'a> { match self { Self::SpeakingStateUpdate(evt) => EventContext::SpeakingStateUpdate(*evt), + #[cfg(feature = "receive")] Self::SpeakingUpdate(evt) => EventContext::SpeakingUpdate(SpeakingUpdateData::from(evt)), + #[cfg(feature = "receive")] Self::VoicePacket(evt) => EventContext::VoicePacket(VoiceData::from(evt)), + #[cfg(feature = "receive")] Self::RtcpPacket(evt) => EventContext::RtcpPacket(RtcpData::from(evt)), Self::ClientDisconnect(evt) => EventContext::ClientDisconnect(*evt), Self::DriverConnect(evt) => EventContext::DriverConnect(ConnectData::from(evt)), @@ -84,8 +101,11 @@ impl EventContext<'_> { pub fn to_core_event(&self) -> Option { match self { Self::SpeakingStateUpdate(_) => Some(CoreEvent::SpeakingStateUpdate), + #[cfg(feature = "receive")] Self::SpeakingUpdate(_) => Some(CoreEvent::SpeakingUpdate), + #[cfg(feature = "receive")] Self::VoicePacket(_) => Some(CoreEvent::VoicePacket), + #[cfg(feature = "receive")] Self::RtcpPacket(_) => Some(CoreEvent::RtcpPacket), Self::ClientDisconnect(_) => Some(CoreEvent::ClientDisconnect), Self::DriverConnect(_) => Some(CoreEvent::DriverConnect), diff --git a/src/events/core.rs b/src/events/core.rs index b73ac0b0d..cec06d127 100644 --- a/src/events/core.rs +++ b/src/events/core.rs @@ -6,8 +6,26 @@ /// /// ## Events from other users /// Songbird can observe when a user *speaks for the first time* ([`SpeakingStateUpdate`]), -/// when a client leaves the session ([`ClientDisconnect`]), voice packets ([`VoicePacket`]), and -/// telemetry data ([`RtcpPacket`]). The format of voice packets is described by [`VoiceData`]. +/// when a client leaves the session ([`ClientDisconnect`]). +/// +/// When the `"receive"` feature is enabled, songbird can also handle voice packets +#[cfg_attr(feature = "receive", doc = "([`VoicePacket`](Self::VoicePacket)),")] +#[cfg_attr(not(feature = "receive"), doc = "(`VoicePacket`),")] +/// detect speech starting/stopping +#[cfg_attr( + feature = "receive", + doc = "([`SpeakingUpdate`](Self::SpeakingUpdate))," +)] +#[cfg_attr(not(feature = "receive"), doc = "(`SpeakingUpdate`),")] +/// and handle telemetry data +#[cfg_attr(feature = "receive", doc = "([`RtcpPacket`](Self::RtcpPacket)).")] +#[cfg_attr(not(feature = "receive"), doc = "(`RtcpPacket`).")] +/// The format of voice packets is described by +#[cfg_attr( + feature = "receive", + doc = "[`VoiceData`](super::context::data::VoiceData)." +)] +#[cfg_attr(not(feature = "receive"), doc = "`VoiceData`.")] /// /// To detect when a user connects, you must correlate gateway (e.g., `VoiceStateUpdate`) events /// from the main part of your bot. @@ -15,15 +33,12 @@ /// To obtain a user's SSRC, you must use [`SpeakingStateUpdate`] events. /// /// [`EventData`]: super::EventData -/// [`VoiceData`]: super::context::data::VoiceData /// [`SpeakingStateUpdate`]: Self::SpeakingStateUpdate /// [`ClientDisconnect`]: Self::ClientDisconnect -/// [`VoicePacket`]: Self::VoicePacket -/// [`RtcpPacket`]: Self::RtcpPacket #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] #[non_exhaustive] pub enum CoreEvent { - /// Speaking state update, typically describing how another voice + /// Speaking state update from the WS gateway, typically describing how another voice /// user is transmitting audio data. Clients must send at least one such /// packet to allow SSRC/UserID matching. /// @@ -32,24 +47,34 @@ pub enum CoreEvent { /// Note: this will fire when a user starts speaking for the first time, /// or changes their capabilities. SpeakingStateUpdate, + + #[cfg(feature = "receive")] /// Fires when a source starts speaking, or stops speaking /// (*i.e.*, 5 consecutive silent frames). SpeakingUpdate, + + #[cfg(feature = "receive")] /// Fires on receipt of a voice packet from another stream in the voice call. /// /// As RTP packets do not map to Discord's notion of users, SSRCs must be mapped /// back using the user IDs seen through client connection, disconnection, /// or speaking state update. VoicePacket, + + #[cfg(feature = "receive")] /// Fires on receipt of an RTCP packet, containing various call stats /// such as latency reports. RtcpPacket, + /// Fires whenever a user disconnects from the same stream as the bot. ClientDisconnect, + /// Fires when this driver successfully connects to a voice channel. DriverConnect, + /// Fires when this driver successfully reconnects after a network error. DriverReconnect, + /// Fires when this driver fails to connect to, or drops from, a voice channel. DriverDisconnect, } diff --git a/src/lib.rs b/src/lib.rs index 6310800ee..54324b14b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,11 +13,13 @@ //! `"gateway"` and `"[serenity/twilight]"` plus `"[rustls/native]"` features. You can even run //! driverless, to help manage your [lavalink] sessions. //! * A standalone driver for voice calls, via the `"driver"` feature. If you can create -//! a [`ConnectionInfo`] using any other gateway, or language for your bot, then you +//! a `ConnectionInfo` using any other gateway, or language for your bot, then you //! can run the songbird voice driver. -//! * And, by default, a fully featured voice system featuring events, queues, RT(C)P packet -//! handling, seeking on compatible streams, shared multithreaded audio stream caches, -//! and direct Opus data passthrough. +//! * Voice receive and RT(C)P packet handling via the `"receive"` feature. +//! * SIMD-accelerated JSON decoding via the `"simd-json"` feature. +//! * And, by default, a fully featured voice system featuring events, queues, +//! seeking on compatible streams, shared multithreaded audio stream caches, +//! and direct Opus data passthrough from DCA files. //! //! ## Intents //! Songbird's gateway functionality requires you to specify the `GUILD_VOICE_STATES` intent. @@ -101,7 +103,7 @@ pub mod tracks; #[cfg(feature = "driver")] mod ws; -#[cfg(feature = "driver")] +#[cfg(all(feature = "driver", feature = "receive"))] pub use discortp as packet; #[cfg(feature = "driver")] pub use serenity_voice_model as model;