diff options
Diffstat (limited to 'src/lib/encoder.cc')
| -rw-r--r-- | src/lib/encoder.cc | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/lib/encoder.cc b/src/lib/encoder.cc index e83ac70f5..5dc9e47c7 100644 --- a/src/lib/encoder.cc +++ b/src/lib/encoder.cc @@ -65,9 +65,7 @@ Encoder::Encoder (shared_ptr<const Film> f, weak_ptr<Job> j) , _video_frames_out (0) , _terminate (false) { - _have_a_real_frame[EYES_BOTH] = false; - _have_a_real_frame[EYES_LEFT] = false; - _have_a_real_frame[EYES_RIGHT] = false; + } Encoder::~Encoder () @@ -183,7 +181,7 @@ Encoder::frame_done () } void -Encoder::process_video (shared_ptr<PlayerVideoFrame> pvf, bool same) +Encoder::process_video (shared_ptr<PlayerVideoFrame> pvf) { _waker.nudge (); @@ -211,24 +209,22 @@ Encoder::process_video (shared_ptr<PlayerVideoFrame> pvf, bool same) if (_writer->can_fake_write (_video_frames_out)) { _writer->fake_write (_video_frames_out, pvf->eyes ()); - _have_a_real_frame[pvf->eyes()] = false; - frame_done (); - } else if (same && _have_a_real_frame[pvf->eyes()]) { - /* Use the last frame that we encoded. */ - _writer->repeat (_video_frames_out, pvf->eyes()); frame_done (); } else { /* Queue this new frame for encoding */ LOG_TIMING ("adding to queue of %1", _queue.size ()); _queue.push_back (shared_ptr<DCPVideoFrame> ( new DCPVideoFrame ( - pvf, _video_frames_out, _film->video_frame_rate(), - _film->j2k_bandwidth(), _film->resolution(), _film->log() + pvf, + _video_frames_out, + _film->video_frame_rate(), + _film->j2k_bandwidth(), + _film->resolution(), + _film->log() ) )); _condition.notify_all (); - _have_a_real_frame[pvf->eyes()] = true; } if (pvf->eyes() != EYES_LEFT) { |
