Remove unused PlayerStatistics stuff.
[dcpomatic.git] / doc / design / video_path.tex
1 \documentclass{article}
2 \usepackage[explicit]{titlesec}
3 \usepackage{lipsum,framed,color,xcolor}
4 \definecolor{shadecolor}{rgb}{1,0.8,0.3}
5 \titleformat{name=\subsection,numberless}{\ttfamily}{}{0em}{\colorbox{shadecolor}{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{{#1}}}}\title{Video paths}
6 \author{}
7 \date{}
8 \begin{document}
9 \maketitle
10
11 \emph{Encoder} calls \texttt{Player::pass()} repeatedly.
12
13 \subsection*{Player::pass()}
14
15 Look through all `pieces' (content, decoder, video/audio position) and
16 find earliest last emission.  Call \texttt{pass()} on earliest
17 decoder.
18
19 \subsection*{FFmpegDecoder::pass()}
20
21 Decoder may or may not generate a frame.  Adjust for gaps in PTS.
22 (FFmpegDecoder does FFmpeg filtering here).
23
24 \subsection*{VideoDecoder::video(image, same, frame)}
25
26 The \emph{frame} parameter is the frame within the source.  This
27 handles 3D and emits \texttt{Video}, which is caught by
28 \texttt{Player::process\_video}.
29
30 \subsection*{Player::process\_video(piece, image, eyes, same, frame)}
31
32 \begin{itemize}
33 \item Trim
34 \item Crop
35 \item Scale
36 \item Superposition of burnt-in subtitles.
37 \end{itemize}
38
39 Emits \texttt{Video} which is caught by \texttt{Encoder::process\_video}.
40
41 \end{document}