safesight-edge/plugins/alarm/actions/snapshot_action.h
2025-12-26 16:58:18 +08:00

26 lines
623 B
C++

#pragma once
#include "action_base.h"
#include "../uploaders/uploader_base.h"
#include <memory>
namespace rk3588 {
class SnapshotAction : public IAlarmAction {
public:
bool Init(const SimpleJson& config) override;
void Execute(AlarmEvent& event, std::shared_ptr<Frame> frame) override;
std::string Name() const override { return "snapshot"; }
private:
std::vector<uint8_t> EncodeJpeg(const std::shared_ptr<Frame>& frame);
std::string GenerateKey(const AlarmEvent& event);
std::string format_ = "jpg";
int quality_ = 85;
std::unique_ptr<IUploader> uploader_;
};
} // namespace rk3588