diff options
| -rw-r--r-- | src/lib/encode_server.cc | 3 | ||||
| -rw-r--r-- | src/lib/ffmpeg_encoder.cc | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/encode_server.cc b/src/lib/encode_server.cc index 16c65dba7..314f8f68d 100644 --- a/src/lib/encode_server.cc +++ b/src/lib/encode_server.cc @@ -326,6 +326,9 @@ EncodeServer::handle (shared_ptr<Socket> socket) { boost::mutex::scoped_lock lock (_mutex); + Waker waker; + waker.nudge (); + /* Wait until the queue has gone down a bit */ while (_queue.size() >= _worker_threads.size() * 2 && !_terminate) { _full_condition.wait (lock); diff --git a/src/lib/ffmpeg_encoder.cc b/src/lib/ffmpeg_encoder.cc index 49908587b..6c0061670 100644 --- a/src/lib/ffmpeg_encoder.cc +++ b/src/lib/ffmpeg_encoder.cc @@ -130,6 +130,8 @@ FFmpegEncoder::go () job->sub (_("Encoding")); } + Waker waker; + list<DCPTimePeriod> reel_periods = _film->reels (); list<DCPTimePeriod>::const_iterator reel = reel_periods.begin (); list<FileEncoderSet>::iterator encoder = _file_encoders.begin (); @@ -166,6 +168,8 @@ FFmpegEncoder::go () job->set_progress (float(i.get()) / _film->length().get()); } + waker.nudge (); + _butler->get_audio (interleaved, audio_frames); /* XXX: inefficient; butler interleaves and we deinterleave again */ float* p = interleaved; |
