From f3339e76cacae699c18a949e21b615c97d196e35 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 16 Jul 2015 13:37:32 +0100 Subject: [PATCH] Some work on diagram. --- doc/design/dcpomatic.svg | 1637 +++++++++++++++++++++++++------------- 1 file changed, 1067 insertions(+), 570 deletions(-) diff --git a/doc/design/dcpomatic.svg b/doc/design/dcpomatic.svg index f1b61f8c1..4a626c9df 100644 --- a/doc/design/dcpomatic.svg +++ b/doc/design/dcpomatic.svg @@ -7,6 +7,7 @@ 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" @@ -15,222 +16,274 @@ version="1.1" inkscape:version="0.48.4 r9939" sodipodi:docname="dcpomatic.svg"> + + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2Mstart"> + style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" + id="path4682" /> + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DotM"> + 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" /> + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DotL"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="DotM"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + 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" /> + + + + refY="0" + orient="auto" + inkscape:stockid="Arrow2Mend"> + + + + + + + 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" /> + - @@ -244,621 +297,1065 @@ + id="layer1" + inkscape:groupmode="layer" + inkscape:label="Worker classes"> + transform="translate(467.53078,0)" + id="g3412"> + width="139" + height="139" + x="178" + y="154.36218" /> Player + x="187" + y="169.8515">Player + width="139" + height="24" + x="178" + y="154.36218" /> get_video()get_audio() + y="194.74094">get_video()get_audio() Get video frame(s) at a time or aGet a video frame or a section ofsection of audio from a time range.audio from a time range given inDCPTime. + id="tspan3971">Times are expressed as DCPTime. + transform="translate(467.53078,26.938314)" + id="g3381"> + width="139" + height="148.32523" + x="362.56888" + y="85.049988" /> PlayerVideoFrame + x="372.08694" + y="101.05739">PlayerVideoFrame + width="139" + height="24" + x="362.56888" + y="85.049988" /> Video that has come out of a playerVideo that has come out of a playerexcept with the bits still in theirexcept with the bits still in theirraw form (we may want to combineraw form (we may want to combinethe bits on a remote machine, orthe bits on a remote machine, ormaybe not bother to combine themmaybe not bother to combine themat all). Note: no timingat all). Note: no timinginformation. + id="tspan3214">information. image() + x="368.44266" + y="200.65807">image() Return image ready for the DCP(scaled, cropped, subtitled etc.) + y="214.6459">Return image ready for the DCP(scaled, cropped, subtitled etc.) + transform="translate(468.46449,26.938314)" + id="g3402"> + width="139" + height="56.489033" + x="361.63516" + y="252.30872" /> AudioBuffers + x="371.15323" + y="268.3161">AudioBuffers + width="139" + height="24" + x="361.63516" + y="252.30872" /> Some audio data. Note: no timinginformation. + y="289.62686">Some audio data. Note: no timinginformation. + 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)" /> + 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)" /> + transform="translate(0,-14.875458)" + id="g6208"> + id="g6128" + transform="translate(73.725318,47.860863)"> + 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" /> VideoDecoder + id="tspan2989-9" + sodipodi:role="line">VideoDecoder + 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" /> get_video() + x="394.47705" + sodipodi:role="line">get_video() Get a video frame (specified as anGet a video frame (specified as anindex) from this decoder's content. + x="394.62704" + sodipodi:role="line">index) from this decoder's content. + 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" /> AudioDecoder + id="tspan2989-9-3" + sodipodi:role="line">AudioDecoder + 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" /> get_audio() + x="468.20236" + sodipodi:role="line">get_audio() Get some audio frames (specified asGet some audio frames (specified asframe indices) from this decoder'sframe indices) from this decoder'scontent. + x="468.35236" + sodipodi:role="line">content. + 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)" /> + 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" /> + 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" /> Video frame indicesVideo frame indiceswithin content. + sodipodi:role="line">within content. Player::dcp_to_content_video()Player::dcp_to_content_video()Player::dcp_to_content_audio() + sodipodi:role="line">Player::dcp_to_content_audio() DCPTime + id="tspan6703" + sodipodi:role="line">DCPTime + 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" /> + 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" /> + 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" /> Class + id="tspan2989-9-1" + sodipodi:role="line">Class + 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" /> method() + x="203.29256" + sodipodi:role="line">method() Method description + x="202.94057" + sodipodi:role="line">Method description Class description. + id="tspan3440" + sodipodi:role="line">Class description. + 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" /> + + + Playlist + + video_identifer() + Return a string which uniquelydescribes the content which affectsthe image. + List of content. + + + + has a + + + + AudioDecoderStream + + get() + Get some audio frames (specified asframe indices) from this stream'scontent. + Decoder for one stream of audio. + + + + + AudioDecoderStream + + get() + Get some audio frames (specified asframe indices) from this stream'scontent. + Decoder for one stream of audio. + + + + + AudioDecoderStream + + get() + Get some audio frames (specified asframe indices) from this stream'scontent. + Decoder for one stream of audio. + + + + + AudioDecoderStream + + get() + Get some audio frames (specified asframe indices) from this stream'scontent. + Decoder for one stream of audio. + + + + + + has many + has many -- 2.30.2