\documentclass{article} \begin{document} There is a lot of dancing about to handle potential gaps and sync problems in the FFmpeg decoder. It might be nicer if \texttt{FFmpegDecoder} could just spit out video and audio with timestamps and let the player sort it out, since the player must already handle insertion of black and silence. The first question would be what time unit the decoder should use to stamp its output. Initially we have the PTS, in some time base, and we can convert that to seconds at the content's frame rate; this is basically a \texttt{Time}. So we could emit video and audio content with \texttt{Time} stamps. Then the player receives video frames, and can fill in gaps. The FFmpeg decoder would still have to account for non-zero initial PTS, as it is expected that such `dead time' is trimmed from the source implicitly. The snag with this is that hitherto \texttt{Time} has meant DCP time, not time at a content's rates (before the content is potentially sped up). As it stands, seek takes a \texttt{Time} in the DCP and the content class converts it to content frames. This is then (rather grottily) converted back to time again via the content frame rate. All a bit grim. Everything should probably work in time rather than frame rates. \end{document}