Some comments.
[dcpomatic.git] / src / lib / video_decoder.cc
index 3a803a86339a9fdf955bc59bdcb6c45cca8d05ca..c11b752ae21e201038e562ceeac62dacdc215f30 100644 (file)
@@ -53,17 +53,26 @@ VideoDecoder::emit_video (shared_ptr<Image> image, double t)
        _last_source_time = t;
 }
 
+/** Called by subclasses to repeat the last video frame that we
+ *  passed to emit_video().  If emit_video hasn't yet been called,
+ *  we will generate a black frame.
+ */
 void
 VideoDecoder::repeat_last_video ()
 {
        if (!_last_image) {
-               _last_image.reset (new SimpleImage (pixel_format(), native_size(), false));
+               _last_image.reset (new SimpleImage (pixel_format(), native_size(), true));
                _last_image->make_black ();
        }
 
        signal_video (_last_image, true, _last_subtitle);
 }
 
+/** Emit our signal to say that some video data is ready.
+ *  @param image Video frame.
+ *  @param same true if `image' is the same as the last one we emitted.
+ *  @param sub Subtitle for this frame, or 0.
+ */
 void
 VideoDecoder::signal_video (shared_ptr<Image> image, bool same, shared_ptr<Subtitle> sub)
 {
@@ -75,6 +84,11 @@ VideoDecoder::signal_video (shared_ptr<Image> image, bool same, shared_ptr<Subti
        _last_subtitle = sub;
 }
 
+/** Set up the current subtitle.  This will be put onto frames that
+ *  fit within its time specification.  s may be 0 to say that there
+ *  is no current subtitle.
+ *  @param s New current subtitle, or 0.
+ */
 void
 VideoDecoder::emit_subtitle (shared_ptr<TimedSubtitle> s)
 {
@@ -86,6 +100,9 @@ VideoDecoder::emit_subtitle (shared_ptr<TimedSubtitle> s)
        }
 }
 
+/** Set which stream of subtitles we should use from our source.
+ *  @param s Stream to use.
+ */
 void
 VideoDecoder::set_subtitle_stream (shared_ptr<SubtitleStream> s)
 {