webrtc/modules/audio_device/main/documentation/current_data_flow.graphml

295 lines
16 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:y="http://www.yworks.com/xml/graphml" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.0/ygraphml.xsd">
<!--Created by yFiles for Java 2.7-->
<key for="graphml" id="d0" yfiles.type="resources"/>
<key attr.name="url" attr.type="string" for="node" id="d1"/>
<key attr.name="description" attr.type="string" for="node" id="d2">
<default/>
</key>
<key for="node" id="d3" yfiles.type="nodegraphics"/>
<key attr.name="url" attr.type="string" for="edge" id="d4"/>
<key attr.name="description" attr.type="string" for="edge" id="d5">
<default/>
</key>
<key for="edge" id="d6" yfiles.type="edgegraphics"/>
<graph edgedefault="directed" id="G">
<node id="n0">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="67.30555555555549" width="149.0" x="348.0" y="206.42592592592598"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="137.833984375" x="5.5830078125" y="23.077094184027743">SndCardStream</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n1">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="149.0" x="348.0" y="490.6400462962963"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="14" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.1513671875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="116.068359375" x="16.4658203125" y="10.92431640625">VoiceEngine</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n2">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="149.0" x="527.0" y="218.0"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="59.37109375" x="44.814453125" y="12.1494140625">Rendering</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n3">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="149.0" x="169.0" y="218.0"/>
<y:Fill color="#FFCC00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="56.03125" x="46.484375" y="12.1494140625">Capturing</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n4">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="105.21064814814815" width="149.0" x="527.0" y="291.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="77.505859375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="116.7109375" x="16.14453125" y="13.852394386574076">NeedMorePlayData()
[in] speech
[in] samples
[out] fs
[out] stereo
</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n5">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="105.21064814814815" width="149.0" x="169.0" y="291.0"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="92.20703125" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="147.40234375" x="0.798828125" y="6.501808449074076">RecordedDataIsAvailable()
[out] speech
[out] delay
[out] fs
[out] skew
[in] newMicGain</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n6">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="43.0" width="177.9351851851851" x="333.53240740740745" y="580.6608796296297"/>
<y:Fill color="#FFFF00" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="168.0625" x="4.936342592592553" y="12.1494140625">SndCardStreamObserver</y:NodeLabel>
<y:Shape type="rectangle"/>
</y:ShapeNode>
</data>
</node>
<node id="n7">
<data key="d2"/>
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="80.0" width="192.9351851851851" x="621.5" y="426.5"/>
<y:Fill color="#C0C0C0" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="77.505859375" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="163.421875" x="14.75665509259261" y="1.2470703125">SndCard expects the mixer
output to be at the given
sample rate and stereo mode.
Conversion takes place in the
mixer.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n8">
<data key="d2"/>
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="80.0" width="192.9351851851851" x="24.0" y="426.5"/>
<y:Fill color="#C0C0C0" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="62.8046875" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="163.3984375" x="14.768373842592553" y="8.59765625">SndCard always generates
10ms buffers at the specified
sample rate. Conversion must
take place before encoding.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n9">
<data key="d2"/>
<data key="d3">
<y:UMLNoteNode>
<y:Geometry height="67.30555555555549" width="367.9351851851851" x="238.53240740740745" y="109.1203703703705"/>
<y:Fill color="#C0C0C0" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="left" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="48.103515625" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="328.849609375" x="19.542787905092553" y="9.601019965277743">The data flow is driven by the sound card (thread(s)) using
callback functions. An additional API is required if an external
source shall act as driver.</y:NodeLabel>
</y:UMLNoteNode>
</data>
</node>
<node id="n10">
<data key="d2"/>
<data key="d3">
<y:ShapeNode>
<y:Geometry height="30.0" width="291.9675925925926" x="276.5162037037037" y="11.0"/>
<y:Fill color="#99CCFF" transparent="false"/>
<y:BorderStyle color="#000000" type="line" width="1.0"/>
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="16" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="23.6015625" modelName="internal" modelPosition="c" textColor="#000000" visible="true" width="255.6875" x="18.140046296296305" y="3.19921875">Current client audio implementation</y:NodeLabel>
<y:Shape type="roundrectangle"/>
</y:ShapeNode>
</data>
</node>
<edge id="e0" source="n0" target="n3">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#3366FF" type="line" width="2.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e1" source="n2" target="n0">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#FF0000" type="line" width="2.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e2" source="n3" target="n5">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#3366FF" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e3" source="n4" target="n2">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#FF0000" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e4" source="n5" target="n1">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="243.5" y="512.1400462962963"/>
</y:Path>
<y:LineStyle color="#3366FF" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e5" source="n1" target="n5">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="-57.870370370370324" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="364.6296296296297" y="343.6053240740741"/>
</y:Path>
<y:LineStyle color="#3366FF" type="dashed" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.999990957754676" y="-80.06042028356478"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.999990957754676" y="-80.06042028356478"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="1.999990957754676" y="-80.06042028356478"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.701171875" modelName="six_pos" modelPosition="shead" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="70.0234375" x="-72.02344654224532" y="-28.806731047453695">newMicGain</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e6" source="n1" target="n4">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
<y:Point x="601.5" y="512.1400462962963"/>
</y:Path>
<y:LineStyle color="#FF0000" type="line" width="3.0"/>
<y:Arrows source="none" target="standard"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e7" source="n4" target="n1">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="54.565972222222285" ty="-20.214120370370324">
<y:Point x="477.0659722222223" y="343.6053240740741"/>
</y:Path>
<y:LineStyle color="#FF0000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="standard"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="33.40234375" modelName="six_pos" modelPosition="shead" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="37.3515625" x="-47.4765625" y="-35.4023358380353">fs
stereo</y:EdgeLabel>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e8" source="n1" target="n6">
<data key="d5"/>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="white_delta"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
<edge id="e9" source="n0" target="n1">
<data key="d4"/>
<data key="d5"><![CDATA[UMLuses]]></data>
<data key="d6">
<y:PolyLineEdge>
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="-21.140046296296305"/>
<y:LineStyle color="#000000" type="dashed" width="1.0"/>
<y:Arrows source="none" target="short"/>
<y:EdgeLabel alignment="center" distance="2.0" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="4.0" modelName="six_pos" modelPosition="tail" preferredPlacement="anywhere" ratio="0.5" textColor="#000000" visible="true" width="4.0" x="2.0" y="106.45428805881079"/>
<y:BendStyle smoothed="false"/>
</y:PolyLineEdge>
</data>
</edge>
</graph>
<data key="d0">
<y:Resources/>
</data>
</graphml>