diff options
| author | Carl Hetherington <cth@carlh.net> | 2017-02-21 23:30:35 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2017-04-19 23:04:32 +0100 |
| commit | 476ef8b0024a6f2e00095df780d0a191019aec95 (patch) | |
| tree | ebfa0a6dec237c18131125d053e81aac868c5fbb | |
| parent | 0a33b35732450d91e39b725ace6cf3e51ab9bc3a (diff) | |
Move / update some design docs.
| -rw-r--r-- | doc/design/audio_path.svg | 408 | ||||
| -rw-r--r-- | doc/design/dcpomatic.svg | 1350 | ||||
| -rw-r--r-- | doc/design/decoder_structures.tex | 36 | ||||
| -rw-r--r-- | doc/design/player_get_audio.svg | 399 |
4 files changed, 35 insertions, 2158 deletions
diff --git a/doc/design/audio_path.svg b/doc/design/audio_path.svg deleted file mode 100644 index c75d505b4..000000000 --- a/doc/design/audio_path.svg +++ /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 index dc9cd9166..000000000 --- a/doc/design/dcpomatic.svg +++ /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> diff --git a/doc/design/decoder_structures.tex b/doc/design/decoder_structures.tex index 64a7da752..594c66450 100644 --- a/doc/design/decoder_structures.tex +++ b/doc/design/decoder_structures.tex @@ -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 index fe7bdd5a3..000000000 --- a/doc/design/player_get_audio.svg +++ /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->frame</tspan></text> - </g> -</svg> |
