43 lines
1.3 KiB
C++
43 lines
1.3 KiB
C++
#ifndef RECORDER_RTSPRECORDER_H
|
|
#define RECORDER_RTSPRECORDER_H
|
|
|
|
#include "Recorder.h"
|
|
#include "Settings.h"
|
|
#include <filesystem/path.h>
|
|
|
|
|
|
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
|