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> 25 result.v = std::move(t);
32 result.e = std::move(s);
46 std::string error()
const 53 std::optional<std::string> e;
69 const std::string&
id,
70 const std::string& name,
71 const std::string& description,
72 const std::string& version,
73 const std::string& vendor);
91 std::string description;
100 TimePeriod(
const char* jsonStr) noexcept(
false);
102 TimePeriod(std::chrono::milliseconds startTimestamp, std::chrono::milliseconds duration);
111 std::chrono::milliseconds startTimestamp{-1};
112 std::chrono::milliseconds duration{-1};
114 bool isInfinite()
const;
115 bool contains(std::chrono::milliseconds timestamp)
const;
117 bool intersects(
const TimePeriod& other)
const;
118 std::optional<std::chrono::milliseconds> endTimestamp()
const;
121 bool operator<(
const TimePeriod& other)
const;
122 bool operator==(
const TimePeriod& other)
const;
125 using TimePeriodList = std::vector<TimePeriod>;
126 nx::kit::Json timePeriodListToJson(
const TimePeriodList& timePeriods);
127 TimePeriodList timePeriodListFromJson(
const char* data);
134 KeyValuePair(
const std::string& name,
const std::string& value);
150 nx::kit::Json keyValuePairsToJson(
const std::vector<KeyValuePair>& keyValuePairList);
170 std::vector<DeviceParameter> parameters;
172 const char* getParamValue(
const std::string& key)
const;
174 std::optional<std::string> deviceId()
const;
179 std::string toString(sdk::cloud_storage::MetadataType metadataType);
186 Bookmark(
const char* jsonData) noexcept(
false);
196 bool operator==(
const Bookmark&)
const;
203 std::string creatorId;
204 std::chrono::milliseconds creationTimestamp{};
206 std::string description;
207 std::chrono::milliseconds timeout = std::chrono::milliseconds(-1);
208 std::chrono::milliseconds startTimestamp;
209 std::chrono::milliseconds duration{};
210 std::vector<std::string> tags;
211 std::string deviceId;
214 using BookmarkList = std::vector<Bookmark>;
216 BookmarkList bookmarkListFromJson(
const char* data);
224 std::string sortOrderToString(SortOrder order);
225 SortOrder sortOrderFromString(
const std::string& s);
231 enum class SortColumn
255 static std::string sortColumnToString(SortColumn column);
256 static SortColumn sortColumnFromString(
const std::string& s);
258 std::optional<std::string> id;
259 std::optional<std::chrono::milliseconds> startTimestamp;
260 std::optional<std::chrono::milliseconds> endTimestamp;
262 std::optional<std::string> text;
263 std::optional<int> limit;
264 SortOrder order = SortOrder::ascending;
265 SortColumn column = SortColumn::startTime;
267 std::optional<std::chrono::milliseconds> minVisibleLength;
268 std::vector<std::string> deviceIds;
269 std::optional<std::chrono::milliseconds> creationStartTimestamp;
270 std::optional<std::chrono::milliseconds> creationEndTimestamp;
279 Motion(
const char* jsonData) noexcept(
false);
286 Motion(
const T&) =
delete;
288 bool operator==(
const Motion&)
const;
291 std::chrono::milliseconds startTimestamp;
292 std::chrono::milliseconds duration{};
293 std::string deviceId;
299 std::string dataBase64;
306 Rect(
const char* jsonData) noexcept(
false);
308 Rect(
double x,
double y,
double w,
double h);
315 Rect(
const T&) =
delete;
317 bool operator==(
const Rect&)
const;
326 bool isEmpty()
const;
327 bool intersectsWith(
const Rect& other)
const;
330 double right()
const;
331 double bottom()
const;
334 bool isInside(
double x,
double y)
const;
355 std::vector<std::string> deviceIds;
361 std::vector<Rect> regions;
363 std::optional<int> limit;
366 SortOrder
order = SortOrder::descending;
370 std::chrono::milliseconds detailLevel;
374 using Attributes = std::vector<KeyValuePair>;
393 std::string boundingBoxGridBase64;
404 BestShot(
const char* jsonData) noexcept(
false);
412 bool operator==(
const BestShot&)
const;
417 std::chrono::microseconds timestamp{};
419 int streamIndex = -1;
440 std::string deviceId;
444 std::string objectTypeId;
448 Attributes attributes;
450 std::chrono::microseconds firstAppearanceTimestamp{};
452 std::chrono::microseconds lastAppearanceTimestamp{};
456 std::string analyticsEngineId;
477 std::string objectTrackId;
484 using AnalyticsLookupResult = std::vector<ObjectTrack>;
486 AnalyticsLookupResult analyticsLookupResultFromJson(
const char* data);
493 RangePoint(
const char* jsonData) noexcept(
false);
508 bool inclusive =
false;
529 NumericRange(std::optional<RangePoint> from, std::optional<RangePoint> to):
530 from(std::move(from)), to(std::move(to))
534 static std::optional<NumericRange> fromString(
const std::string& s);
541 std::optional<RangePoint> from;
542 std::optional<RangePoint> to;
579 attributePresenceCheck,
585 static std::string typeToString(Type type);
586 static Type typeFromString(
const std::string& s);
595 bool isNegative =
false;
598 bool matchesFromStart =
false;
601 bool matchesTillEnd =
false;
628 ignoreTextFilter = 0x1,
629 ignoreBoundingBox = 0x2,
630 ignoreTimePeriod = 0x4,
633 static std::string optionsToString(
int options);
634 static int optionsFromString(
const std::string& s);
637 std::vector<std::string> deviceIds;
640 std::vector<std::string> objectTypeIds;
642 std::optional<std::string> objectTrackId;
647 std::optional<Rect> boundingBox;
648 std::optional<int> maxObjectTracksToSelect;
649 std::vector<AttributeSearchCondition> attributeSearchConditions;
652 SortOrder
order = SortOrder::descending;
654 std::optional<std::string> analyticsEngineId;
655 int options = Option::none;
656 std::chrono::milliseconds detailLevel{};
674 nxcip::CompressionType compressionType = nxcip::CompressionType::AV_CODEC_ID_NONE;
679 int64_t codecTag = -1;
680 int64_t bitRate = -1;
686 int bitsPerCodedSample = -1;
687 int64_t channelLayout = -1;
688 std::string extradataBase64;
689 int channelNumber = -1;
703 std::vector<uint8_t> data;
705 nxcip::CompressionType compressionType = nxcip::CompressionType::AV_CODEC_ID_NONE;
706 nxcip::UsecUTCTimestamp timestampUs = 0;
707 IMediaDataPacket::Type type = IMediaDataPacket::Type::unknown;
708 int channelNumber = -1;
709 bool isKeyFrame =
false;
710 std::vector<uint8_t> encryptionData;
723 std::string serviceId;
729 using CloudDeviceEntryList = std::vector<CloudDeviceReportEntry>;
740 std::string cloudSystemId;
741 CloudDeviceEntryList devices;
Definition: i_codec_info.h:15
MediaType
Definition: camera_plugin_types.h:65
SortOrder order
Definition: data.h:366
Definition: i_device_info.h:13
Definition: i_device_agent.h:21
SortOrder order
Definition: data.h:652
Definition: algorithm.cpp:8
PixelFormat
Definition: camera_plugin_types.h:39
MediaStreamQuality
Definition: camera_plugin.h:1177
SampleFormat
Definition: camera_plugin_types.h:76