Move / update some design docs.
authorCarl Hetherington <cth@carlh.net>
Tue, 21 Feb 2017 23:30:35 +0000 (23:30 +0000)
committerCarl Hetherington <cth@carlh.net>
Wed, 19 Apr 2017 22:04:32 +0000 (23:04 +0100)
doc/design/audio_path.svg [deleted file]
doc/design/dcpomatic.svg [deleted file]
doc/design/decoder_structures.tex
doc/design/player_get_audio.svg [deleted file]

diff --git a/doc/design/audio_path.svg b/doc/design/audio_path.svg
deleted file mode 100644 (file)
index c75d505..0000000
+++ /dev/null
@@ -1,408 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="1052.3622"
-   height="744.09448"
-   id="svg3115"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="audio_path.svg">
-  <defs
-     id="defs3117">
-    <marker
-       inkscape:stockid="Arrow2Mend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow2Mend"
-       style="overflow:visible;">
-      <path
-         id="path3860"
-         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         transform="scale(0.6) rotate(180) translate(0,0)" />
-    </marker>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.88221578"
-     inkscape:cx="342.66212"
-     inkscape:cy="409.15497"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:object-paths="false"
-     inkscape:snap-global="true"
-     inkscape:window-width="1366"
-     inkscape:window-height="714"
-     inkscape:window-x="1280"
-     inkscape:window-y="283"
-     inkscape:window-maximized="1"
-     inkscape:snap-bbox="false"
-     inkscape:snap-nodes="true"
-     inkscape:object-nodes="true" />
-  <metadata
-     id="metadata3120">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(0,-308.2677)">
-    <rect
-       style="color:#000000;fill:#cdde87;fill-opacity:1;fill-rule:nonzero;stroke:#ff5555;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect3395"
-       width="861"
-       height="34"
-       x="22"
-       y="326.09448"
-       transform="translate(0,308.2677)" />
-    <rect
-       style="color:#000000;fill:#ffeeaa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect3393"
-       width="861.04535"
-       height="36.999996"
-       x="22"
-       y="597.36218" />
-    <rect
-       style="color:#000000;fill:#ff9955;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect3391"
-       width="860.48584"
-       height="37.999996"
-       x="22"
-       y="251.09448"
-       transform="translate(0,308.2677)" />
-    <rect
-       style="color:#000000;fill:#ffaaaa;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect3389"
-       width="860.78772"
-       height="29.7075"
-       x="22"
-       y="529.65466" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="186"
-       y="548.36212"
-       id="text3123"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         x="186"
-         y="548.36212"
-         id="tspan3127">AVPacket</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="342"
-       y="548.36212"
-       id="text3137"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3139"
-         x="342"
-         y="548.36212">AVFrame</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="462"
-       y="548.36212"
-       id="text3143"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3145"
-         x="462"
-         y="548.36212">AudioBuffers</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="31"
-       y="548.36212"
-       id="text3165"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3167"
-         x="31"
-         y="548.36212">Data type</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="118"
-       y="656.36218"
-       id="text3151"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3153"
-         x="118"
-         y="656.36218">FFmpegDecoder</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="510.276"
-       y="656.36218"
-       id="text3155"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3157"
-         x="510.276"
-         y="656.36218">AudioDecoder</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="30.747999"
-       y="656.36218"
-       id="text3169"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3171"
-         x="30.747999"
-         y="656.36218">Class</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="679"
-       y="656.36218"
-       id="text3238"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3240"
-         x="679"
-         y="656.36218">Player</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="219.51123"
-       y="584.11017"
-       id="text3129"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3131"
-         x="219.51123"
-         y="584.11017">avcodec_decode_audio4</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="118"
-       y="584.11017"
-       id="text3133"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3135"
-         x="118"
-         y="584.11017">av_read_frame</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="371.99997"
-       y="584.11017"
-       id="text3147"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3149"
-         x="371.99997"
-         y="584.11017">deinterleave_audio</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="510"
-       y="584.11017"
-       id="text3159"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3161"
-         x="510"
-         y="584.11017">audio</tspan><tspan
-         sodipodi:role="line"
-         x="510"
-         y="599.11017"
-         id="tspan3163" /></text>
-    <text
-       xml:space="preserve"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="30.976"
-       y="584.11017"
-       id="text3181"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3183"
-         x="30.976"
-         y="584.11017">Method</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="678.96399"
-       y="584.11017"
-       id="text3242"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3244"
-         x="678.96399"
-         y="584.11017">get_audio</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="30.747999"
-       y="620.27814"
-       id="text3185"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3187"
-         x="30.747999"
-         y="620.27814">Operation</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="191"
-       y="620.27814"
-       id="text3222"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3224"
-         x="191"
-         y="620.27814">Decode</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="370"
-       y="620.27814"
-       id="text3226"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3228"
-         x="370"
-         y="620.27814">Deinterleave</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="510.17999"
-       y="620.27814"
-       id="text3230"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3232"
-         x="510.17999"
-         y="620.27814">Resample</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="573"
-       y="620.27814"
-       id="text3234"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3236"
-         x="573"
-         y="620.27814">Run Processor</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="678.85602"
-       y="620.27814"
-       id="text3246"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3248"
-         x="678.85602"
-         y="620.27814">Gain</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="731.56293"
-       y="620.27814"
-       id="text3250"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3252"
-         x="731.56293"
-         y="620.27814">Channel remap</tspan></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       x="841"
-       y="620.27814"
-       id="text3254"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3256"
-         x="841"
-         y="620.27814">Mix</tspan></text>
-    <rect
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect3356"
-       width="861"
-       height="138.66901"
-       x="22"
-       y="529.69318" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 22,251.09448 860.78771,0"
-       id="path3358"
-       inkscape:connector-curvature="0"
-       transform="translate(0,308.2677)"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 22,289.09448 860.48582,0"
-       id="path3360"
-       inkscape:connector-curvature="0"
-       transform="translate(0,308.2677)"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 22,326.09448 860.69386,0"
-       id="path3362"
-       inkscape:connector-curvature="0"
-       transform="translate(0,308.2677)"
-       sodipodi:nodetypes="cc" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 100,221.37674 0,138.63456"
-       id="path3364"
-       inkscape:connector-curvature="0"
-       transform="translate(0,308.2677)"
-       sodipodi:nodetypes="cc" />
-    <g
-       id="g4273"
-       transform="translate(165.08717,-48.74091)">
-      <text
-         transform="translate(0,308.2677)"
-         sodipodi:linespacing="125%"
-         id="text3036"
-         y="437.11526"
-         x="165.91304"
-         style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         xml:space="preserve"><tspan
-           y="437.11526"
-           x="165.91304"
-           id="tspan3038"
-           sodipodi:role="line">Data path </tspan></text>
-      <path
-         inkscape:connector-curvature="0"
-         id="path3059"
-         d="m 223.62193,742.39257 183.54631,0"
-         style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" />
-    </g>
-  </g>
-</svg>
diff --git a/doc/design/dcpomatic.svg b/doc/design/dcpomatic.svg
deleted file mode 100644 (file)
index dc9cd91..0000000
+++ /dev/null
@@ -1,1350 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="2104.7244"
-   height="2979.9211"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="dcpomatic.svg">
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.4142136"
-     inkscape:cx="603.56905"
-     inkscape:cy="2184.453"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     inkscape:window-width="1366"
-     inkscape:window-height="712"
-     inkscape:window-x="0"
-     inkscape:window-y="1051"
-     inkscape:window-maximized="1"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:snap-nodes="true"
-     inkscape:object-paths="true"
-     inkscape:snap-midpoints="true"
-     inkscape:snap-global="false" />
-  <defs
-     id="defs4">
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mstart"
-       refX="0.0"
-       refY="0.0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mstart">
-      <path
-         transform="scale(0.6) translate(0,0)"
-         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
-         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
-         id="path4682" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="DotM"
-       refX="0.0"
-       refY="0.0"
-       orient="auto"
-       inkscape:stockid="DotM">
-      <path
-         transform="scale(0.4) translate(7.4, 1)"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
-         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
-         id="path4722" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="DotL"
-       refX="0.0"
-       refY="0.0"
-       orient="auto"
-       inkscape:stockid="DotL">
-      <path
-         transform="scale(0.8) translate(7.4, 1)"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
-         d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z "
-         id="path4719" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="DotM-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="DotM">
-      <path
-         transform="matrix(0.4,0,0,0.4,2.96,0.4)"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         d="m -2.5,-1 c 0,2.76 -2.24,5 -5,5 -2.76,0 -5,-2.24 -5,-5 0,-2.76 2.24,-5 5,-5 2.76,0 5,2.24 5,5 z"
-         id="path4722-6"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-2"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-5" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-21"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-59" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-5"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-0" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-1"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-3" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-6" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-3-7"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-6-3" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-3-3"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-6-7" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-3-6"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-6-8" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-3-2"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-6-72" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-3-76"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
-         id="path4685-6-35" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-31"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend-31">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="stroke-linejoin:round;stroke:#ff0000;stroke-width:0.625;fill:#ff0000;fill-rule:evenodd"
-         id="path3631" />
-    </marker>
-    <marker
-       style="overflow:visible"
-       id="Arrow2Mend-31-2"
-       refX="0"
-       refY="0"
-       orient="auto"
-       inkscape:stockid="Arrow2Mend-31">
-      <path
-         inkscape:connector-curvature="0"
-         transform="scale(-0.6,-0.6)"
-         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
-         style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:0.625;stroke-linejoin:round"
-         id="path3631-8" />
-    </marker>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path6367-4-3"
-       d="m 687.78951,154.36218 c 2.16071,-34.68428 27.75866,-13.2772 27.24126,-76.045699"
-       style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-31);display:inline" />
-  </defs>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     style="opacity:1;display:inline"
-     transform="translate(0,1927.5591)"
-     id="layer1"
-     inkscape:groupmode="layer"
-     inkscape:label="Worker classes">
-    <g
-       transform="translate(467.53078,0)"
-       id="g3412">
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2985"
-         width="139"
-         height="139"
-         x="178"
-         y="154.36218" />
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="187"
-         y="169.8515"
-         id="text2987"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan2989"
-           x="187"
-           y="169.8515">Player</tspan></text>
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2991"
-         width="139"
-         height="24"
-         x="178"
-         y="154.36218" />
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="186.95799"
-         y="194.74094"
-         id="text2993"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan2995"
-           x="186.95799"
-           y="194.74094">get_video()</tspan><tspan
-           sodipodi:role="line"
-           x="186.95799"
-           y="212.24094"
-           id="tspan2997">get_audio()</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         x="187.10799"
-         y="226.66934"
-         id="text2999"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           x="187.10799"
-           y="226.66934"
-           id="tspan3957">Get video frame(s) at a time or a</tspan><tspan
-           sodipodi:role="line"
-           x="187.10799"
-           y="236.66934"
-           id="tspan3009">section of audio from a time range.<tspan
-   style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#008000;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-   id="tspan3011" /></tspan><tspan
-           sodipodi:role="line"
-           x="187.10799"
-           y="246.66934"
-           id="tspan3971"><tspan
-   style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#008000;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-   id="tspan3973"><tspan
-   style="-inkscape-font-specification:Latin Modern Roman;font-family:Latin Modern Roman"
-   id="tspan3975">Times are expressed as </tspan>DCPTime</tspan>.</tspan></text>
-    </g>
-    <g
-       transform="translate(467.53078,26.938314)"
-       id="g3381">
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2985-2"
-         width="139"
-         height="148.32523"
-         x="362.56888"
-         y="85.049988" />
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="372.08694"
-         y="101.05739"
-         id="text2987-7"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan2989-6"
-           x="372.08694"
-           y="101.05739">PlayerVideoFrame</tspan></text>
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2991-1"
-         width="139"
-         height="24"
-         x="362.56888"
-         y="85.049988" />
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         x="369.38266"
-         y="121.9117"
-         id="text3067"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan3069"
-           x="369.38266"
-           y="121.9117">Video that has come out of a player</tspan><tspan
-           sodipodi:role="line"
-           x="369.38266"
-           y="131.9117"
-           id="tspan3096">except with the bits still in their</tspan><tspan
-           sodipodi:role="line"
-           x="369.38266"
-           y="141.9117"
-           id="tspan3098">raw form (we may want to combine</tspan><tspan
-           sodipodi:role="line"
-           x="369.38266"
-           y="151.9117"
-           id="tspan3102">the bits on a remote machine, or</tspan><tspan
-           sodipodi:role="line"
-           x="369.38266"
-           y="161.9117"
-           id="tspan3104">maybe not bother to combine them</tspan><tspan
-           sodipodi:role="line"
-           x="369.38266"
-           y="171.9117"
-           id="tspan3100">at all). <tspan
-   style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'"
-   id="tspan3212"> Note: no timing</tspan></tspan><tspan
-           sodipodi:role="line"
-           x="369.38266"
-           y="181.9117"
-           id="tspan3214"><tspan
-             style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'"
-             id="tspan3216">information.</tspan></tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="368.44266"
-         y="200.65807"
-         id="text3130"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan3132"
-           x="368.44266"
-           y="200.65807">image()</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         x="369.25467"
-         y="214.6459"
-         id="text3155"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan3157"
-           x="369.25467"
-           y="214.6459">Return image ready for the DCP</tspan><tspan
-           sodipodi:role="line"
-           x="369.25467"
-           y="224.6459"
-           id="tspan3159">(scaled, cropped, subtitled etc.)</tspan></text>
-    </g>
-    <g
-       transform="translate(468.46449,26.938314)"
-       id="g3402">
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2985-2-9"
-         width="139"
-         height="56.489033"
-         x="361.63516"
-         y="252.30872" />
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="371.15323"
-         y="268.3161"
-         id="text2987-7-0"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan2989-6-0"
-           x="371.15323"
-           y="268.3161">AudioBuffers</tspan></text>
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2991-1-5"
-         width="139"
-         height="24"
-         x="361.63516"
-         y="252.30872" />
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         x="371.08322"
-         y="289.62686"
-         id="text3318"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan3320"
-           x="371.08322"
-           y="289.62686">Some audio data.  <tspan
-   style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'"
-   id="tspan3379">Note: no timing</tspan></tspan><tspan
-           sodipodi:role="line"
-           x="371.08322"
-           y="299.62686"
-           id="tspan3377"
-           style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'">information.</tspan></text>
-    </g>
-    <path
-       inkscape:connector-curvature="0"
-       id="path3486"
-       d="m 738.32413,190.12931 c 20.38674,-2.11382 51.40185,7.49492 61.93408,-14.99236 6.2714,-16.64807 -9.23451,-50.37941 19.28268,-51.67115 l 3.01783,0.37986 2.90173,0.82347"
-       style="fill:none;stroke:#000000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend)" />
-    <path
-       sodipodi:nodetypes="cccccc"
-       inkscape:connector-curvature="0"
-       id="path3488"
-       d="m 739.25629,209.6782 c 19.0896,1.88256 39.09258,-3.78124 57.46999,3.64406 6.923,4.65286 8.96998,13.82587 10.13419,21.68167 1.159,11.5046 0.4676,23.10702 1.1915,34.63519 -0.0177,7.44421 0.38829,16.22861 7.76265,20.08149 3.15045,1.47702 6.58375,1.85805 10.13283,2.06524"
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-mid:none;marker-end:url(#Arrow2Mend)" />
-    <g
-       transform="translate(0,-14.875458)"
-       id="g6208">
-      <g
-         id="g6128"
-         transform="translate(73.725318,47.860863)">
-        <rect
-           y="106.50132"
-           x="385.51904"
-           height="74.012497"
-           width="139"
-           id="rect2985-0"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <text
-           sodipodi:linespacing="125%"
-           id="text2987-4"
-           y="121.99064"
-           x="394.51904"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           xml:space="preserve"><tspan
-             y="121.99064"
-             x="394.51904"
-             id="tspan2989-9"
-             sodipodi:role="line">VideoDecoder</tspan></text>
-        <rect
-           y="106.50132"
-           x="385.51904"
-           height="24"
-           width="139"
-           id="rect2991-8"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <text
-           sodipodi:linespacing="125%"
-           id="text2993-9"
-           y="146.88008"
-           x="394.47705"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           xml:space="preserve"><tspan
-             id="tspan2997-9"
-             y="146.88008"
-             x="394.47705"
-             sodipodi:role="line">get_video()</tspan></text>
-        <text
-           sodipodi:linespacing="125%"
-           id="text2999-7"
-           y="161.01588"
-           x="394.62704"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           xml:space="preserve"><tspan
-             id="tspan3009-0"
-             y="161.01588"
-             x="394.62704"
-             sodipodi:role="line">Get a video frame (specified as an</tspan><tspan
-             id="tspan6126"
-             y="171.01588"
-             x="394.62704"
-             sodipodi:role="line">index) from this decoder's content.</tspan></text>
-      </g>
-    </g>
-    <rect
-       y="226.63756"
-       x="459.24435"
-       height="81.600082"
-       width="139"
-       id="rect2985-0-4"
-       style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text2987-4-3"
-       y="242.12686"
-       x="468.24435"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="242.12686"
-         x="468.24435"
-         id="tspan2989-9-3"
-         sodipodi:role="line">AudioDecoder</tspan></text>
-    <rect
-       y="226.63756"
-       x="459.24435"
-       height="24"
-       width="139"
-       id="rect2991-8-3"
-       style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text2993-9-5"
-       y="267.01633"
-       x="468.20236"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         id="tspan2997-9-8"
-         y="267.01633"
-         x="468.20236"
-         sodipodi:role="line">get_audio()</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text2999-7-5"
-       y="281.15213"
-       x="468.35236"
-       style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         id="tspan3009-0-9"
-         y="281.15213"
-         x="468.35236"
-         sodipodi:role="line">Get some audio frames (specified as</tspan><tspan
-         id="tspan6126-9"
-         y="291.15213"
-         x="468.35236"
-         sodipodi:role="line">frame indices) from this decoder's</tspan><tspan
-         id="tspan6300"
-         y="301.15213"
-         x="468.35236"
-         sodipodi:role="line">content.</tspan></text>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path6367"
-       d="m 552.66966,176.1187 c 34.68428,-2.16068 34.15674,16.61591 96.92523,17.13336"
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-3)" />
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path6367-1"
-       d="m 552.96764,263.23334 c 34.68428,6.7399 34.15674,-51.83021 96.92523,-53.44415"
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-3);display:inline" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path6629"
-       d="m 447.18922,770.03876 531.7129,0"
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text6631"
-       y="790.67822"
-       x="460.94891"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         y="790.67822"
-         x="460.94891"
-         id="tspan6633"
-         sodipodi:role="line">Video frame indices</tspan><tspan
-         id="tspan6635"
-         y="808.17822"
-         x="460.94891"
-         sodipodi:role="line">within content.</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text6664"
-       y="871.27063"
-       x="467.82877"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="871.27063"
-         x="467.82877"
-         id="tspan6666"
-         sodipodi:role="line">Player::dcp_to_content_video()</tspan><tspan
-         id="tspan6680"
-         y="888.77063"
-         x="467.82877"
-         sodipodi:role="line">Player::dcp_to_content_audio()</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text6701"
-       y="789.51624"
-       x="650.63574"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="789.51624"
-         x="650.63574"
-         id="tspan6703"
-         sodipodi:role="line">DCPTime</tspan></text>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path6726"
-       d="m 475.60666,819.58715 c 4.8125,23.3677 24.57084,39.3133 24.57084,39.3133"
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#Arrow2Mend-3);visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path6726-3"
-       d="m 674.98349,797.84632 c -4.8125,36.53647 -24.57084,61.46814 -24.57084,61.46814"
-       style="color:#000000;fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:url(#Arrow2Mstart);visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <rect
-       y="-344.28204"
-       x="193.67656"
-       height="98.153183"
-       width="139"
-       id="rect2985-0-3"
-       style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text2987-4-2"
-       y="-328.79272"
-       x="202.67656"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="-328.79272"
-         x="202.67656"
-         id="tspan2989-9-1"
-         sodipodi:role="line">Class</tspan></text>
-    <rect
-       y="-344.28204"
-       x="193.67656"
-       height="24"
-       width="139"
-       id="rect2991-8-1"
-       style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text2993-9-50"
-       y="-278.13858"
-       x="203.29256"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         id="tspan2997-9-6"
-         y="-278.13858"
-         x="203.29256"
-         sodipodi:role="line">method()</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text2999-7-6"
-       y="-264.99423"
-       x="202.94057"
-       style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         id="tspan6126-5"
-         y="-264.99423"
-         x="202.94057"
-         sodipodi:role="line">Method description</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text3438"
-       y="-305.98245"
-       x="202.78856"
-       style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         y="-305.98245"
-         x="202.78856"
-         id="tspan3440"
-         sodipodi:role="line">Class description.</tspan></text>
-    <rect
-       y="-320.29883"
-       x="193.67656"
-       height="24"
-       width="139"
-       id="rect2991-8-1-2"
-       style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <g
-       transform="translate(178.39513,241.33226)"
-       id="g3559">
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2985-0-3-7"
-         width="144.14117"
-         height="109.83768"
-         x="464.56836"
-         y="-272.39774" />
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="473.56839"
-         y="-256.90848"
-         id="text2987-4-2-5"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan2989-9-1-6"
-           x="473.56839"
-           y="-256.90848">Playlist</tspan></text>
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2991-8-1-9"
-         width="144.14114"
-         height="24"
-         x="464.56842"
-         y="-272.39774" />
-      <text
-         xml:space="preserve"
-         style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-         x="474.18439"
-         y="-206.25429"
-         id="text2993-9-50-3"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           x="474.18439"
-           y="-206.25429"
-           id="tspan2997-9-6-2">video_identifer()</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         x="473.8324"
-         y="-193.10988"
-         id="text2999-7-6-6"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           x="473.8324"
-           y="-193.10988"
-           id="tspan6126-5-0">Return a string which uniquely</tspan><tspan
-           sodipodi:role="line"
-           x="473.8324"
-           y="-183.10988"
-           id="tspan3527">describes the content which affects</tspan><tspan
-           sodipodi:role="line"
-           x="473.8324"
-           y="-173.10988"
-           id="tspan3529">the image.</tspan></text>
-      <text
-         xml:space="preserve"
-         style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-         x="473.68039"
-         y="-234.09816"
-         id="text3438-5"
-         sodipodi:linespacing="125%"><tspan
-           sodipodi:role="line"
-           id="tspan3440-8"
-           x="473.68039"
-           y="-234.09816">List of content.</tspan></text>
-      <rect
-         style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-         id="rect2991-8-1-2-1"
-         width="144.14114"
-         height="24"
-         x="464.56842"
-         y="-248.41457" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path6367-4"
-       d="m 687.78951,154.36218 c 2.16071,-34.68428 27.75866,-13.2772 27.24126,-76.045699"
-       style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-31);display:inline" />
-    <text
-       xml:space="preserve"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       id="text3931"
-       sodipodi:linespacing="125%"><textPath
-         xlink:href="#path6367-4"
-         id="textPath3954"><tspan
-   id="tspan3933"
-   dx="18.59833"
-   dy="-3.4053285">has a</tspan></textPath></text>
-    <g
-       id="g5293"
-       transform="translate(0,46.747615)">
-      <g
-         style="opacity:0.22897195"
-         id="g4272"
-         transform="translate(-52.977852,-14.467075)">
-        <rect
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           id="rect4274"
-           width="150.45775"
-           height="108.236"
-           x="446.01428"
-           y="384.03958" />
-        <text
-           xml:space="preserve"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           x="455.01431"
-           y="399.52884"
-           id="text4276"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan4278"
-             x="455.01431"
-             y="399.52884">AudioDecoderStream</tspan></text>
-        <rect
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           id="rect4280"
-           width="150.45775"
-           height="24"
-           x="446.01428"
-           y="384.03958" />
-        <text
-           xml:space="preserve"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           x="455.63031"
-           y="450.18301"
-           id="text4282"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             x="455.63031"
-             y="450.18301"
-             id="tspan4284">get()</tspan></text>
-        <text
-           xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           x="455.27832"
-           y="463.32742"
-           id="text4286"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             x="455.27832"
-             y="463.32742"
-             id="tspan4288">Get some audio frames (specified as</tspan><tspan
-             id="tspan4290"
-             sodipodi:role="line"
-             x="455.27832"
-             y="473.32742">frame indices) from this stream's</tspan><tspan
-             id="tspan4292"
-             sodipodi:role="line"
-             x="455.27832"
-             y="483.32742">content.</tspan></text>
-        <text
-           xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           x="455.12631"
-           y="422.33914"
-           id="text4294"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan4296"
-             x="455.12631"
-             y="422.33914">Decoder for one stream of audio.</tspan></text>
-        <rect
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           id="rect4298"
-           width="150.45775"
-           height="24"
-           x="446.01428"
-           y="408.02274" />
-      </g>
-      <g
-         style="opacity:0.22897195"
-         transform="translate(-12.918771,9.1055633)"
-         id="g4300">
-        <rect
-           y="384.03958"
-           x="446.01428"
-           height="108.236"
-           width="150.45775"
-           id="rect4302"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <text
-           sodipodi:linespacing="125%"
-           id="text4304"
-           y="399.52884"
-           x="455.01431"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           xml:space="preserve"><tspan
-             y="399.52884"
-             x="455.01431"
-             id="tspan4306"
-             sodipodi:role="line">AudioDecoderStream</tspan></text>
-        <rect
-           y="384.03958"
-           x="446.01428"
-           height="24"
-           width="150.45775"
-           id="rect4308"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <text
-           sodipodi:linespacing="125%"
-           id="text4310"
-           y="450.18301"
-           x="455.63031"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           xml:space="preserve"><tspan
-             id="tspan4312"
-             y="450.18301"
-             x="455.63031"
-             sodipodi:role="line">get()</tspan></text>
-        <text
-           sodipodi:linespacing="125%"
-           id="text4314"
-           y="463.32742"
-           x="455.27832"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           xml:space="preserve"><tspan
-             id="tspan4316"
-             y="463.32742"
-             x="455.27832"
-             sodipodi:role="line">Get some audio frames (specified as</tspan><tspan
-             y="473.32742"
-             x="455.27832"
-             sodipodi:role="line"
-             id="tspan4318">frame indices) from this stream's</tspan><tspan
-             y="483.32742"
-             x="455.27832"
-             sodipodi:role="line"
-             id="tspan4320">content.</tspan></text>
-        <text
-           sodipodi:linespacing="125%"
-           id="text4322"
-           y="422.33914"
-           x="455.12631"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           xml:space="preserve"><tspan
-             y="422.33914"
-             x="455.12631"
-             id="tspan4324"
-             sodipodi:role="line">Decoder for one stream of audio.</tspan></text>
-        <rect
-           y="408.02274"
-           x="446.01428"
-           height="24"
-           width="150.45775"
-           id="rect4326"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-      <g
-         style="opacity:0.22897195"
-         id="g4328"
-         transform="translate(27.140315,32.678193)">
-        <rect
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           id="rect4330"
-           width="150.45775"
-           height="108.236"
-           x="446.01428"
-           y="384.03958" />
-        <text
-           xml:space="preserve"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           x="455.01431"
-           y="399.52884"
-           id="text4332"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan4334"
-             x="455.01431"
-             y="399.52884">AudioDecoderStream</tspan></text>
-        <rect
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           id="rect4336"
-           width="150.45775"
-           height="24"
-           x="446.01428"
-           y="384.03958" />
-        <text
-           xml:space="preserve"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           x="455.63031"
-           y="450.18301"
-           id="text4338"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             x="455.63031"
-             y="450.18301"
-             id="tspan4340">get()</tspan></text>
-        <text
-           xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           x="455.27832"
-           y="463.32742"
-           id="text4342"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             x="455.27832"
-             y="463.32742"
-             id="tspan4344">Get some audio frames (specified as</tspan><tspan
-             id="tspan4346"
-             sodipodi:role="line"
-             x="455.27832"
-             y="473.32742">frame indices) from this stream's</tspan><tspan
-             id="tspan4348"
-             sodipodi:role="line"
-             x="455.27832"
-             y="483.32742">content.</tspan></text>
-        <text
-           xml:space="preserve"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           x="455.12631"
-           y="422.33914"
-           id="text4350"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan4352"
-             x="455.12631"
-             y="422.33914">Decoder for one stream of audio.</tspan></text>
-        <rect
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-           id="rect4354"
-           width="150.45775"
-           height="24"
-           x="446.01428"
-           y="408.02274" />
-      </g>
-      <g
-         id="g5233">
-        <rect
-           y="345.99985"
-           x="352.97736"
-           height="108.236"
-           width="150.45775"
-           id="rect2985-0-3-3"
-           style="color:#000000;fill:#ffffff;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <text
-           sodipodi:linespacing="125%"
-           id="text2987-4-2-9"
-           y="361.48911"
-           x="361.97739"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           xml:space="preserve"><tspan
-             y="361.48911"
-             x="361.97739"
-             id="tspan2989-9-1-4"
-             sodipodi:role="line">AudioDecoderStream</tspan></text>
-        <rect
-           y="345.99985"
-           x="352.97736"
-           height="24"
-           width="150.45775"
-           id="rect2991-8-1-7"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-        <text
-           sodipodi:linespacing="125%"
-           id="text2993-9-50-7"
-           y="412.14328"
-           x="362.59338"
-           style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-           xml:space="preserve"><tspan
-             id="tspan2997-9-6-7"
-             y="412.14328"
-             x="362.59338"
-             sodipodi:role="line">get()</tspan></text>
-        <text
-           sodipodi:linespacing="125%"
-           id="text2999-7-6-8"
-           y="425.28769"
-           x="362.24139"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;display:inline;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           xml:space="preserve"><tspan
-             id="tspan6126-5-03"
-             y="425.28769"
-             x="362.24139"
-             sodipodi:role="line">Get some audio frames (specified as</tspan><tspan
-             y="435.28769"
-             x="362.24139"
-             sodipodi:role="line"
-             id="tspan4025">frame indices) from this stream's</tspan><tspan
-             y="445.28769"
-             x="362.24139"
-             sodipodi:role="line"
-             id="tspan4027">content.</tspan></text>
-        <text
-           sodipodi:linespacing="125%"
-           id="text3438-8"
-           y="384.29941"
-           x="362.08939"
-           style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-           xml:space="preserve"><tspan
-             y="384.29941"
-             x="362.08939"
-             id="tspan3440-0"
-             sodipodi:role="line">Decoder for one stream of audio.</tspan></text>
-        <rect
-           y="369.983"
-           x="352.97736"
-           height="24"
-           width="150.45775"
-           id="rect2991-8-1-2-8"
-           style="color:#000000;fill:none;stroke:#0000ff;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-      </g>
-      <path
-         sodipodi:nodetypes="cc"
-         transform="translate(0,-1927.5591)"
-         inkscape:connector-curvature="0"
-         id="path5248"
-         d="m 507.5,2384.273 113.42592,64.8148"
-         style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 3;stroke-dashoffset:0" />
-    </g>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path5263"
-       d="m 536.32022,308.03599 c -2.16071,34.6842 -114.75866,17.2772 -114.24126,80.0457"
-       style="fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-31);display:inline" />
-    <text
-       xml:space="preserve"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       id="text5357"
-       sodipodi:linespacing="125%"><textPath
-         xlink:href="#path5263"
-         id="textPath5380"><tspan
-   id="tspan5359"
-   dx="32.173382"
-   dy="-4.9497471">has many</tspan></textPath></text>
-  </g>
-  <g
-     style="display:none"
-     transform="translate(0,1927.5591)"
-     inkscape:label="Transcode"
-     id="layer2"
-     inkscape:groupmode="layer">
-    <text
-       sodipodi:linespacing="125%"
-       id="text5161"
-       y="73.062012"
-       x="479.97995"
-       style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#800000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         id="tspan5165"
-         y="73.062012"
-         x="479.97995"
-         sodipodi:role="line">1. Get data</tspan></text>
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path5169"
-       d="M 552.30466,81.939339 651.01505,194.07502"
-       style="fill:#800000;stroke:#800000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)" />
-    <path
-       sodipodi:nodetypes="cc"
-       inkscape:connector-curvature="0"
-       id="path5169-2"
-       d="M 552.06133,81.672988 650.77172,209.34867"
-       style="fill:#800000;stroke:#800000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)" />
-    <rect
-       y="111.9883"
-       x="1018.1572"
-       height="148.32523"
-       width="170.98779"
-       id="rect2985-2-5"
-       style="color:#000000;fill:none;stroke:#800000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text2987-7-6"
-       y="127.9957"
-       x="1027.6753"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#800000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="127.9957"
-         x="1027.6753"
-         id="tspan2989-6-4"
-         sodipodi:role="line">DCPVideoFrame</tspan></text>
-    <rect
-       y="111.9883"
-       x="1018.1572"
-       height="24"
-       width="170.98779"
-       id="rect2991-1-0"
-       style="color:#000000;fill:none;stroke:#800000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path5762"
-       d="m 975.97792,124.96957 36.76918,0"
-       style="color:#000000;fill:none;stroke:#800000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#Arrow2Mend);visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text2987-7-8"
-       y="227.10342"
-       x="1023.8565"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;opacity:0.93999999;fill:#0000ff;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="227.10342"
-         x="1023.8565"
-         id="tspan2989-6-1"
-         sodipodi:role="line">PlayerVideoFrame</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text5903"
-       y="241.20003"
-       x="1023.8365"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#800000;fill-opacity:1;stroke:none;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         y="241.20003"
-         x="1023.8365"
-         id="tspan5905"
-         sodipodi:role="line">Film settings</tspan><tspan
-         id="tspan5907"
-         y="253.70003"
-         x="1023.8365"
-         sodipodi:role="line">e.g. frame rate, J2K bandwidth </tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text5909"
-       y="95.214684"
-       x="1025.1324"
-       style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         y="95.214684"
-         x="1025.1324"
-         id="tspan5911"
-         sodipodi:role="line">2. Wrap video data</tspan></text>
-    <path
-       inkscape:connector-curvature="0"
-       id="path5762-5"
-       d="m 1197.57,124.96957 36.7691,0"
-       style="color:#000000;fill:none;stroke:#800000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#Arrow2Mend);visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text5956"
-       y="127.9957"
-       x="1242.441"
-       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="127.9957"
-         x="1242.441"
-         id="tspan5958"
-         sodipodi:role="line">_queue</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text5979"
-       y="143.48494"
-       x="1242.3323"
-       style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         y="143.48494"
-         x="1242.3323"
-         id="tspan5981"
-         sodipodi:role="line">Encoded either locally or remotely,</tspan><tspan
-         id="tspan5983"
-         y="155.98494"
-         x="1242.3323"
-         sodipodi:role="line">then written to disk.</tspan></text>
-    <path
-       inkscape:connector-curvature="0"
-       id="path5762-2"
-       d="m 975.97792,290.99377 36.76918,0"
-       style="color:#000000;fill:none;stroke:#800000;stroke-width:0.99999988px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-end:url(#Arrow2Mend);visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
-    <text
-       sodipodi:linespacing="125%"
-       id="text6030"
-       y="299.12491"
-       x="1025.3245"
-       style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#800000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Roman;-inkscape-font-specification:Latin Modern Roman"
-       xml:space="preserve"><tspan
-         y="299.12491"
-         x="1025.3245"
-         id="tspan6032"
-         sodipodi:role="line">3. Write audio data to disk</tspan></text>
-  </g>
-</svg>
index 64a7da7520a65a611db7db824ab88df9809b1e71..594c6645023b2b1a46afbed84345f35073bd3b4f 100644 (file)
@@ -162,7 +162,7 @@ Questions:
 \begin{itemize}
 \item Add signals to \texttt{Player}.
   \begin{itemize}
-    \item \texttt{signal<void (shared\_ptr<PlayerVideo>), DCPTime> Video;}
+    \item \texttt{signal<void (shared\_ptr<PlayerVideo>), DCPTime)> Video;}
     \item \texttt{signal<void (shared\_ptr<AudioBuffers>, DCPTime)> Audio;}
     \item \texttt{signal<void (PlayerSubtitles, DCPTimePeriod)> Subtitle;}
   \end{itemize}
@@ -174,4 +174,38 @@ Questions:
   \item Remove \texttt{get} methods from \texttt{Player}; replace with \texttt{pass()} and \texttt{seek()}.
 \end{itemize}
 
+
+\section{Summary of work done in \texttt{back-to-pass}}
+
+The diff between \texttt{back-to-pass} and \texttt{master} as at 21/2/2017 can be summarised as:
+
+\begin{enumerate}
+\item Remove \texttt{AudioDecoderStream}; no more need to buffer, and resampling is done in \texttt{Player}.
+\item \texttt{AudioDecoder} is simple; basically counting frames.
+\item All subtitles-during stuff is gone; no need to know what happens in a particular period as we just wait and see.
+\item Pass reason stuff gone; not sure what it was for but seems to have been a contortion related to trying to find specific stuff.
+  \item \texttt{Player::pass} back, obviously.
+  \item \texttt{Player::get\_video}, \texttt{get\_audio} and
+    \texttt{get\_subtitle} more-or-less become \texttt{Player}'s
+    handlers for emissions from decoders; lots of buffering crap gone
+    in the process.
+  \item Add \texttt{Decoder::position} stuff so that we know what to \texttt{pass()} in \texttt{Player}.
+  \item Add \texttt{AudioMerger}; necessary as audio arrives at the
+    \texttt{Player} from different streams at different times.  The
+    \texttt{AudioMerger} just accepts data, mixes and spits it out
+    again.
+\item Obvious consumer changes: what was a loop over the playlist
+  length and calls to \texttt{get()} is now calls to \texttt{pass()}.
+  \item Maybe-seek stuff gone.
+  \item Some small \texttt{const}-correctness bits.
+\end{enumerate}
+
+Obvious things to do:
+
+\begin{enumerate}
+\item Ensure AudioMerger is being tested.
+\item Ensure hardest-case in video / audio is being tested.
+\item Look at symmetry of video/audio paths / APIs.
+\end{enumerate}
+
 \end{document}
diff --git a/doc/design/player_get_audio.svg b/doc/design/player_get_audio.svg
deleted file mode 100644 (file)
index fe7bdd5..0000000
+++ /dev/null
@@ -1,399 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="744.09448819"
-   height="1052.3622047"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="player_get_audio.svg">
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1.2517416"
-     inkscape:cx="368.22037"
-     inkscape:cy="938.8543"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="true"
-     inkscape:guide-bbox="true"
-     inkscape:window-width="1366"
-     inkscape:window-height="714"
-     inkscape:window-x="0"
-     inkscape:window-y="27"
-     inkscape:window-maximized="1" />
-  <defs
-     id="defs4">
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Mstart"
-       style="overflow:visible">
-      <path
-         id="path3983"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
-         transform="scale(0.4) translate(10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Mend"
-       style="overflow:visible;">
-      <path
-         id="path3986"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
-         transform="scale(0.4) rotate(180) translate(10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart-1"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3983-6"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-4"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path3986-5"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1MstartQ"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1MstartQ"
-       style="overflow:visible">
-      <path
-         id="path4874"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="stroke:#008000;stroke-width:1.0pt;fill:#008000;fill-rule:evenodd"
-         transform="scale(0.4) translate(10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mendh"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1Mendh"
-       style="overflow:visible;">
-      <path
-         id="path4877"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="stroke:#008000;stroke-width:1.0pt;fill:#008000;fill-rule:evenodd"
-         transform="scale(0.4) rotate(180) translate(10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mstart"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mstart-2"
-       style="overflow:visible">
-      <path
-         id="path3983-60"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1Mend"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1Mend-9"
-       style="overflow:visible">
-      <path
-         id="path3986-52"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)"
-         inkscape:connector-curvature="0" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1MstartM"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1MstartM"
-       style="overflow:visible">
-      <path
-         id="path5026"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="stroke:#ff0000;stroke-width:1.0pt;fill:#ff0000;fill-rule:evenodd"
-         transform="scale(0.4) translate(10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1MendT"
-       orient="auto"
-       refY="0.0"
-       refX="0.0"
-       id="Arrow1MendT"
-       style="overflow:visible;">
-      <path
-         id="path5029"
-         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
-         style="stroke:#ff0000;stroke-width:1.0pt;fill:#ff0000;fill-rule:evenodd"
-         transform="scale(0.4) rotate(180) translate(10,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1MstartM"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1MstartM-0"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path5026-3"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt"
-         transform="matrix(0.4,0,0,0.4,4,0)" />
-    </marker>
-    <marker
-       inkscape:stockid="Arrow1MendT"
-       orient="auto"
-       refY="0"
-       refX="0"
-       id="Arrow1MendT-0"
-       style="overflow:visible">
-      <path
-         inkscape:connector-curvature="0"
-         id="path5029-9"
-         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
-         style="fill:#ff0000;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt"
-         transform="matrix(-0.4,0,0,-0.4,-4,0)" />
-    </marker>
-  </defs>
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1">
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 55,34.711899 55,198.7119"
-       id="path2985"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 47,190.36218 641,0"
-       id="path2987"
-       inkscape:connector-curvature="0" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="25.429111"
-       y="210.57095"
-       id="text2989"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan2991"
-         x="25.429111"
-         y="210.57095">DCP time 0</tspan></text>
-    <rect
-       style="color:#000000;fill:#000000;fill-opacity:0.15425535;stroke:none;stroke-width:0.99999988px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect2995"
-       width="267.44409"
-       height="153.85982"
-       x="205.08385"
-       y="-190.34831"
-       transform="scale(1,-1)" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 205.14391,36.525554 0,164.454206"
-       id="path3783"
-       inkscape:connector-curvature="0" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 472.50163,36.353991 0,164.625769"
-       id="path3785"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="191.90874"
-       y="212.87964"
-       id="text3787"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan3789"
-         x="191.90874"
-         y="212.87964">time</tspan></text>
-    <path
-       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-mid:none;marker-end:url(#Arrow1Mend)"
-       d="m 207.02561,30.692594 263.76528,0"
-       id="path3791"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="319.72653"
-       y="23.80699"
-       id="text4787"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4789"
-         x="319.72653"
-         y="23.80699">length</tspan></text>
-    <path
-       style="fill:none;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="m 206.07602,19.432227 0,210.960753"
-       id="path4817"
-       inkscape:connector-curvature="0" />
-    <path
-       style="stroke-linejoin:miter;marker-end:url(#Arrow1Mendh);stroke-opacity:1;marker-start:url(#Arrow1MstartQ);stroke:#008000;stroke-linecap:butt;stroke-width:1px;marker-mid:none;fill:none"
-       d="m 207.02561,13.263911 263.76528,0"
-       id="path3791-5"
-       inkscape:connector-curvature="0"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="297.97812"
-       y="6.3783064"
-       id="text4787-3"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan4789-8"
-         x="297.97812"
-         y="6.3783064">length_frames</tspan></text>
-    <text
-       sodipodi:linespacing="125%"
-       id="text4929"
-       y="238.74654"
-       x="205.10674"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       xml:space="preserve"><tspan
-         y="238.74654"
-         x="205.10674"
-         id="tspan4931"
-         sodipodi:role="line">out</tspan><tspan
-         id="tspan4933"
-         y="253.74654"
-         x="205.10674"
-         sodipodi:role="line" /></text>
-    <rect
-       y="67.863129"
-       x="123.76559"
-       height="71.25898"
-       width="448.18149"
-       id="rect4973"
-       style="color:#000000;fill:#ff0000;fill-opacity:0.30319148;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:1" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path4975"
-       d="m 125.66194,148.65781 77.93059,0"
-       style="color:#000000;fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:url(#Arrow1MstartM);marker-end:url(#Arrow1MendT);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="85.083427"
-       y="163.35722"
-       id="text5098"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan5100"
-         x="85.083427"
-         y="163.35722">dcp_to_content_audio(time)</tspan><tspan
-         sodipodi:role="line"
-         x="85.083427"
-         y="178.35722"
-         id="tspan5102" /></text>
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="126.75607"
-       y="78.363503"
-       id="text5123"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan5125"
-         x="126.75607"
-         y="78.363503">Content</tspan></text>
-    <rect
-       style="color:#000000;fill:#ff0000;fill-opacity:0.48404256;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       id="rect5148"
-       width="204.37869"
-       height="70.190666"
-       x="239.47403"
-       y="68.041344" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="244.01578"
-       y="78.363503"
-       id="text5567"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan5569"
-         x="244.01578"
-         y="78.363503">in</tspan></text>
-    <path
-       inkscape:connector-curvature="0"
-       id="path4975-9"
-       d="m 125.66194,111.10032 112.28273,0"
-       style="color:#000000;fill:none;stroke:#ff0000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;marker-start:url(#Arrow1MstartM);marker-end:url(#Arrow1MendT);visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       sodipodi:nodetypes="cc" />
-    <text
-       xml:space="preserve"
-       style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
-       x="135.21161"
-       y="106.87954"
-       id="text5620"
-       sodipodi:linespacing="125%"><tspan
-         sodipodi:role="line"
-         id="tspan5622"
-         x="135.21161"
-         y="106.87954">in-&gt;frame</tspan></text>
-  </g>
-</svg>