diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-11-04 20:44:13 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-11-16 22:46:39 +0100 |
| commit | fe64650ae5496c4de73894b97c53e6951ac3548f (patch) | |
| tree | 222324080c3730fe3b03fbe071c37c338c3ac624 | |
| parent | ed4fc06db6957b2b63b2400a737f47c18a1003be (diff) | |
Add some new Waker calls.
Backported from 052ec34bd487a3645013e87a7062738284d050df in v2.15.x
| -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 07b691956..3f5b6f591 100644 --- a/src/lib/ffmpeg_encoder.cc +++ b/src/lib/ffmpeg_encoder.cc @@ -119,6 +119,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 (); @@ -155,6 +157,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; |
