From 429aba8352726d145b9f5a621191a7f0f8e0640c Mon Sep 17 00:00:00 2001 From: TangoCash Date: Sat, 28 Oct 2017 20:24:53 +0200 Subject: [PATCH] movieplayer: fix updateposition loop Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/af6f850dedf3a0cf4d2e64554867a49b131000db Author: TangoCash Date: 2017-10-28 (Sat, 28 Oct 2017) --- src/gui/movieplayer.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/gui/movieplayer.cpp b/src/gui/movieplayer.cpp index 5786b7405..565fd0dce 100644 --- a/src/gui/movieplayer.cpp +++ b/src/gui/movieplayer.cpp @@ -2807,14 +2807,20 @@ void CMoviePlayerGui::handleMovieBrowser(neutrino_msg_t msg, int /*position*/) void CMoviePlayerGui::UpdatePosition() { - while (!playback->GetPosition(position, duration)) { - if (duration > 100) - file_prozent = (unsigned char) (position / (duration / 100)); - FileTimeOSD->update(position, duration); -#ifdef DEBUG - printf("CMoviePlayerGui::%s: spd %d pos %d/%d (%d, %d%%)\n", __func__, speed, position, duration, duration-position, file_prozent); -#endif + int cnt = 0; + do + { + usleep(10000); + cnt++; } + while ((!playback->GetPosition(position, duration)) || (cnt <= 5)); + + if (duration > 100) + file_prozent = (unsigned char) (position / (duration / 100)); + FileTimeOSD->update(position, duration); +#ifdef DEBUG + printf("CMoviePlayerGui::%s: spd %d pos %d/%d (%d, %d%%)\n", __func__, speed, position, duration, duration-position, file_prozent); +#endif } void CMoviePlayerGui::StopSubtitles(bool enable_glcd_mirroring __attribute__((unused)))