summaryrefslogtreecommitdiff
path: root/src/lib/transcoder.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-10-20 09:55:24 +0100
committerCarl Hetherington <cth@carlh.net>2015-10-22 10:30:45 +0100
commit2c5398adaea8bc56fe196144a9a233981657fba0 (patch)
treef243d30eaef1f30045f0974b0f99fce3ed1d483b /src/lib/transcoder.cc
parent3a626081718fe09edafb951ac9a69e44145bf551 (diff)
Various multi-reel fixes.
* _video_frames_enqueued -> _position * some int -> Frame replacements * Call Writer::ref_write when there is nothing to encode / write for one frame. * Assume Encoder::encode is called once per output video frame. * Possibly correct some off-by-1 overlap bugs. * Don't reset _last_written on FAKE write as I believe there is no need.
Diffstat (limited to 'src/lib/transcoder.cc')
-rw-r--r--src/lib/transcoder.cc11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/lib/transcoder.cc b/src/lib/transcoder.cc
index 20185e8c9..acff9c896 100644
--- a/src/lib/transcoder.cc
+++ b/src/lib/transcoder.cc
@@ -87,15 +87,8 @@ Transcoder::go ()
}
for (DCPTime t; t < length; t += frame) {
- list<shared_ptr<PlayerVideo> > v = _player->get_video (t, true);
- for (list<shared_ptr<PlayerVideo> >::const_iterator i = v.begin(); i != v.end(); ++i) {
- _encoder->enqueue (*i);
- }
-
- shared_ptr<AudioBuffers> audio = _player->get_audio (t, frame, true);
- if (audio) {
- _writer->write (audio);
- }
+ _encoder->encode (_player->get_video (t, true));
+ _writer->write (_player->get_audio (t, frame, true));
if (non_burnt_subtitles) {
_writer->write (_player->get_subtitles (t, frame, true, false));