summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2019-11-26 00:32:37 +0100
committerCarl Hetherington <cth@carlh.net>2020-01-08 21:56:47 +0100
commit0b21bfba60be812a5d04cc5c10868e04b5579404 (patch)
treee20cfef2f2561493b216ce06cc6c24a1f890df4b /src
parent4f0575fcb518d959e8dcf581ec8181609782b4ef (diff)
Fix problems when starting to play after a seek, if the start
of playback happens while we are awaiting an idle handler to go through to update the view after the seek. If this idle handler has not gone through the viewer will report an incorrect position, which is used by the FilmViewer to start the audio stream at the wrong time.
Diffstat (limited to 'src')
-rw-r--r--src/wx/film_viewer.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/wx/film_viewer.cc b/src/wx/film_viewer.cc
index 704088645..3a593fc55 100644
--- a/src/wx/film_viewer.cc
+++ b/src/wx/film_viewer.cc
@@ -314,6 +314,14 @@ FilmViewer::start ()
return;
}
+ /* We are about to set up the audio stream from the position of the video view.
+ If there is `lazy' seek in progress we need to wait for it to go through so that
+ _video_view->position() gives us a sensible answer.
+ */
+ while (_idle_get) {
+ idle_handler ();
+ }
+
if (_audio.isStreamOpen()) {
_audio.setStreamTime (_video_view->position().seconds());
_audio.startStream ();