diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-10-20 09:55:24 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-10-22 10:30:45 +0100 |
| commit | 2c5398adaea8bc56fe196144a9a233981657fba0 (patch) | |
| tree | f243d30eaef1f30045f0974b0f99fce3ed1d483b /src/lib/transcoder.cc | |
| parent | 3a626081718fe09edafb951ac9a69e44145bf551 (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.cc | 11 |
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)); |
