summaryrefslogtreecommitdiff
path: root/src/lib/decoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2012-10-31 11:46:05 +0000
committerCarl Hetherington <cth@carlh.net>2012-10-31 11:46:05 +0000
commit09a95eca971ddd2ea75cd615e7ef2b997d52b690 (patch)
tree3c429226dc070cbf0800a2ebbfdd72fa19b2156c /src/lib/decoder.cc
parent3ed5df31baed21633d0db9167cd75562f384dec7 (diff)
Try a different approach to frame duplication in the decoder.
Diffstat (limited to 'src/lib/decoder.cc')
-rw-r--r--src/lib/decoder.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib/decoder.cc b/src/lib/decoder.cc
index abb4d13a1..e154aac5d 100644
--- a/src/lib/decoder.cc
+++ b/src/lib/decoder.cc
@@ -310,12 +310,22 @@ Decoder::process_video (AVFrame* frame)
}
TIMING ("Decoder emits %1", _video_frame_index);
- Video ((*i), _video_frame_index, sub);
+ Video (*i, _video_frame_index, sub);
++_video_frame_index;
+ _last_image = *i;
+ _last_subtitle = sub;
}
}
void
+Decoder::repeat_last_video ()
+{
+ assert (_last_image);
+ Video (_last_image, _video_frame_index, _last_subtitle);
+ ++_video_frame_index;
+}
+
+void
Decoder::process_subtitle (shared_ptr<TimedSubtitle> s)
{
_timed_subtitle = s;