Files
shaka-player/docs/design/dataflow.gv
T
Joey Parrish f0a3dbe1e2 Update architecture diagrams
This updates the existing diagrams and adds new ones for cast and
offline.  The offline diagrams will need to be updated again after
we resolve #1248.

Closes #1197

Change-Id: I6b6b1fac732b4997c579f58c7f12f0f84f202380
2018-03-15 08:07:22 +00:00

67 lines
2.8 KiB
Plaintext

# Generate png with: dot -Tpng -O dataflow.gv
digraph shaka2_data {
label=<<u>Shaka 2 Data Flow Diagram (excluding Cast, Offline)</u>>
labelloc=t
node [ shape=rectangle ]
edge [ fontsize=10 ]
SourceBuffer [ shape=oval ]
TextTrack [ shape=oval ]
AbrManager [ shape=trapezium ]
ManifestParser [ shape=trapezium ]
TextDisplayer [ shape=trapezium ]
TextParser [ shape=trapezium ]
RequestFilter [ shape=trapezium ]
ResponseFilter [ shape=trapezium ]
HttpFetchPlugin [ shape=trapezium ]
Player -> AbrManager [ label="Variants => Variant" dir=both arrowtail=onormal style=dashed ]
Player -> ManifestParser [ label="URL => Manifest" dir=both arrowtail=onormal style=dashed ]
Player -> StreamingEngine [ label=Manifest ]
Player -> DrmEngine [ label=Manifest ]
ManifestParser -> NetworkingEngine [ label="Request(MANIFEST) => Response" dir=both arrowtail=onormal style=dashed ]
StreamingEngine -> NetworkingEngine [ label="Request(SEGMENT) => Response" dir=both arrowtail=onormal style=dashed ]
DrmEngine -> NetworkingEngine [ label="Request(LICENSE) => Response" dir=both arrowtail=onormal style=dashed ]
StreamingEngine -> MediaSourceEngine [ label="ArrayBuffer" ]
MediaSourceEngine -> SourceBuffer [ label="ArrayBuffer" ]
MediaSourceEngine -> TextEngine [ label="ArrayBuffer" ]
MediaSourceEngine -> Transmuxer [ label="ArrayBuffer => ArrayBuffer" dir=both arrowtail=onormal style=dashed ]
TextEngine -> TextParser [ label="ArrayBuffer => Cues" dir=both arrowtail=onormal ]
TextEngine -> TextDisplayer [ label="Cues" ]
TextDisplayer -> TextTrack [ label="TextCues" ]
NetworkingEngine -> RequestFilter [ label="Request => Request" dir=both arrowtail=onormal style=dashed ]
NetworkingEngine -> ResponseFilter [ label="Response => Response" dir=both arrowtail=onormal style=dashed ]
NetworkingEngine -> HttpFetchPlugin [ label="Request => Response" dir=both arrowtail=onormal style=dashed ]
subgraph cluster_legend {
style=rounded
color="#444444"
label=<<u>Legend</u>>
fontsize=12
fontcolor="#444444"
node [ shape=plaintext color="#444444" fontsize=10 fontcolor="#444444" ]
edge [ color="#444444" fontcolor="#444444" ]
blank1 [ label="" fixedsize=true height=0 ]
blank2 [ label="" fixedsize=true height=0 ]
blank3 [ label="" fixedsize=true height=0 ]
"async request" -> blank3 [ dir=both arrowtail=onormal style=dashed ]
"request with return value" -> blank2 [ dir=both arrowtail=onormal label="ArgType => ReturnType" ]
"data pushed one way" -> blank1 [ label="DataType" ]
plugin [ shape=trapezium ]
"browser built-in" [ shape=oval ]
"internal class" [ shape=rectangle ]
}
# Hack to move the legend beneath the main graph:
TextParser -> "internal class" [ style=invisible arrowhead=none ]
}