zoneminder/src/zm_libvnc_camera.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

64 lines
1.3 KiB
C
Raw Normal View History

2020-03-26 14:21:34 +08:00
#ifndef ZN_LIBVNC_CAMERA_H
#define ZN_LIBVNC_CAMERA_H
#include "zm_camera.h"
2020-03-29 06:17:19 +08:00
#include "zm_swscale.h"
2020-03-26 14:21:34 +08:00
#if HAVE_LIBVNC
2020-03-26 14:21:34 +08:00
#include <rfb/rfbclient.h>
// Older versions of libvncserver defined a max macro in rfb/rfbproto.h
// Undef it here so it doesn't collide with std::max
2021-06-05 22:01:53 +08:00
// TODO: Remove this once CentOS 7 support is dropped
#ifdef max
#undef max
#endif
2021-06-05 22:01:53 +08:00
2020-03-26 14:21:34 +08:00
// Used by vnc callbacks
struct VncPrivateData {
2020-03-26 14:21:34 +08:00
uint8_t *buffer;
2020-03-28 02:15:15 +08:00
uint8_t width;
uint8_t height;
2020-03-26 14:21:34 +08:00
};
class VncCamera : public Camera {
protected:
rfbClient *mRfb;
VncPrivateData mVncData;
2020-03-29 06:17:19 +08:00
SWScale scale;
AVPixelFormat mImgPixFmt;
2020-03-26 14:21:34 +08:00
std::string mHost;
std::string mPort;
std::string mUser;
std::string mPass;
public:
VncCamera(
const Monitor *monitor,
2020-03-26 14:21:34 +08:00
const std::string &host,
const std::string &port,
const std::string &user,
const std::string &pass,
int p_width,
int p_height,
int p_colours,
int p_brightness,
int p_contrast,
int p_hue,
int p_colour,
bool p_capture,
2021-02-24 23:09:21 +08:00
bool p_record_audio);
2020-03-26 14:21:34 +08:00
~VncCamera();
2021-04-20 23:48:12 +08:00
int PreCapture() override;
int PrimeCapture() override;
int Capture(std::shared_ptr<ZMPacket> &packet) override;
2021-04-20 23:48:12 +08:00
int PostCapture() override;
int Close() override;
2020-03-26 14:21:34 +08:00
};
#endif // HAVE_LIBVNC
2020-03-26 15:52:34 +08:00
#endif // ZN_LIBVNC_CAMERA_H