11 #include <camera/camera_plugin.h> 13 #include <nx/sdk/cloud_storage/i_media_data_packet.h> 14 #include <nx/sdk/cloud_storage/i_plugin.h> 15 #include <nx/sdk/i_device_info.h> 24 const std::string&
id,
25 const std::string& name,
26 const std::string& description,
27 const std::string& version,
28 const std::string& vendor);
43 std::string description;
54 TimePeriod(std::chrono::milliseconds startTimestamp, std::chrono::milliseconds duration);
60 std::chrono::milliseconds startTimestamp{-1};
61 std::chrono::milliseconds duration{-1};
63 bool isInfinite()
const;
64 bool contains(std::chrono::milliseconds timestamp)
const;
66 bool intersects(
const TimePeriod& other)
const;
67 std::optional<std::chrono::milliseconds> endTimestamp()
const;
71 bool operator==(
const TimePeriod& other)
const;
74 using TimePeriodList = std::vector<TimePeriod>;
75 nx::kit::Json timePeriodListToJson(
const TimePeriodList& timePeriods);
76 TimePeriodList timePeriodListFromJson(
const char* data);
83 KeyValuePair(
const std::string& name,
const std::string& value);
96 nx::kit::Json keyValuePairsToJson(
const std::vector<KeyValuePair>& keyValuePairList);
113 std::vector<DeviceParameter> parameters;
115 const char* getParamValue(
const std::string& key)
const;
117 std::optional<std::string> deviceId()
const;
122 std::string toString(sdk::cloud_storage::MetadataType metadataType);
136 bool operator==(
const Bookmark&)
const;
143 std::string creatorId;
144 std::chrono::milliseconds creationTimestamp{};
146 std::string description;
147 std::chrono::milliseconds timeout = std::chrono::milliseconds(-1);
148 std::chrono::milliseconds startTimestamp;
149 std::chrono::milliseconds duration{};
150 std::vector<std::string> tags;
151 std::string deviceId;
154 using BookmarkList = std::vector<Bookmark>;
156 BookmarkList bookmarkListFromJson(
const char* data);
164 std::string sortOrderToString(SortOrder order);
165 SortOrder sortOrderFromString(
const std::string& s);
171 enum class SortColumn
192 static std::string sortColumnToString(SortColumn column);
193 static SortColumn sortColumnFromString(
const std::string& s);
195 std::optional<std::string> id;
196 std::optional<std::chrono::milliseconds> startTimestamp;
197 std::optional<std::chrono::milliseconds> endTimestamp;
199 std::optional<std::string> text;
200 std::optional<int> limit;
201 SortOrder order = SortOrder::ascending;
202 SortColumn column = SortColumn::startTime;
204 std::optional<std::chrono::milliseconds> minVisibleLength;
205 std::vector<std::string> deviceIds;
206 std::optional<std::chrono::milliseconds> creationStartTimestamp;
207 std::optional<std::chrono::milliseconds> creationEndTimestamp;
216 Motion(
const char* jsonData);
220 Motion(
const T&) =
delete;
222 bool operator==(
const Motion&)
const;
225 std::chrono::milliseconds startTimestamp;
226 std::chrono::milliseconds duration{};
227 std::string deviceId;
233 std::string dataBase64;
240 Rect(
const char* jsonData);
242 Rect(
double x,
double y,
double w,
double h);
246 Rect(
const T&) =
delete;
248 bool operator==(
const Rect&)
const;
257 bool isEmpty()
const;
258 bool intersectsWith(
const Rect& other)
const;
261 double right()
const;
262 double bottom()
const;
265 bool isInside(
double x,
double y)
const;
283 std::vector<std::string> deviceIds;
289 std::vector<Rect> regions;
291 std::optional<int> limit;
294 SortOrder
order = SortOrder::descending;
298 std::chrono::milliseconds detailLevel;
302 using Attributes = std::vector<KeyValuePair>;
318 std::string boundingBoxGridBase64;
334 bool operator==(
const BestShot&)
const;
339 std::chrono::microseconds timestamp{};
341 int streamIndex = -1;
359 std::string deviceId;
363 std::string objectTypeId;
367 Attributes attributes;
369 std::chrono::microseconds firstAppearanceTimestamp{};
371 std::chrono::microseconds lastAppearanceTimestamp{};
375 std::string analyticsEngineId;
393 std::string objectTrackId;
400 using AnalyticsLookupResult = std::vector<ObjectTrack>;
402 AnalyticsLookupResult analyticsLookupResultFromJson(
const char* data);
421 bool inclusive =
false;
439 NumericRange(std::optional<RangePoint> from, std::optional<RangePoint> to):
440 from(std::move(from)), to(std::move(to))
444 static std::optional<NumericRange> fromString(
const std::string& s);
451 std::optional<RangePoint> from;
452 std::optional<RangePoint> to;
486 attributePresenceCheck,
492 static std::string typeToString(Type type);
493 static Type typeFromString(
const std::string& s);
502 bool isNegative =
false;
505 bool matchesFromStart =
false;
508 bool matchesTillEnd =
false;
532 ignoreTextFilter = 0x1,
533 ignoreBoundingBox = 0x2,
534 ignoreTimePeriod = 0x4,
537 static std::string optionsToString(
int options);
538 static int optionsFromString(
const std::string& s);
541 std::vector<std::string> deviceIds;
544 std::vector<std::string> objectTypeIds;
546 std::optional<std::string> objectTrackId;
551 std::optional<Rect> boundingBox;
552 std::optional<int> maxObjectTracksToSelect;
553 std::vector<AttributeSearchCondition> attributeSearchConditions;
556 SortOrder
order = SortOrder::descending;
558 std::optional<std::string> analyticsEngineId;
559 int options = Option::none;
560 std::chrono::milliseconds detailLevel{};
575 nxcip::CompressionType compressionType = nxcip::CompressionType::AV_CODEC_ID_NONE;
580 int64_t codecTag = -1;
581 int64_t bitRate = -1;
587 int bitsPerCodedSample = -1;
588 int64_t channelLayout = -1;
589 std::string extradataBase64;
590 int channelNumber = -1;
604 std::vector<uint8_t> data;
606 nxcip::CompressionType compressionType = nxcip::CompressionType::AV_CODEC_ID_NONE;
607 nxcip::UsecUTCTimestamp timestampUs = 0;
608 IMediaDataPacket::Type type = IMediaDataPacket::Type::unknown;
609 int channelNumber = -1;
610 bool isKeyFrame =
false;
611 std::vector<uint8_t> encryptionData;
621 std::string serviceId;
627 using CloudDeviceEntryList = std::vector<CloudDeviceReportEntry>;
635 std::string cloudSystemId;
636 CloudDeviceEntryList devices;
Definition: i_codec_info.h:15
MediaType
Definition: camera_plugin_types.h:65
SortOrder order
Definition: data.h:294
Definition: i_device_info.h:13
Definition: i_device_agent.h:21
SortOrder order
Definition: data.h:556
Definition: algorithm.cpp:8
PixelFormat
Definition: camera_plugin_types.h:39
MediaStreamQuality
Definition: camera_plugin.h:1177
SampleFormat
Definition: camera_plugin_types.h:76