diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/QuickMedia.cpp | 9 | ||||
-rw-r--r-- | src/VideoPlayer.cpp | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/QuickMedia.cpp b/src/QuickMedia.cpp index 5de8a0f..d6a369a 100644 --- a/src/QuickMedia.cpp +++ b/src/QuickMedia.cpp @@ -291,21 +291,24 @@ namespace QuickMedia { } std::vector<std::unique_ptr<BodyItem>> related_media = current_plugin->get_related_media(video_url); + bool reload = false; if(video_player) { - video_player->onPlaybackEndedCallback = [this, &related_media, &video_player]() { + video_player->onPlaybackEndedCallback = [this, &related_media, &video_player, &reload]() { if(related_media.empty()) return; video_url = related_media.front()->url; - video_player->load_file(video_url); related_media = current_plugin->get_related_media(video_url); + // TODO: This doesn't seem to work correctly right now, it causes video to become black when changing video (context reset bug). + //video_player->load_file(video_url); + reload = true; }; } sf::Clock resize_timer; sf::Event event; - while (current_page == Page::VIDEO_CONTENT) { + while (current_page == Page::VIDEO_CONTENT && !reload) { while (window.pollEvent(event)) { base_event_handler(event, Page::SEARCH_SUGGESTION); if(event.type == sf::Event::Resized) { diff --git a/src/VideoPlayer.cpp b/src/VideoPlayer.cpp index 41b6d0e..dbfcaac 100644 --- a/src/VideoPlayer.cpp +++ b/src/VideoPlayer.cpp @@ -54,11 +54,11 @@ namespace QuickMedia { onPlaybackEndedCallback(nullptr), mpv(nullptr), mpvGl(nullptr), - context(std::make_unique<sf::Context>(sf::ContextSettings(), width, height)), + context(nullptr), textureBuffer(nullptr), desired_size(width, height) { - ContextScope context_scope(context.get()); + //ContextScope context_scope(context.get()); texture.setSmooth(true); // mpv_create requires LC_NUMERIC to be set to "C" for some reason, see mpv_create documentation |