aboutsummaryrefslogtreecommitdiff
path: root/plugins/youtube/YoutubeMediaProxy.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/youtube/YoutubeMediaProxy.hpp')
-rw-r--r--plugins/youtube/YoutubeMediaProxy.hpp32
1 files changed, 3 insertions, 29 deletions
diff --git a/plugins/youtube/YoutubeMediaProxy.hpp b/plugins/youtube/YoutubeMediaProxy.hpp
index eaef898..0fb2d6a 100644
--- a/plugins/youtube/YoutubeMediaProxy.hpp
+++ b/plugins/youtube/YoutubeMediaProxy.hpp
@@ -22,7 +22,7 @@ namespace QuickMedia {
virtual Error update() = 0;
virtual bool get_address(std::string &address) = 0;
- bool start_download(const std::string &media_url, ReadProgram &read_program, int64_t range_start, bool include_header, bool is_livestream = false, int livestream_sequence = -1);
+ bool start_download(const std::string &media_url, ReadProgram &read_program, int64_t range_start, int64_t end_range, bool include_header);
};
class YoutubeStaticMediaProxy : public YoutubeMediaProxy {
@@ -57,7 +57,9 @@ namespace QuickMedia {
ssize_t downloader_num_read_bytes = 0;
int64_t download_range_start = 0;
int64_t current_download_range = 0;
+ int64_t next_range_length = 0;
std::string download_header;
+ bool end_of_file = false;
bool download_header_finished = false;
bool download_header_sent = false;
bool download_header_remaining_sent = false;
@@ -70,32 +72,4 @@ namespace QuickMedia {
std::string client_request_buffer;
char download_read_buffer[16384];
};
-
- class YoutubeLiveStreamMediaProxy : public YoutubeMediaProxy {
- public:
- YoutubeLiveStreamMediaProxy() = default;
- YoutubeLiveStreamMediaProxy(YoutubeLiveStreamMediaProxy&) = delete;
- YoutubeLiveStreamMediaProxy&operator=(YoutubeLiveStreamMediaProxy&) = delete;
- ~YoutubeLiveStreamMediaProxy();
-
- bool start(const std::string &youtube_media_url, int64_t content_length) override;
- void stop() override;
- Error update() override;
- bool get_address(std::string &address) override;
- private:
- Error update_download_program_status();
- Error continue_send(const char *buffer_start, size_t total_bytes_to_write, int &buffer_offset);
- private:
- ReadProgram downloader_read_program;
- std::string youtube_media_url;
- int fd[2];
- int64_t livestream_sequence_num = -1;
- std::string download_header;
- bool download_header_finished = false;
- bool download_header_remaining_sent = false;
- int download_header_written_offset = 0;
- int download_read_buffer_offset = 0;
- ssize_t downloader_num_read_bytes = 0;
- char download_read_buffer[16384];
- };
} \ No newline at end of file