mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-08 13:18:52 +00:00
Add a graphviz dot file. Add rules to render it to svg and include in docs. Nodes are clickable. It is an attempt to show how things fit together.
74 lines
2.7 KiB
Text
74 lines
2.7 KiB
Text
/* dot -Tpng gst-universe.dot -ogst-universe.png
|
|
*
|
|
* other layouts:
|
|
* circo -Tpng gst-universe.dot -ogst-universe.circo.png
|
|
* neato -Tpng gst-universe.dot -ogst-universe.neato.png
|
|
*
|
|
* todo:
|
|
* - add urls to api docs
|
|
* - use color
|
|
*/
|
|
digraph pipeline {
|
|
node [style="filled", shape="box", fillcolor="#eeeeee", fontsize="9px", fontname="Bitstream Vera Sans", target="_top"];
|
|
edge [labelfontsize="7px", fontsize="7px", labelfontname="Bitstream Vera Sans", fontname="Bitstream Vera Sans"];
|
|
labelloc=t;
|
|
nodesep=0.25;
|
|
|
|
/*
|
|
fontname="Bitstream Vera Sans";
|
|
fontsize="10px";
|
|
label="GStreamer Universe";
|
|
*/
|
|
|
|
/* objects */
|
|
application [color=black, fillcolor="#ffdddd"];
|
|
bin [href="GstBin.html", color=black, fillcolor="#ccccff"];
|
|
bus [href="GstBus.html"];
|
|
buffer [href="gstreamer-GstBuffer.html", color=black, fillcolor="#ddffdd"];
|
|
caps [href="gstreamer-GstCaps.html"];
|
|
clock [href="GstClock.html"];
|
|
element [href="GstElement.html", color=black, fillcolor="#ccccff"];
|
|
element_factory [href="GstElementFactory.html", label="element factory"];
|
|
event [href="gstreamer-GstEvent.html", color=black, fillcolor="#ddffdd"];
|
|
message [href="gstreamer-GstMessage.html", color=black, fillcolor="#ddffdd"];
|
|
pad [href="GstPad.html", color=black, fillcolor="#ccccff"];
|
|
pad_template [href="GstPadTemplate.html", label="pad template"];
|
|
pipeline [href="GstPipeline.html", color=black, fillcolor="#ccccff"];
|
|
plugin [href="GstPlugin.html"];
|
|
plugin_feature [href="GstPluginFeature.html", label="plugin feature"];
|
|
query [href="gstreamer-GstQuery.html", color=black, fillcolor="#ddffdd"];
|
|
registry [href="GstRegistry.html"];
|
|
structure [href="gstreamer-GstStructure.html"];
|
|
|
|
/* relations */
|
|
bin -> element [label="is-a"];
|
|
pipeline -> bin [label="is-a"];
|
|
pipeline -> bus [label="has 1"];
|
|
pipeline -> clock [label="has 1"];
|
|
element -> pad_template [label="has n"];
|
|
element -> pad [label="has n"];
|
|
element -> clock [label="may provide"];
|
|
pad -> caps [label="has n"];
|
|
pad_template -> caps [label="has n"];
|
|
buffer -> caps [label="has n"];
|
|
caps -> structure [label="has n"];
|
|
bin -> element [label="has n"];
|
|
|
|
pad -> pad_template [label="is created from"];
|
|
element -> element_factory [label="is created from"];
|
|
|
|
element -> query [label="answers"];
|
|
element -> event [label="send & receive"];
|
|
element -> buffer [label="send & receive"];
|
|
element -> message [label="send"];
|
|
bus -> message [label="receive"];
|
|
|
|
registry -> plugin [label="has n"];
|
|
plugin -> plugin_feature [label="has n"];
|
|
element_factory -> plugin_feature [label="is-a"];
|
|
|
|
application -> pipeline [label="has"];
|
|
application -> bus [label="listen on"];
|
|
application -> query [label="send"];
|
|
application -> event [label="send"];
|
|
}
|