From 93b89cf4fce6b48ba8e26e9e907cbbb9e9632cf1 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 13 Jun 2020 14:11:12 +0200 Subject: Fix related videos sometimes being skipped --- src/QuickMedia.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/QuickMedia.cpp') diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 6cd92b7..8299423 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -659,19 +659,23 @@ namespace QuickMedia { current_page = previous_page; } }; - - video_player = std::make_unique(current_plugin->use_tor, [this, &video_player, &seekable, &load_video_error_check, previous_page](const char *event_name) { + + bool has_video_started = true; + video_player = std::make_unique(current_plugin->use_tor, [this, &video_player, &seekable, &load_video_error_check, previous_page, &has_video_started](const char *event_name) mutable { bool end_of_file = false; if(strcmp(event_name, "pause") == 0) { - double time_remaining = 0.0; + double time_remaining = 9999.0; if(video_player->get_time_remaining(&time_remaining) == VideoPlayer::Error::OK && time_remaining <= 1.0) end_of_file = true; } else if(strcmp(event_name, "playback-restart") == 0) { video_player->set_paused(false); video_player->is_seekable(&seekable); + } else if(strcmp(event_name, "start-file") == 0) { + has_video_started = true; } - if(end_of_file) { + if(end_of_file && has_video_started) { + has_video_started = false; std::string new_video_url; BodyItems related_media = current_plugin->get_related_media(content_url); // Find video that hasn't been played before in this video session -- cgit v1.2.3