diff --git a/CMakeLists.txt b/CMakeLists.txt index 188bdfa..32b2ea6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ endif() set(TARGET_VERSION_MAJOR 0) set(TARGET_VERSION_MINOR 2) -set(TARGET_VERSION_PATCH 7) +set(TARGET_VERSION_PATCH 8) set(APP_VERSION "${TARGET_VERSION_MAJOR}.${TARGET_VERSION_MINOR}.${TARGET_VERSION_PATCH}") add_subdirectory(src) diff --git a/src/playlist.cpp b/src/playlist.cpp index d15bc45..422d494 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -26,9 +26,15 @@ Playlist::~Playlist() std::tuple Playlist::get_streams(std::string url) { - bool status = false; MediaStreams streams; + if (has_prefix("mms://", url)) { + streams.push_back(url); + return std::make_tuple(true, streams); + } + + bool status = false; + prepare_playlist_request(url, kOnlyHeaders); auto rc = curl_easy_perform(handle); auto http_status_code = get_http_status(); @@ -153,6 +159,20 @@ Playlist::run_playlist_decoders(std::string url) return streams; } +bool +Playlist::has_prefix(const std::string& prefix, const std::string& str) +{ + if (prefix.size() > str.size()) { + return false; + } + + if (strncasecmp(str.c_str(), prefix.c_str(), prefix.size()) == 0) { + return true; + } + + return false; +} + size_t Playlist::write_memory_cb(void* ptr, size_t size, size_t nmemb, void* data) { diff --git a/src/playlist.hpp b/src/playlist.hpp index 56658f7..18077bc 100644 --- a/src/playlist.hpp +++ b/src/playlist.hpp @@ -45,6 +45,7 @@ class Playlist long get_http_status(); std::string get_content_type(); MediaStreams run_playlist_decoders(std::string url); + bool has_prefix(const std::string& prefix, const std::string& str); static size_t write_memory_cb(void* ptr, size_t size, size_t nmemb, void* data); };