\documentclass{article}
\usepackage[explicit]{titlesec}
\usepackage{lipsum,framed,color,xcolor}
\definecolor{shadecolor}{rgb}{1,0.8,0.3}
\titleformat{name=\subsection,numberless}{\ttfamily}{}{0em}{\colorbox{shadecolor}{\parbox{\dimexpr\textwidth-2\fboxsep\relax}{{#1}}}}\title{Video paths}
\author{}
\date{}
\begin{document}
\maketitle

\emph{Encoder} calls \texttt{Player::pass()} repeatedly.

\subsection*{Player::pass()}

Look through all `pieces' (content, decoder, video/audio position) and
find earliest last emission.  Call \texttt{pass()} on earliest
decoder.

\subsection*{FFmpegDecoder::pass()}

Decoder may or may not generate a frame.  Adjust for gaps in PTS.
(FFmpegDecoder does FFmpeg filtering here).

\subsection*{VideoDecoder::video(image, same, frame)}

The \emph{frame} parameter is the frame within the source.  This
handles 3D and emits \texttt{Video}, which is caught by
\texttt{Player::process\_video}.

\subsection*{Player::process\_video(piece, image, eyes, same, frame)}

\begin{itemize}
\item Trim
\item Crop
\item Scale
\item Superposition of burnt-in subtitles.
\end{itemize}

Emits \texttt{Video} which is caught by \texttt{Encoder::process\_video}.

\end{document}
