diff options
author | dec05eba <dec05eba@protonmail.com> | 2021-06-14 07:22:05 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-06-14 07:23:14 +0200 |
commit | d37b3a7aac87e5f60c49202c824d985e53b7b544 (patch) | |
tree | 165fec322b0166b48e298ebcae0e5015578d6a4a /include | |
parent | 977547ff7f0b609291da56df32e5642d10c530cd (diff) |
Rework around mpv issue: reload video if frozen after seek. Add f5 to reload video, readd video cache
Diffstat (limited to 'include')
-rw-r--r-- | include/QuickMedia.hpp | 1 | ||||
-rw-r--r-- | include/VideoPlayer.hpp | 10 |
2 files changed, 4 insertions, 7 deletions
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<Tab> &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; |