From 2a0ad7979b208f84916b13f7a37998aa3701e371 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 11 Sep 2018 11:42:40 +0100 Subject: [PATCH] Store audio/video even when suspended. This is important for audio. _audio.put() must be called with sequential data, so if you're going to discard audio (as was happening when _suspended) you need to clear _audio before put()ting any more. This happens with seek; when _pending_seek_position is set _audio is cleared and then nothing more is added until the seek is done. _suspended may be set and then reset with no change having happened (type _CANCELLED) so I think you have to keep storing data in this case. It will be discarded when the seek comes around after a _DONE change. --- src/lib/butler.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/butler.cc b/src/lib/butler.cc index 3e408c4d5..191bb0a5b 100644 --- a/src/lib/butler.cc +++ b/src/lib/butler.cc @@ -270,8 +270,8 @@ Butler::video (shared_ptr video, DCPTime time) { boost::mutex::scoped_lock lm (_mutex); - if (_pending_seek_position || _suspended) { - /* Don't store any video in these cases */ + if (_pending_seek_position) { + /* Don't store any video in this case */ return; } @@ -286,7 +286,7 @@ Butler::audio (shared_ptr audio, DCPTime time) { { boost::mutex::scoped_lock lm (_mutex); - if (_pending_seek_position || _disable_audio || _suspended) { + if (_pending_seek_position || _disable_audio) { /* Don't store any audio in these cases */ return; } -- 2.30.2