#ifndef RECORDER_RTSPRECORDER_H #define RECORDER_RTSPRECORDER_H #include "Recorder.h" #include "Settings.h" #include namespace Http { class HttpClient; } // namespace Http namespace CameraRecorder { namespace Recorder { class RTSPRecorder : public virtual Recorder { public: RTSPRecorder(Http::HttpClient* pHttpClient, const Settings& settings); ~RTSPRecorder(); virtual std::string Snapshot(ctpl::thread_pool* pThreadPool, const std::string& ffmpeg) override; virtual std::string MultiSnapshot(ctpl::thread_pool* pThreadPool, const std::string& ffmpeg, int numberOfImages) override; virtual std::string Video(ctpl::thread_pool* pThreadPool, const std::string& ffmpeg) override; private: static std::string GetFolderName(const Settings& settings); static std::string GetFileName(const Settings& settings, const std::string& extension, const std::string& dateTimeString, int imageIndex); static void Snapshots(const std::string& ffmpeg, const Settings& settings, std::string dateTimeString, int numberOfImages); static void Snapshot(const std::string& ffmpeg, const Settings& settings, const filesystem::path& fileName); private: Http::HttpClient* m_pHttpClient; Settings m_settings; }; } // namespace Recorder } // namespace CameraRecorder #endif // RECORDER_RTSPRECORDER_H