From 2c5398adaea8bc56fe196144a9a233981657fba0 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 20 Oct 2015 09:55:24 +0100 Subject: 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. --- src/lib/transcoder.cc | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'src/lib/transcoder.cc') 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 > v = _player->get_video (t, true); - for (list >::const_iterator i = v.begin(); i != v.end(); ++i) { - _encoder->enqueue (*i); - } - - shared_ptr 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)); -- cgit v1.2.3