3 #ifndef NX_CAMERA_PLUGIN_H 4 #define NX_CAMERA_PLUGIN_H 10 #include <plugins/plugin_api.h> 12 #include "camera_plugin_types.h" 33 typedef unsigned long long int UsecUTCTimestamp;
34 static const UsecUTCTimestamp INVALID_TIMESTAMP_VALUE = (UsecUTCTimestamp)-1
LL;
36 static const int MAX_TEXT_LEN = 1024;
40 static const int NX_NO_ERROR = 0;
41 static const int NX_NOT_AUTHORIZED = -1;
42 static const int NX_INVALID_ENCODER_NUMBER = -2;
43 static const int NX_UNKNOWN_PORT_NAME = -3;
44 static const int NX_UNSUPPORTED_CODEC = -8;
45 static const int NX_UNSUPPORTED_RESOLUTION = -9;
46 static const int NX_UNDEFINED_BEHAVOUR = -20;
47 static const int NX_NOT_IMPLEMENTED = -21;
48 static const int NX_NETWORK_ERROR = -22;
49 static const int NX_MORE_DATA = -23;
50 static const int NX_NO_DATA = -24;
51 static const int NX_IO_ERROR = -25;
56 static const int NX_PARAM_READ_ONLY = -40;
57 static const int NX_UNKNOWN_PARAMETER = -41;
58 static const int NX_INVALID_PARAM_VALUE = -42;
59 static const int NX_OTHER_ERROR = -100;
64 static const nxpl::NX_GUID IID_CameraDiscoveryManager = { { 0x0d, 0x06, 0x13, 0x4f, 0x16, 0xd0, 0x41, 0xc8, 0x97, 0x52, 0xa3, 0x3e, 0x81, 0xfe, 0x9c, 0x75 } };
67 static const nxpl::NX_GUID IID_CameraDiscoveryManager2 = { { 0x0d, 0x06, 0x13, 0x4f, 0x16, 0xd0, 0x41, 0xc8, 0x97, 0x52, 0xa3, 0x3e, 0x81, 0xfe, 0x9c, 0x74 } };
70 static const nxpl::NX_GUID IID_CameraDiscoveryManager3 = { { 0xFE, 0xA0, 0x45, 0x2D, 0x84, 0x93, 0x4F, 0xF3, 0x83, 0xE9, 0x72, 0xD5, 0xBF, 0x75, 0xA9, 0xDE } };
82 char url[MAX_TEXT_LEN];
104 strncpy(
uid, value.uid,
sizeof(
uid) - 1);
105 uid[
sizeof(
uid) - 1] =
'\0';
107 strncpy(
url, value.url,
sizeof(
url) - 1);
108 url[
sizeof(
url) - 1] =
'\0';
139 strncpy(groupId, value.groupId,
sizeof(groupId) - 1);
140 strncpy(groupName, value.groupName,
sizeof(groupName) - 1);
147 static const int CAMERA_INFO_ARRAY_SIZE = 256;
148 static const int MAX_MODEL_NAME_SIZE = 256;
208 const char* discoveryAddress,
209 const unsigned char* mdnsResponsePacket,
210 int mdnsResponsePacketSize,
251 virtual int checkHostAddress2(
nxcip::CameraInfo2* cameras,
const char* address,
const char* login,
const char* password) = 0;
252 virtual int findCameras2(
CameraInfo2* cameras,
const char* serverURL) = 0;
261 findLocalResources = 1
265 virtual int getCapabilities()
const = 0;
302 static const nxpl::NX_GUID IID_CameraMediaEncoder = { { 0x52, 0x8f, 0xd6, 0x41, 0x52, 0xbb, 0x4f, 0x8b, 0xb2, 0x79, 0x6c, 0x21, 0xfe, 0xf5, 0xa2, 0xbb } };
304 static const int MAX_RESOLUTION_LIST_SIZE = 64;
354 virtual int setFps(
const float& fps,
float* selectedFps ) = 0;
362 virtual int setBitrate(
int bitrateKbps,
int* selectedBitrateKbps ) = 0;
381 CompressionType compressionType;
385 ByteOrderType byteOrder;
390 int bitsPerCodedSample;
394 compressionType(AV_CODEC_ID_NONE),
397 byteOrder(boLittleEndian),
402 bitsPerCodedSample(0)
408 static const nxpl::NX_GUID IID_CameraMediaEncoder2 = { { 0x9a, 0x1b, 0xda, 0x18, 0x56, 0x3c, 0x42, 0xde, 0x8e, 0x23, 0xb9, 0x24, 0x4f, 0xd0, 0x6, 0x58 } };
428 #pragma pack(push, 1) 431 #define PACKED __attribute__((__packed__)) 439 LIVE_STREAM_FLAG_AUDIO_ENABLED = 0x1
451 uint8_t reserved_tail[96];
459 static const nxpl::NX_GUID IID_CameraMediaEncoder3 = { { 0xd1, 0xc7, 0xf0, 0x82, 0xb6, 0xf9, 0x45, 0xf3, 0x82, 0xd6, 0x3c, 0xfe, 0x3e, 0xae, 0x2, 0x60 } };
490 static const nxpl::NX_GUID IID_CameraMediaEncoder4 = { { 0x98, 0x07, 0xEA ,0x20, 0xFA, 0x37, 0x4E, 0xA7, 0xBF, 0x07, 0x9A, 0xC6 ,0x15 ,0x11 ,0xE1, 0xDF } };
495 virtual int setMediaUrl(
const char url[nxcip::MAX_TEXT_LEN]) = 0;
499 static const nxpl::NX_GUID IID_CameraMediaEncoder5 = { { 0x95, 0xd6, 0x92 ,0x38, 0x7a, 0x07, 0x46, 0x2f, 0x93, 0x64, 0x97, 0x1d ,0xd5 ,0x8b ,0x31, 0x5e } };
516 static const nxpl::NX_GUID IID_BaseCameraManager = { { 0xb7, 0xaa, 0x2f, 0xe8, 0x75, 0x92, 0x44, 0x59, 0xa5, 0x2f, 0xb0, 0x5e, 0x8e, 0x8, 0x9a, 0xfe } };
602 virtual void setCredentials(
const char* username,
const char* password ) = 0;
639 static const nxpl::NX_GUID IID_Picture = { { 0xa2, 0x01, 0x7c, 0x29, 0xce, 0x9e, 0x48, 0x29, 0x87, 0xbe, 0x92, 0x87, 0x59, 0x8a, 0x13, 0x58 } };
654 virtual int width()
const = 0;
656 virtual int height()
const = 0;
658 virtual int xStride(
int planeNumber )
const = 0;
660 virtual const void*
scanLine(
int planeNumber,
int lineNumber )
const = 0;
662 virtual void*
scanLine(
int planeNumber,
int lineNumber ) = 0;
667 virtual void*
data() = 0;
668 virtual const void*
data()
const = 0;
672 static const nxpl::NX_GUID IID_TimePeriods = { { 0x80, 0x06, 0xcc, 0x9f, 0x7b, 0xdd, 0x4a, 0x4c, 0x89, 0x20, 0xac, 0x55, 0x46, 0xd4, 0x92, 0x4a } };
685 virtual bool next() = 0;
689 virtual bool atEnd()
const = 0;
695 virtual bool get( UsecUTCTimestamp* start, UsecUTCTimestamp* end )
const = 0;
745 endTime( INVALID_TIMESTAMP_VALUE ),
755 static const nxpl::NX_GUID IID_BaseCameraManager2 = { { 0x11, 0x81, 0xf2, 0x3b, 0x07, 0x1c, 0x46, 0x08, 0x89, 0xe3, 0x64, 0x8e, 0x1a, 0x73, 0x5b, 0x54 } };
787 virtual int find( ArchiveSearchOptions* searchOptions, TimePeriods** timePeriods )
const = 0;
803 static const nxpl::NX_GUID IID_BaseCameraManager3 = { { 0x84, 0x0d, 0xee, 0xcd, 0x2f, 0x9b, 0x48, 0x59, 0x90, 0x81, 0x95, 0x92, 0xd1, 0x71, 0x77, 0xf8 } };
835 virtual int getParamValue(
const char* paramName,
char* valueBuf,
int* valueBufSize )
const = 0;
846 virtual int setParamValue(
const char* paramName,
const char* value ) = 0;
850 static const nxpl::NX_GUID IID_CameraPTZManager = { { 0x8b, 0xab, 0x5b, 0xc7, 0xbe, 0xfc, 0x46, 0x29, 0x92, 0x1f, 0x83, 0x90, 0xa2, 0x9d, 0x8a, 0x16 } };
939 virtual int continuousMove(
double panSpeed,
double tiltSpeed,
double zoomSpeed ) = 0;
994 virtual int getFlip(
int *flip ) = 0;
1014 static const nxpl::NX_GUID IID_MediaDataPacket = { { 0x76, 0x3c, 0x93, 0xdc, 0xa7, 0x7d, 0x41, 0xff, 0x80, 0x71, 0xb6, 0x4c, 0x4d, 0x3a, 0xfc, 0xff } };
1038 DEPRECATED_fLowQuality = 0x08,
1047 virtual UsecUTCTimestamp
timestamp()
const = 0;
1062 virtual const void*
data()
const = 0;
1068 virtual unsigned int dataSize()
const = 0;
1080 virtual CompressionType
codecType()
const = 0;
1083 virtual unsigned int flags()
const = 0;
1089 virtual unsigned int cSeq()
const = 0;
1093 static const nxpl::NX_GUID IID_MediaDataPacket2 = { { 0x65, 0xe9, 0x54, 0x8d, 0x0b, 0xa6, 0x48, 0xcb, 0xa2, 0x17, 0xae, 0x6a, 0xe2, 0x70, 0xce, 0x7d } };
1099 virtual const char*
extradata()
const = 0;
1106 static const nxpl::NX_GUID IID_Encryptable = { { 0xa3, 0xf5, 0xd1, 0xba, 0x5a, 0x74, 0x42, 0xbd, 0x88, 0x90, 0xa1, 0xc6, 0xe0, 0x19, 0x7c, 0x4 } };
1116 virtual const uint8_t* encryptionData()
const = 0;
1117 virtual int encryptionDataSize()
const = 0;
1120 static const unsigned int DEFAULT_MOTION_DATA_PICTURE_WIDTH = 44;
1121 static const unsigned int DEFAULT_MOTION_DATA_PICTURE_HEIGHT = 32;
1124 static const nxpl::NX_GUID IID_VideoDataPacket = { { 0xa8, 0x5d, 0x88, 0x4b, 0xf0, 0x5e, 0x4f, 0xff, 0x8b, 0x5a, 0xe3, 0x65, 0x70, 0xe7, 0x30, 0x67 } };
1147 static const nxpl::NX_GUID IID_StreamReader = { { 0xaf, 0xe4, 0xee, 0xda, 0x37, 0x70, 0x42, 0xc3, 0x83, 0x81, 0xee, 0x3b, 0x55, 0x52, 0x25, 0x51 } };
1191 static const nxpl::NX_GUID IID_DtsArchiveReader = { { 0xce, 0xb9, 0x78, 0x32, 0xe9, 0x31, 0x49, 0x65, 0x9b, 0x18, 0xa8, 0xa1, 0x55, 0x71, 0x7, 0xd7 } };
1272 virtual int open() = 0;
1282 virtual UsecUTCTimestamp
startTime()
const = 0;
1287 virtual UsecUTCTimestamp
endTime()
const = 0;
1303 UsecUTCTimestamp timestamp,
1305 UsecUTCTimestamp* selectedPosition ) = 0;
1321 UsecUTCTimestamp timestamp,
1322 UsecUTCTimestamp* selectedPosition ) = 0;
1344 bool waitForKeyFrame ) = 0;
1360 UsecUTCTimestamp start,
1361 UsecUTCTimestamp endTimeHint,
1362 unsigned int step ) = 0;
1372 static const nxpl::NX_GUID IID_CameraMotionDataProvider = { { 0xc6, 0xf0, 0x6a, 0x48, 0x8e, 0x3a, 0x46, 0x90, 0x8b, 0x21, 0xca, 0xc4, 0xa9, 0x55, 0xd7, 0xed } };
1386 static const nxpl::NX_GUID IID_CameraRelayIOManager = { { 0x87, 0x2f, 0x47, 0x3f, 0x72, 0xcf, 0x43, 0x97, 0x81, 0xe6, 0xc0, 0x6d, 0x42, 0xe9, 0x71, 0x13 } };
1388 static const int MAX_ID_LEN = 64;
1389 static const int MAX_RELAY_PORT_COUNT = 32;
1424 const char* outputID,
1426 unsigned int autoResetTimeoutMS ) = 0;
1473 static const nxpl::NX_GUID IID_CameraInputEventHandler = { { 0xcc, 0x1e, 0x74, 0x9f, 0x2e, 0xc6, 0x4b, 0x73, 0xbe, 0xc9, 0x8f, 0x2a, 0xe9, 0xb7, 0xfc, 0xce } };
1493 const char* inputPortID,
1495 unsigned long int timestamp ) = 0;
1499 #endif //NX_CAMERA_PLUGIN_H Resolution resolution
Guess what.
Definition: camera_plugin.h:288
VMS Camera Integration Plugin API (c++)
Definition: camera_plugin.h:30
virtual int getEncoderCount(int *encoderCount) const =0
Provides maximum number of available encoders.
Camera supports absolute positioning in device-specific coordinate space.
Definition: camera_plugin.h:891
virtual const void * scanLine(int planeNumber, int lineNumber) const =0
Returns pointer to horizontal line lineNumber (starting with 0) of plane planeNumber.
CameraCapability3
Definition: camera_plugin.h:815
Camera sends absolute timestamps in media stream.
Definition: camera_plugin.h:586
char modelName[256]
Camera model name in any human readable format. MUST NOT be empty.
Definition: camera_plugin.h:76
Set of options, used to search archive.
Definition: camera_plugin.h:699
virtual StreamReader * getStreamReader()=0
Returns stream reader.
int width
Width in pixels.
Definition: camera_plugin.h:272
virtual int width() const =0
Width (pixels)
virtual void setCredentials(const char *username, const char *password)=0
Set credentials for camera access.
char auxiliaryData[256]
Any data in implementation defined format (for internal plugin usage)
Definition: camera_plugin.h:84
Extends BaseCameraManager2 by adding editable parameters.
Definition: camera_plugin.h:810
virtual int getReservedModelList(char **modelList, int *count)=0
Get model names, reserved by the plugin.
Definition: camera_plugin.h:1113
CoordinateSpace
Definition: camera_plugin.h:899
if present, nxcip::BaseCameraManager2::find supports ArchiveSearchOptions::motionMask() ...
Definition: camera_plugin.h:766
virtual void getLastErrorString(char *errorString) const =0
Returns text description of the last error.
DataPacketType
Type of packets provided by StreamReader.
Definition: camera_plugin.h:998
Provides access to motion detection support, implemented on camera.
Definition: camera_plugin.h:1375
bool descSortOrder
Definition: camera_plugin.h:739
Definition: camera_plugin.h:911
static const int NX_INTERRUPTED
Blocking call has been interrupted (e.g., by StreamReader::interrupt)
Definition: camera_plugin.h:55
provides media stream through StreamReader interface, otherwise - CameraMediaEncoder::getMediaUrl is ...
Definition: camera_plugin.h:578
allow multiple instances on a same IP address
Definition: camera_plugin.h:576
virtual int height() const =0
Height (pixels)
virtual bool atEnd() const =0
virtual void getVendorName(char *buf) const =0
Returns utf-8 camera vendor name.
virtual CameraMotionDataProvider * getCameraMotionDataProvider() const =0
MUST return not-NULL if hardwareMotionCapability is present.
virtual int setQuality(MediaStreamQuality quality, bool waitForKeyFrame)=0
Select media stream quality (used for dynamic media stream adaptation)
float maxFps
Maximum fps, allowed for resolution.
Definition: camera_plugin.h:290
CameraCapability
Enumeration of supported camera capabilities (bit flags)
Definition: camera_plugin.h:567
Definition: camera_plugin.h:255
Definition: camera_plugin.h:435
Camera supports absolute pan.
Definition: camera_plugin.h:884
if this flag is enabled, CameraRelayIOManager MUST be implemented
Definition: camera_plugin.h:571
Camera supports absolute zoom.
Definition: camera_plugin.h:886
virtual void unregisterEventHandler(CameraInputEventHandler *handler)=0
Removes handler from event receiver list.
virtual void stopInputPortMonitoring()=0
Stops input port monitoring if internal monitoring counter has reached zero.
Contains resolution and maximum fps, supported by camera for this resolution.
Definition: camera_plugin.h:285
virtual int continuousMove(double panSpeed, double tiltSpeed, double zoomSpeed)=0
Starts or stops continuous PTZ movement.
Camera is bound to a particular server.
Definition: camera_plugin.h:589
virtual bool isReverseModeEnabled() const =0
Returns true if reverse mode is currently on.
Base class for every interface, provided by plugin.
Definition: plugin_api.h:44
virtual const char * getParametersDescriptionXML() const =0
Returns XML describing camera parameters.
virtual int planeCount() const =0
Returns number of planes in picture (this depends on format)
virtual UsecUTCTimestamp startTime() const =0
Returns timestamp (usec (microseconds) since 1970-01-01, UTC) of oldest data, present in the archive...
virtual void interrupt()=0
Interrupt StreamReader::getNextData blocked in other thread.
camera parameters can be read/set even if camera is not accessible at the moment
Definition: camera_plugin.h:580
bool keepSmallChunks
Definition: camera_plugin.h:729
virtual int getRelayOutputList(char **idList, int *idNum) const =0
Returns list of IDs of available relay output ports.
virtual int seek(unsigned int cSeq, UsecUTCTimestamp timestamp, bool findKeyFrame, UsecUTCTimestamp *selectedPosition)=0
Seek to specified position in stream.
Used for reading media stream from camera.
Definition: camera_plugin.h:1156
virtual int absoluteMove(CoordinateSpace space, double pan, double tilt, double zoom, double speed)=0
Sets camera PTZ position in the given coordinate space.
virtual void goToBeginning()=0
Move cursor to the first position.
CameraCapability2
Enumeration of supported camera capabilities (bit flags)
Definition: camera_plugin.h:764
Default quality SHOULD be high quality.
Definition: camera_plugin.h:1180
char url[MAX_TEXT_LEN]
Camera management url. Can contain just address. MUST NOT be empty.
Definition: camera_plugin.h:82
static const unsigned int MEDIA_DATA_BUFFER_ALIGNMENT
Required alignment of MediaDataPacket::data() buffer.
Definition: camera_plugin.h:1016
virtual int getFlip(int *flip)=0
Gets the camera streams's flipped state.
Picture * motionMask
Definition: camera_plugin.h:711
int32_t reserved_head
reserved, do not use
Definition: camera_plugin.h:442
Provides access to archive, stored on camera.
Definition: camera_plugin.h:1207
if set, camera supports audio
Definition: camera_plugin.h:573
if present, nxcip::BaseCameraManager3::setMotionMask is implemented
Definition: camera_plugin.h:767
virtual int setRelayOutputState(const char *outputID, int activate, unsigned int autoResetTimeoutMS)=0
Change state of relay output port.
virtual unsigned int getCapabilities() const =0
Returns bit mask with supported capabilities.
motion data can be provided in media stream
Definition: camera_plugin.h:1262
GUID of plugin interface.
Definition: plugin_api.h:26
virtual int setMotionDataEnabled(bool motionPresent)=0
Toggle motion data in media stream on/off.
This interface is used to find cameras and create BaseCameraManager instance.
Definition: camera_plugin.h:164
virtual int findCameras(CameraInfo *cameras, const char *serverURL)=0
Vendor-specific camera search method. Returns list of found cameras.
Extends BaseCameraManager by adding remote archive storage support (e.g., storage is mounted directly...
Definition: camera_plugin.h:758
Logical coordinate space — degrees for pan, tilt and fov (zoom).
Definition: camera_plugin.h:902
virtual int open()=0
Initialize connection to archive.
virtual int checkHostAddress(CameraInfo *cameras, const char *address, const char *login, const char *password)=0
Check host for camera presence.
Contains base camera information.
Definition: camera_plugin.h:73
Audio packet. Can contain multiple audio frames.
Definition: camera_plugin.h:1001
Capabilities
Definition: camera_plugin.h:1212
CameraInfo()
Initializes all values with zeros/empty strings.
Definition: camera_plugin.h:91
int32_t codec
Definition: camera_plugin.h:444
Resolution of video stream picture.
Definition: camera_plugin.h:269
virtual void getLastErrorString(char *errorString) const =0
Returns text description of the last error.
if second stream is running whatever megapixel it has => first stream can get maxMegapixels - seconds...
Definition: camera_plugin.h:575
static const unsigned int MEDIA_PACKET_BUFFER_PADDING_SIZE
Required padding after media data (see MediaDataPacket::data() description)
Definition: camera_plugin.h:1018
virtual int startInputPortMonitoring()=0
Starts relay input monitoring or increments internal counter, if already started. ...
Pan-tilt-zoom management.
Definition: camera_plugin.h:871
Camera supports continuous tilt.
Definition: camera_plugin.h:881
camera's media streams are editable and can be provided directly via setProperty API call...
Definition: camera_plugin.h:585
virtual int getParamValue(const char *paramName, char *valueBuf, int *valueBufSize) const =0
Reads value of parameter paramName.
Definition: camera_plugin.h:246
Picture.
Definition: camera_plugin.h:642
char defaultPassword[256]
Plugin can specify default credentials to use with camera.
Definition: camera_plugin.h:88
if present, nxcip::BaseCameraManager3::setMotionMask is implemented
Definition: camera_plugin.h:582
Relay input/output management.
Definition: camera_plugin.h:1395
char firmware[256]
Firmware version in any human readable format. Optional.
Definition: camera_plugin.h:78
Definition: camera_plugin.h:121
Low quality.
Definition: camera_plugin.h:1187
Signals that reverse playback by GOP (group of picture) reordering is supported.
Definition: camera_plugin.h:1255
virtual void getLastErrorString(char *errorString) const =0
Returns text description of last error.
virtual int getCameraCapabilities(unsigned int *capabilitiesMask) const =0
Return bit set of camera capabilities (CameraCapability enumeration)
virtual int getCapabilities() const =0
Returns bitset of Capability enumeration members.
Camera supports flip state queries.
Definition: camera_plugin.h:888
camera supports hardware motion. Plugin, returning this flag, MUST implement BaseCameraManager::nativ...
Definition: camera_plugin.h:569
virtual int getCameraInfo(CameraInfo *info) const =0
Fills info struct with camera data.
virtual UsecUTCTimestamp endTime() const =0
Returns timestamp (usec (microseconds) since 1970-01-01, UTC) of newest data, present in the archive...
Definition: camera_plugin.h:892
if this flag is enabled, CameraRelayIOManager MUST be implemented
Definition: camera_plugin.h:570
virtual int fromUpnpData(const char *upnpXMLData, int upnpXMLDataSize, CameraInfo *cameraInfo)=0
UPNP camera search method.
virtual int getPosition(CoordinateSpace space, double *pan, double *tilt, double *zoom)=0
Gets PTZ position from camera in the given coordinate space.
virtual Picture * getMotionData() const =0
Returns motion data. Can be NULL, if no motion.
Video packet. Usually contains one frame. Video packet class MUST inherit nxcip::VideoDataPacket.
Definition: camera_plugin.h:1003
virtual CameraPtzManager * getPtzManager() const =0
MUST return not-NULL if ptzCapability is present.
Array of time periods.
Definition: camera_plugin.h:675
if present, nxcip::BaseCameraManager2::find supports ArchiveSearchOptions::motionMask() ...
Definition: camera_plugin.h:581
virtual int find(ArchiveSearchOptions *searchOptions, TimePeriods **timePeriods) const =0
Find regions of archive, satisfying given conditions.
virtual int getInputPortList(char **idList, int *idNum) const =0
Returns list of IDs of available relay input ports.
virtual void registerEventHandler(CameraInputEventHandler *handler)=0
Registers handler as event receiver.
virtual CameraRelayIOManager * getCameraRelayIOManager() const =0
MUST return not-NULL if BaseCameraManager::relayInputCapability is present.
packet will be tested if it's a I-Frame. Use it if plugin can't set fKeyPacket
Definition: camera_plugin.h:583
Camera supports continuous zoom.
Definition: camera_plugin.h:882
if this flag is enabled, CameraPTZManager MUST be implemented
Definition: camera_plugin.h:572
int limit
Definition: camera_plugin.h:734
char uid[256]
Camera's unique identifier. MAC address can be used. MUST NOT be empty.
Definition: camera_plugin.h:80
virtual int setAudioEnabled(int audioEnabled)=0
Turn on/off audio on ALL encoders.
Camera supports absolute tilt.
Definition: camera_plugin.h:885
virtual int getLimits(CoordinateSpace space, Limits *limits)=0
Gets PTZ limits of the camera.
#define LL
Definition: debug.h:145
camera provides relative timestamps. It need to align them to the current time.
Definition: camera_plugin.h:584
virtual int setParamValue(const char *paramName, const char *value)=0
Set value of parameter paramName to value.
Capability
Definition: camera_plugin.h:878
Provides base camera operations: getting/settings fps, resolution, bitrate, media stream url(s)...
Definition: camera_plugin.h:527
UsecUTCTimestamp startTime
Min data timestamp that is of interest.
Definition: camera_plugin.h:713
camera has archive storage and provides access to its archive
Definition: camera_plugin.h:577
int32_t flags
Definition: camera_plugin.h:443
virtual int fromMDNSData(const char *discoveryAddress, const unsigned char *mdnsResponsePacket, int mdnsResponsePacketSize, CameraInfo *cameraInfo)=0
MDNS camera search method.
virtual int getNextData(MediaDataPacket **packet)=0
Returns media packet or NULL in case of error.
char defaultLogin[256]
Plugin can specify default credentials to use with camera.
Definition: camera_plugin.h:86
Server should not open video from camera at its will.
Definition: camera_plugin.h:590
Camera supports coordinate space limits queries.
Definition: camera_plugin.h:889
Video packet. MUST contain complete frame (or field in case of interlaced video)
Definition: camera_plugin.h:1127
Camera supports continuous pan.
Definition: camera_plugin.h:880
virtual int xStride(int planeNumber) const =0
Length of horizontal line (in bytes) of plane planeNumber.
virtual PixelFormat pixelFormat() const =0
Returns pixel format.
PixelFormat
Definition: camera_plugin_types.h:39
int height
Height in pixels.
Definition: camera_plugin.h:274
virtual int playRange(unsigned int cSeq, UsecUTCTimestamp start, UsecUTCTimestamp endTimeHint, unsigned int step)=0
Play time range [start; end) skipping frames.
UsecUTCTimestamp endTime
Max data timestamp that is of interest.
Definition: camera_plugin.h:715
Analytics Engine mustn't bind to the Device.
Definition: camera_plugin.h:591
virtual int setMotionMask(Picture *motionMask)=0
If camera plugin implements this method, it MUST report motion only on for region specified (motionMa...
virtual int setReverseMode(unsigned int cSeq, bool isReverse, UsecUTCTimestamp timestamp, UsecUTCTimestamp *selectedPosition)=0
Set playback direction (forward/reverse)
unsigned long long periodDetailLevel
Definition: camera_plugin.h:723
MediaStreamQuality
Definition: camera_plugin.h:1177
Camera parameters can be read/set even if camera is not accessible at the moment. ...
Definition: camera_plugin.h:817
Camera supports multicast streaming.
Definition: camera_plugin.h:588
virtual BaseCameraManager * createCameraManager(const CameraInfo &info)=0
Instantiates camera manager instance based on info.
Packet containing no data (e.g., signals end of stream)
Definition: camera_plugin.h:1008
Device-specific coordinate space.
Definition: camera_plugin.h:901
High quality.
Definition: camera_plugin.h:1185
virtual int getEncoder(int encoderIndex, CameraMediaEncoder **encoderPtr)=0
Returns encoder by index.
static const int NX_TRY_AGAIN
Operation could not be completed now, but it may still be available later.
Definition: camera_plugin.h:53
virtual int createDtsArchiveReader(DtsArchiveReader **dtsArchiveReader) const =0
Returns not NULL if BaseCameraManager::dtsArchiveCapability is supported.
Camera does not allow to change stream quality/fps.
Definition: camera_plugin.h:587
it is allowed to detect motion by primary stream (if no dual streaming on camera) ...
Definition: camera_plugin.h:579
frame skipping with DtsArchiveReader::setSkipFrames method is supported
Definition: camera_plugin.h:1260
if second stream is running whatever fps it has => first stream can get maximumFps - secondstreamFps ...
Definition: camera_plugin.h:574