--- /dev/null
+<?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="2104.7244"
+ height="2979.9211"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="dcpomatic.svg">
+ <defs
+ id="defs4">
+ <marker
+ inkscape:stockid="Arrow2Mstart"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="Arrow2Mstart"
+ style="overflow:visible">
+ <path
+ id="path4682"
+ 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) translate(0,0)" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="DotM"
+ style="overflow:visible">
+ <path
+ id="path4722"
+ 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 "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.4) translate(7.4, 1)" />
+ </marker>
+ <marker
+ inkscape:stockid="DotL"
+ orient="auto"
+ refY="0.0"
+ refX="0.0"
+ id="DotL"
+ style="overflow:visible">
+ <path
+ id="path4719"
+ 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 "
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+ transform="scale(0.8) translate(7.4, 1)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend"
+ style="overflow:visible">
+ <path
+ id="path4685"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="DotM"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="DotM-3"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path4722-6"
+ 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"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(0.4,0,0,0.4,2.96,0.4)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-2"
+ style="overflow:visible">
+ <path
+ id="path4685-5"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-21"
+ style="overflow:visible">
+ <path
+ id="path4685-59"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-5"
+ style="overflow:visible">
+ <path
+ id="path4685-0"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-1"
+ style="overflow:visible">
+ <path
+ id="path4685-3"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-3"
+ style="overflow:visible">
+ <path
+ id="path4685-6"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-3-7"
+ style="overflow:visible">
+ <path
+ id="path4685-6-3"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-3-3"
+ style="overflow:visible">
+ <path
+ id="path4685-6-7"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-3-6"
+ style="overflow:visible">
+ <path
+ id="path4685-6-8"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-3-2"
+ style="overflow:visible">
+ <path
+ id="path4685-6-72"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ 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"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1.1598677"
+ inkscape:cx="652.92066"
+ inkscape:cy="674.81101"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1366"
+ inkscape:window-height="714"
+ inkscape:window-x="1280"
+ inkscape:window-y="283"
+ inkscape:window-maximized="1"
+ showguides="true"
+ inkscape:guide-bbox="true" />
+ <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></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Worker classes"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,1927.5591)"
+ style="opacity:1;display:inline">
+ <g
+ id="g3412"
+ transform="translate(467.53078,0)">
+ <rect
+ y="154.36218"
+ x="178"
+ height="139"
+ width="139"
+ id="rect2985"
+ 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"
+ y="169.8515"
+ x="187"
+ 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="169.8515"
+ x="187"
+ id="tspan2989"
+ sodipodi:role="line">Player</tspan></text>
+ <rect
+ y="154.36218"
+ x="178"
+ height="24"
+ width="139"
+ id="rect2991"
+ 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"
+ y="194.74094"
+ x="186.95799"
+ 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
+ y="194.74094"
+ x="186.95799"
+ id="tspan2995"
+ sodipodi:role="line">get_video()</tspan><tspan
+ id="tspan2997"
+ y="212.24094"
+ x="186.95799"
+ sodipodi:role="line">get_audio()</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text2999"
+ y="226.66934"
+ x="187.10799"
+ 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
+ y="226.66934"
+ x="187.10799"
+ id="tspan3001"
+ sodipodi:role="line">Get a video frame or a section of</tspan><tspan
+ id="tspan3003"
+ y="236.66934"
+ x="187.10799"
+ sodipodi:role="line">audio from a time range given in</tspan><tspan
+ id="tspan3009"
+ y="246.66934"
+ x="187.10799"
+ sodipodi:role="line"><tspan
+ id="tspan3011"
+ 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">DCPTime</tspan>.</tspan></text>
+ </g>
+ <g
+ id="g3381"
+ transform="translate(467.53078,26.938314)">
+ <rect
+ y="85.049988"
+ x="362.56888"
+ height="148.32523"
+ width="139"
+ id="rect2985-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" />
+ <text
+ sodipodi:linespacing="125%"
+ id="text2987-7"
+ y="101.05739"
+ x="372.08694"
+ 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="101.05739"
+ x="372.08694"
+ id="tspan2989-6"
+ sodipodi:role="line">PlayerVideoFrame</tspan></text>
+ <rect
+ y="85.049988"
+ x="362.56888"
+ height="24"
+ width="139"
+ id="rect2991-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="text3067"
+ y="121.9117"
+ x="369.38266"
+ 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"
+ xml:space="preserve"><tspan
+ y="121.9117"
+ x="369.38266"
+ id="tspan3069"
+ sodipodi:role="line">Video that has come out of a player</tspan><tspan
+ id="tspan3096"
+ y="131.9117"
+ x="369.38266"
+ sodipodi:role="line">except with the bits still in their</tspan><tspan
+ id="tspan3098"
+ y="141.9117"
+ x="369.38266"
+ sodipodi:role="line">raw form (we may want to combine</tspan><tspan
+ id="tspan3102"
+ y="151.9117"
+ x="369.38266"
+ sodipodi:role="line">the bits on a remote machine, or</tspan><tspan
+ id="tspan3104"
+ y="161.9117"
+ x="369.38266"
+ sodipodi:role="line">maybe not bother to combine them</tspan><tspan
+ id="tspan3100"
+ y="171.9117"
+ x="369.38266"
+ sodipodi:role="line">at all). <tspan
+ id="tspan3212"
+ style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'"> Note: no timing</tspan></tspan><tspan
+ id="tspan3214"
+ y="181.9117"
+ x="369.38266"
+ sodipodi:role="line"><tspan
+ id="tspan3216"
+ style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'">information.</tspan></tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3130"
+ y="200.65807"
+ x="368.44266"
+ 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="200.65807"
+ x="368.44266"
+ id="tspan3132"
+ sodipodi:role="line">image()</tspan></text>
+ <text
+ sodipodi:linespacing="125%"
+ id="text3155"
+ y="214.6459"
+ x="369.25467"
+ 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"
+ xml:space="preserve"><tspan
+ y="214.6459"
+ x="369.25467"
+ id="tspan3157"
+ sodipodi:role="line">Return image ready for the DCP</tspan><tspan
+ id="tspan3159"
+ y="224.6459"
+ x="369.25467"
+ sodipodi:role="line">(scaled, cropped, subtitled etc.)</tspan></text>
+ </g>
+ <g
+ id="g3402"
+ transform="translate(468.46449,26.938314)">
+ <rect
+ y="252.30872"
+ x="361.63516"
+ height="56.489033"
+ width="139"
+ id="rect2985-2-9"
+ 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-7-0"
+ y="268.3161"
+ x="371.15323"
+ 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="268.3161"
+ x="371.15323"
+ id="tspan2989-6-0"
+ sodipodi:role="line">AudioBuffers</tspan></text>
+ <rect
+ y="252.30872"
+ x="361.63516"
+ height="24"
+ width="139"
+ id="rect2991-1-5"
+ 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="text3318"
+ y="289.62686"
+ x="371.08322"
+ 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"
+ xml:space="preserve"><tspan
+ y="289.62686"
+ x="371.08322"
+ id="tspan3320"
+ sodipodi:role="line">Some audio data. <tspan
+ id="tspan3379"
+ style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'">Note: no timing</tspan></tspan><tspan
+ style="font-style:italic;-inkscape-font-specification:'Latin Modern Roman, Italic'"
+ id="tspan3377"
+ y="299.62686"
+ x="371.08322"
+ sodipodi:role="line">information.</tspan></text>
+ </g>
+ <path
+ 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)"
+ 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"
+ id="path3486"
+ inkscape:connector-curvature="0" />
+ <path
+ 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)"
+ 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"
+ id="path3488"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <g
+ id="g6208"
+ transform="translate(0,-14.875458)">
+ <g
+ transform="translate(73.725318,47.860863)"
+ id="g6128">
+ <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"
+ width="139"
+ height="74.012497"
+ x="385.51904"
+ y="106.50132" />
+ <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="394.51904"
+ y="121.99064"
+ id="text2987-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989-9"
+ x="394.51904"
+ y="121.99064">VideoDecoder</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"
+ width="139"
+ height="24"
+ x="385.51904"
+ y="106.50132" />
+ <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="394.47705"
+ y="146.88008"
+ id="text2993-9"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="394.47705"
+ y="146.88008"
+ id="tspan2997-9">get_video()</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="394.62704"
+ y="161.01588"
+ id="text2999-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="394.62704"
+ y="161.01588"
+ id="tspan3009-0">Get a video frame (specified as an</tspan><tspan
+ sodipodi:role="line"
+ x="394.62704"
+ y="171.01588"
+ id="tspan6126">index) from this decoder's content.</tspan></text>
+ </g>
+ </g>
+ <rect
+ 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"
+ id="rect2985-0-4"
+ width="139"
+ height="81.600082"
+ x="459.24435"
+ y="226.63756" />
+ <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="468.24435"
+ y="242.12686"
+ id="text2987-4-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989-9-3"
+ x="468.24435"
+ y="242.12686">AudioDecoder</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-3"
+ width="139"
+ height="24"
+ x="459.24435"
+ y="226.63756" />
+ <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="468.20236"
+ y="267.01633"
+ id="text2993-9-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="468.20236"
+ y="267.01633"
+ id="tspan2997-9-8">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="468.35236"
+ y="281.15213"
+ id="text2999-7-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="468.35236"
+ y="281.15213"
+ id="tspan3009-0-9">Get some audio frames (specified as</tspan><tspan
+ sodipodi:role="line"
+ x="468.35236"
+ y="291.15213"
+ id="tspan6126-9">frame indices) from this decoder's</tspan><tspan
+ sodipodi:role="line"
+ x="468.35236"
+ y="301.15213"
+ id="tspan6300">content.</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-3)"
+ d="m 552.66966,176.1187 c 34.68428,-2.16068 34.15674,16.61591 96.92523,17.13336"
+ id="path6367"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend-3);display:inline"
+ d="m 552.96764,263.23334 c 34.68428,6.7399 34.15674,-51.83021 96.92523,-53.44415"
+ id="path6367-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 447.18922,2300.7832 531.7129,0"
+ id="path6629"
+ inkscape:connector-curvature="0"
+ transform="translate(0,-1927.5591)" />
+ <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="460.94891"
+ y="393.86362"
+ id="text6631"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan6633"
+ x="460.94891"
+ y="393.86362">Video frame indices</tspan><tspan
+ sodipodi:role="line"
+ x="460.94891"
+ y="411.36362"
+ id="tspan6635">within content.</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="467.82877"
+ y="474.45602"
+ id="text6664"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan6666"
+ x="467.82877"
+ y="474.45602">Player::dcp_to_content_video()</tspan><tspan
+ sodipodi:role="line"
+ x="467.82877"
+ y="491.95602"
+ id="tspan6680">Player::dcp_to_content_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;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="650.63574"
+ y="392.70163"
+ id="text6701"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan6703"
+ x="650.63574"
+ y="392.70163">DCPTime</tspan></text>
+ <path
+ 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"
+ d="m 475.60666,422.77249 c 4.8125,23.3677 24.57084,39.3133 24.57084,39.3133"
+ id="path6726"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ 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"
+ d="m 674.98349,401.03166 c -4.8125,36.53647 -24.57084,61.46814 -24.57084,61.46814"
+ id="path6726-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
+ d="m 623.11641,26.2839 0,431.46391"
+ id="path7445"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ </g>
+ <g
+ inkscape:groupmode="layer"
+ id="layer2"
+ inkscape:label="Transcode"
+ transform="translate(0,1927.5591)"
+ style="display:none">
+ <text
+ xml:space="preserve"
+ 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"
+ x="479.97995"
+ y="73.062012"
+ id="text5161"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="479.97995"
+ y="73.062012"
+ id="tspan5165">1. Get data</tspan></text>
+ <path
+ style="fill:#800000;stroke:#800000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
+ d="M 552.30466,81.939339 651.01505,194.07502"
+ id="path5169"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:#800000;stroke:#800000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#DotM)"
+ d="M 552.06133,81.672988 650.77172,209.34867"
+ id="path5169-2"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <rect
+ 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"
+ id="rect2985-2-5"
+ width="170.98779"
+ height="148.32523"
+ x="1018.1572"
+ y="111.9883" />
+ <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:#800000;fill-opacity:1;stroke:none;font-family:Latin Modern Mono;-inkscape-font-specification:Latin Modern Mono"
+ x="1027.6753"
+ y="127.9957"
+ id="text2987-7-6"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989-6-4"
+ x="1027.6753"
+ y="127.9957">DCPVideoFrame</tspan></text>
+ <rect
+ 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"
+ id="rect2991-1-0"
+ width="170.98779"
+ height="24"
+ x="1018.1572"
+ y="111.9883" />
+ <path
+ 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"
+ d="m 975.97792,124.96957 36.76918,0"
+ id="path5762"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ 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"
+ x="1023.8565"
+ y="227.10342"
+ id="text2987-7-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan2989-6-1"
+ x="1023.8565"
+ y="227.10342">PlayerVideoFrame</tspan></text>
+ <text
+ xml:space="preserve"
+ 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"
+ x="1023.8365"
+ y="241.20003"
+ id="text5903"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5905"
+ x="1023.8365"
+ y="241.20003">Film settings</tspan><tspan
+ sodipodi:role="line"
+ x="1023.8365"
+ y="253.70003"
+ id="tspan5907">e.g. frame rate, J2K bandwidth </tspan></text>
+ <text
+ xml:space="preserve"
+ 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"
+ x="1025.1324"
+ y="95.214684"
+ id="text5909"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5911"
+ x="1025.1324"
+ y="95.214684">2. Wrap video data</tspan></text>
+ <path
+ 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"
+ d="m 1197.57,124.96957 36.7691,0"
+ id="path5762-5"
+ inkscape:connector-curvature="0" />
+ <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:#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"
+ x="1242.441"
+ y="127.9957"
+ id="text5956"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5958"
+ x="1242.441"
+ y="127.9957">_queue</tspan></text>
+ <text
+ xml:space="preserve"
+ 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"
+ x="1242.3323"
+ y="143.48494"
+ id="text5979"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5981"
+ x="1242.3323"
+ y="143.48494">Encoded either locally or remotely,</tspan><tspan
+ sodipodi:role="line"
+ x="1242.3323"
+ y="155.98494"
+ id="tspan5983">then written to disk.</tspan></text>
+ <path
+ 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"
+ d="m 975.97792,290.99377 36.76918,0"
+ id="path5762-2"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ 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"
+ x="1025.3245"
+ y="299.12491"
+ id="text6030"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan6032"
+ x="1025.3245"
+ y="299.12491">3. Write audio data to disk</tspan></text>
+ </g>
+</svg>