1
0
mirror of https://github.com/stryan/mumble-discord-bridge.git synced 2024-11-16 20:15:40 -05:00

chore: audio-flow.svg

This commit is contained in:
Tyler Stiene 2021-04-12 01:44:19 -04:00
parent 026cdff797
commit 87f1e1a87e

511
docs/audio-flow.drawio.svg Normal file
View File

@ -0,0 +1,511 @@
<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1451px" height="683px" viewBox="-0.5 -0.5 1451 683" content="&lt;mxfile&gt;&lt;diagram id=&quot;qu8lI8YA13W6xOlVKUey&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs/>
<g>
<rect x="330" y="142" width="880" height="410" rx="61.5" ry="61.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 878px; height: 1px; padding-top: 347px; margin-left: 331px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
Mumble-Discord-Bridge
</b>
</div>
</div>
</div>
</foreignObject>
<text x="770" y="351" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Mumble-Discord-Bridge
</text>
</switch>
</g>
<path d="M 520 269.5 L 542.9 269.5" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 549.65 269.5 L 540.65 274 L 542.9 269.5 L 540.65 265 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<rect x="370" y="192" width="150" height="310" rx="22.5" ry="22.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 347px; margin-left: 371px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
Gumble
</b>
</div>
</div>
</div>
</foreignObject>
<text x="445" y="351" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Gumble
</text>
</switch>
</g>
<path d="M 830 269 L 856.9 269" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 863.65 269 L 854.65 273.5 L 856.9 269 L 854.65 264.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<rect x="710" y="234" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 269px; margin-left: 711px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
fromMumbleMixer
<br/>
</b>
(10ms ticker)
</div>
</div>
</div>
</foreignObject>
<text x="770" y="273" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
fromMumbleMixer...
</text>
</switch>
</g>
<path d="M 987 269 L 1007 269 L 1016.9 269.25" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 1023.65 269.42 L 1014.54 273.69 L 1016.9 269.25 L 1014.76 264.69 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<rect x="867" y="234" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 269px; margin-left: 868px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
discordSendPCM
</b>
<br/>
(20 ms ticker)
<br/>
opus encode
<br/>
Speaking state update
</div>
</div>
</div>
</foreignObject>
<text x="927" y="273" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
discordSendPCM...
</text>
</switch>
</g>
<path d="M 1027 424.5 L 981.5 424.5 L 946.1 424.89" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 939.35 424.96 L 948.3 420.36 L 946.1 424.89 L 948.4 429.36 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 1187.1 347 L 1289.9 347" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 1180.35 347 L 1189.35 342.5 L 1187.1 347 L 1189.35 351.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 1296.65 347 L 1287.65 351.5 L 1289.9 347 L 1287.65 342.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 355px; margin-left: 1250px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">
Websocket
</div>
</div>
</div>
</foreignObject>
<text x="1250" y="358" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
Websocket
</text>
</switch>
</g>
<rect x="1027" y="192" width="150" height="310" rx="22.5" ry="22.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 347px; margin-left: 1028px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
Discordgo
</b>
</div>
</div>
</div>
</foreignObject>
<text x="1102" y="351" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Discordgo
</text>
</switch>
</g>
<rect x="1042" y="222" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 257px; margin-left: 1043px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">
send
<br/>
(internal ticker)
</div>
</div>
</div>
</foreignObject>
<text x="1102" y="261" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">
send...
</text>
</switch>
</g>
<rect x="0" y="192" width="150" height="310" rx="22.5" ry="22.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 347px; margin-left: 1px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
Mumble
</b>
</div>
</div>
</div>
</foreignObject>
<text x="75" y="351" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Mumble
</text>
</switch>
</g>
<path d="M 816 425 L 740.1 425" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 733.35 425 L 742.35 420.5 L 740.1 425 L 742.35 429.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<rect x="816" y="390" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 425px; margin-left: 817px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
discrodRecievePCM
</b>
<br/>
(wait on packets)
</div>
</div>
</div>
</foreignObject>
<text x="876" y="429" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
discrodRecievePCM...
</text>
</switch>
</g>
<path d="M 610 425 L 565 425 L 530.1 424.61" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 523.35 424.54 L 532.4 420.14 L 530.1 424.61 L 532.3 429.14 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<rect x="610" y="390" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 425px; margin-left: 611px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
fromDiscordMixer
<br/>
</b>
(10ms ticker)
</div>
</div>
</div>
</foreignObject>
<text x="670" y="429" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
fromDiscordMixer...
</text>
</switch>
</g>
<path d="M 359.9 347 L 160.1 347" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 366.65 347 L 357.65 351.5 L 359.9 347 L 357.65 342.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 153.35 347 L 162.35 342.5 L 160.1 347 L 162.35 351.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 362px; margin-left: 251px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">
UDP/TCP
<br/>
Packets of variable length
</div>
</div>
</div>
</foreignObject>
<text x="251" y="365" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
UDP/TCP...
</text>
</switch>
</g>
<rect x="1300" y="192" width="150" height="310" rx="22.5" ry="22.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 347px; margin-left: 1301px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
Mumble
</b>
</div>
</div>
</div>
</foreignObject>
<text x="1375" y="351" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
Mumble
</text>
</switch>
</g>
<path d="M 536 269 L 516 59" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 800 636 L 780 426" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 1000 269 L 980 59" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 845 269 L 825 59" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 1020 635 L 1000 425" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 578 635 L 558 425" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<rect x="494" y="592" width="160" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 637px; margin-left: 495px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
chan gumble.AudioBuffer
<br/>
</b>
10ms of audio pcm
</div>
</div>
</div>
</foreignObject>
<text x="574" y="641" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
chan gumble.AudioBuffer...
</text>
</switch>
</g>
<rect x="720" y="592" width="160" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 637px; margin-left: 721px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
map of structs containing:
<br/>
<b>
chan pcm
<br/>
</b>
10ms of audio pcm
<br/>
buffered
</div>
</div>
</div>
</foreignObject>
<text x="800" y="641" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
map of structs containing:...
</text>
</switch>
</g>
<rect x="950" y="592" width="150" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 637px; margin-left: 951px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
chan discordgo.Packet
<br/>
</b>
20ms of audio opus
</div>
</div>
</div>
</foreignObject>
<text x="1025" y="641" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
chan discordgo.Packet...
</text>
</switch>
</g>
<rect x="385" y="232" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 267px; margin-left: 386px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">
recieve
<br/>
opus decode
</div>
</div>
</div>
</foreignObject>
<text x="445" y="271" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">
recieve...
</text>
</switch>
</g>
<rect x="385" y="382" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 417px; margin-left: 386px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">
opus encode
<br/>
send
</div>
</div>
</div>
</foreignObject>
<text x="445" y="421" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">
opus encode...
</text>
</switch>
</g>
<rect x="410" y="0" width="160" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 45px; margin-left: 411px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
chan gumble.AudioBuffer
<br/>
</b>
variable length audio
</div>
</div>
</div>
</foreignObject>
<text x="490" y="49" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
chan gumble.AudioBuffer...
</text>
</switch>
</g>
<rect x="750" y="0" width="160" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 45px; margin-left: 751px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
chan []int16
<br/>
</b>
10 ms of audio pcm
<br/>
buffered
</div>
</div>
</div>
</foreignObject>
<text x="830" y="49" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
chan []int16...
</text>
</switch>
</g>
<rect x="920" y="0" width="160" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 45px; margin-left: 921px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
chan []byte
<br/>
</b>
20 ms of audio opus
<br/>
buffered
</div>
</div>
</div>
</foreignObject>
<text x="1000" y="49" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
chan []byte...
</text>
</switch>
</g>
<path d="M 673 269 L 699.9 269" fill="none" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 706.65 269 L 697.65 273.5 L 699.9 269 L 697.65 264.5 Z" fill="#000000" stroke="#000000" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/>
<rect x="553" y="234" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 269px; margin-left: 554px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<b>
onAudioStream
<br/>
</b>
(wait on packets)
</div>
</div>
</div>
</foreignObject>
<text x="613" y="273" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
onAudioStream...
</text>
</switch>
</g>
<path d="M 687 269 L 667 59" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<rect x="580" y="0" width="160" height="90" fill="#ffffff" stroke="#000000" stroke-dasharray="3 3" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 45px; margin-left: 581px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
array of
<br/>
<b>
chan gumble.AudioBuffer
<br/>
</b>
10ms of audio pcm
<br/>
buffered
</div>
</div>
</div>
</foreignObject>
<text x="660" y="49" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
array of...
</text>
</switch>
</g>
<rect x="1042" y="390" width="120" height="70" rx="10.5" ry="10.5" fill="#ffffff" stroke="#000000" stroke-dasharray="1 1" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 425px; margin-left: 1043px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-style: italic; white-space: normal; word-wrap: normal; ">
recieve
</div>
</div>
</div>
</foreignObject>
<text x="1102" y="429" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-style="italic">
recieve
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Viewer does not support full SVG 1.1
</text>
</a>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB