From d37b3a7aac87e5f60c49202c824d985e53b7b544 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 14 Jun 2021 07:22:05 +0200 Subject: Rework around mpv issue: reload video if frozen after seek. Add f5 to reload video, readd video cache --- include/QuickMedia.hpp | 1 + include/VideoPlayer.hpp | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/QuickMedia.hpp b/include/QuickMedia.hpp index 8be6fa5..70d3637 100644 --- a/include/QuickMedia.hpp +++ b/include/QuickMedia.hpp @@ -115,6 +115,7 @@ namespace QuickMedia { // Returns false if the page loop was escaped by user navigation (pressing escape) or if there was an error at startup bool page_loop(std::vector &tabs, int start_tab_index = 0, PageLoopSubmitHandler after_submit_handler = nullptr); void video_page_download_video(const std::string &url, bool use_youtube_dl, sf::WindowHandle video_player_window = None); + bool video_download_if_non_streamable(std::string &video_url, std::string &audio_url, bool &is_audio_only, bool &has_embedded_audio, PageType previous_page); void video_content_page(Page *parent_page, VideoPage *video_page, std::string video_title, bool download_if_streaming_fails, BodyItems &next_play_items, int play_index, int *parent_body_page = nullptr, const std::string &parent_page_search = ""); // Returns -1 to go to previous chapter, 0 to stay on same chapter and 1 to go to next chapter int image_page(MangaImagesPage *images_page, Body *chapters_body); diff --git a/include/VideoPlayer.hpp b/include/VideoPlayer.hpp index 1e40de1..a7906a2 100644 --- a/include/VideoPlayer.hpp +++ b/include/VideoPlayer.hpp @@ -35,34 +35,30 @@ namespace QuickMedia { }; // @event_callback is called from another thread - VideoPlayer(bool no_video, bool use_system_mpv_config, bool resume_playback, bool keep_open, EventCallbackFunc event_callback, VideoPlayerWindowCreateCallback window_create_callback, const std::string &resource_root, int monitor_height); + VideoPlayer(bool no_video, bool use_system_mpv_config, bool keep_open, EventCallbackFunc event_callback, VideoPlayerWindowCreateCallback window_create_callback, const std::string &resource_root, int monitor_height); ~VideoPlayer(); VideoPlayer(const VideoPlayer&) = delete; VideoPlayer& operator=(const VideoPlayer&) = delete; // |audio_path| is only set when video and audio are separate files/urls. - // |start_time| is ignored if |resume_playback| is true. - Error load_video(const char *path, const char *audio_path, sf::WindowHandle parent_window, const std::string &plugin_name, const std::string &title, const std::string &start_time = ""); + Error load_video(const char *path, const char *audio_path, sf::WindowHandle parent_window, bool is_youtube, const std::string &title, const std::string &start_time = ""); // Should be called every update frame Error update(); // Returns time in seconds Error get_time_in_file(double *result); - Error quit_and_save_watch_later(); - Error set_property(const std::string &property_name, const Json::Value &value); Error get_property(const std::string &property_name, Json::Value *result, Json::ValueType result_type); int exit_status; private: Error send_command(const char *cmd, size_t size); - Error launch_video_process(const char *path, const char *audio_path, sf::WindowHandle parent_window, const std::string &plugin_name, const std::string &title, const std::string &start_time); + Error launch_video_process(const char *path, const char *audio_path, sf::WindowHandle parent_window, bool is_youtube, const std::string &title, const std::string &start_time); VideoPlayer::Error read_ipc_func(); private: bool no_video; bool use_system_mpv_config; - bool resume_playback; bool keep_open; pid_t video_process_id; bool connected_to_ipc; -- cgit v1.2.3