12 #include <camera/camera_plugin.h> 14 #include <nx/sdk/cloud_storage/i_media_data_packet.h> 15 #include <nx/sdk/cloud_storage/i_integration.h> 16 #include <nx/sdk/i_device_info.h> 27 result.v = std::move(t);
34 result.e = std::move(s);
48 std::string error()
const 55 std::optional<std::string> e;
72 std::string sortOrderToString(SortOrder order);
73 SortOrder sortOrderFromString(
const std::string& s);
96 const std::string&
id,
97 const std::string&
name,
99 const std::string& version,
100 const std::string& vendor);
117 std::chrono::milliseconds startTimestamp{-1};
118 std::chrono::milliseconds duration{-1};
121 TimePeriod(
const char* jsonStr) noexcept(
false);
123 TimePeriod(std::chrono::milliseconds startTimestamp, std::chrono::milliseconds duration);
132 bool isInfinite()
const;
133 bool contains(std::chrono::milliseconds timestamp)
const;
135 bool intersects(
const TimePeriod& other)
const;
136 std::optional<std::chrono::milliseconds> endTimestamp()
const;
139 bool operator<(
const TimePeriod& other)
const;
140 bool operator==(
const TimePeriod& other)
const;
141 bool operator!=(
const TimePeriod& other)
const;
159 void forEach(std::function<
void(
const TimePeriod&)> func)
const;
162 void shrink(
size_t size);
164 void setLastDuration(std::chrono::milliseconds duration);
166 SortOrder sortOrder()
const;
169 std::optional<TimePeriod> last()
const;
172 SortOrder m_order = SortOrder::ascending;
173 std::vector<int64_t> m_periods;
174 std::optional<std::chrono::milliseconds> m_lastStartTimestmapMs;
177 void recalculateLastTimestamp();
189 KeyValuePair(
const std::string& name,
const std::string& value);
202 nx::kit::Json keyValuePairsToJson(
const std::vector<KeyValuePair>& keyValuePairList);
211 std::vector<DeviceParameter> parameters;
227 const char* getParamValue(
const std::string& key)
const;
229 std::optional<std::string> deviceId()
const;
236 std::string toString(sdk::cloud_storage::MetadataType metadataType);
251 std::chrono::milliseconds creationTimestamp{};
253 std::string description;
254 std::chrono::milliseconds timeout = std::chrono::milliseconds(-1);
255 std::chrono::milliseconds startTimestamp{};
256 std::chrono::milliseconds duration{};
257 std::vector<std::string> tags;
258 std::string deviceId;
261 Bookmark(
const char* jsonData) noexcept(
false);
263 Bookmark() =
default;
265 static ValueOrError<Bookmark> fromJson(
const char* jsonStr) noexcept;
266 static ValueOrError<Bookmark> fromJson(
const nx::kit::Json& json) noexcept;
269 Bookmark(
const T&) =
delete;
271 bool operator==(
const Bookmark&)
const;
276 using BookmarkList = std::vector<Bookmark>;
278 BookmarkList bookmarkListFromJson(
const char* data);
286 enum class SortColumn
296 std::optional<std::string> id;
297 std::optional<std::chrono::milliseconds> startTimestamp;
298 std::optional<std::chrono::milliseconds> endTimestamp;
301 std::optional<std::string>
text;
303 std::optional<int> limit;
304 SortOrder order = SortOrder::ascending;
305 SortColumn column = SortColumn::startTime;
310 std::vector<std::string> deviceIds;
311 std::optional<std::chrono::milliseconds> creationStartTimestamp;
312 std::optional<std::chrono::milliseconds> creationEndTimestamp;
328 std::string toUrlParams()
const;
330 static std::string sortColumnToString(SortColumn column);
331 static SortColumn sortColumnFromString(
const std::string& s);
342 std::chrono::milliseconds startTimestamp;
343 std::chrono::milliseconds duration{};
344 std::string deviceId;
358 Motion(
const char* jsonData) noexcept(
false);
365 Motion(
const T&) =
delete;
367 bool operator==(
const Motion&)
const;
380 Rect(
const char* jsonData) noexcept(
false);
382 Rect(
double x,
double y,
double w,
double h);
389 Rect(
const T&) =
delete;
391 bool operator==(
const Rect&)
const;
395 bool isEmpty()
const;
396 bool intersectsWith(
const Rect& other)
const;
399 double right()
const;
400 double bottom()
const;
403 bool isInside(
double x,
double y)
const;
412 std::vector<std::string> deviceIds;
427 SortOrder
order = SortOrder::ascending;
452 using Attributes = std::vector<KeyValuePair>;
475 std::string trackImageTypeToString(TrackImageType type);
476 TrackImageType trackImageTypeFromString(
const std::string& s);
483 std::string objectTrackId;
494 Image(
const char* jsonData) noexcept(
false);
500 Image(
const T&) =
delete;
504 bool operator==(
const Image&)
const;
512 std::chrono::microseconds timestamp{};
514 int streamIndex = -1;
515 std::optional<Image> image;
520 BaseImage(
const char* jsonData) noexcept(
false);
528 std::map<std::string, nx::kit::detail::json11::Json> toBaseObject()
const;
538 BestShot(
const char* jsonStr) noexcept(
false);
540 bool operator==(
const BestShot&)
const;
557 Title(
const char* jsonStr) noexcept(
false);
559 bool operator==(
const Title&)
const;
567 using TrackImage = BaseImage;
602 std::optional<BestShot> bestShot;
603 std::optional<Title> title;
621 using AnalyticsLookupResult = std::vector<ObjectTrack>;
623 AnalyticsLookupResult analyticsLookupResultFromJson(
const char* data);
632 RangePoint(
const char* jsonData) noexcept(
false);
647 bool inclusive =
false;
656 std::optional<RangePoint> from;
657 std::optional<RangePoint> to;
674 NumericRange(std::optional<RangePoint> from, std::optional<RangePoint> to):
675 from(std::move(from)), to(std::move(to))
679 static std::optional<NumericRange> fromString(
const std::string& s);
714 attributePresenceCheck,
759 static std::string typeToString(
Type type);
760 static Type typeFromString(
const std::string& s);
771 ignoreTextFilter = 0x1,
772 ignoreBoundingBox = 0x2,
773 ignoreTimePeriod = 0x4,
797 std::optional<int> maxObjectTracksToSelect;
798 std::vector<AttributeSearchCondition> attributeSearchConditions;
801 SortOrder
order = SortOrder::descending;
803 std::optional<std::string> analyticsEngineId;
804 int options = Option::none;
805 std::chrono::milliseconds detailLevel{};
822 static std::string optionsToString(
int options);
823 static int optionsFromString(
const std::string& s);
828 nxcip::CompressionType compressionType = nxcip::CompressionType::AV_CODEC_ID_NONE;
833 int64_t codecTag = -1;
834 int64_t bitRate = -1;
840 int bitsPerCodedSample = -1;
841 int64_t channelLayout = -1;
842 std::string extradataBase64;
843 int channelNumber = -1;
868 std::vector<uint8_t> data;
870 nxcip::CompressionType compressionType = nxcip::CompressionType::AV_CODEC_ID_NONE;
871 nxcip::UsecUTCTimestamp timestampUs = 0;
872 IMediaDataPacket::Type type = IMediaDataPacket::Type::unknown;
873 int channelNumber = -1;
874 bool isKeyFrame =
false;
875 std::vector<uint8_t> encryptionData;
885 std::string serviceId;
899 using CloudDeviceEntryList = std::vector<CloudDeviceReportEntry>;
903 std::string cloudSystemId;
904 CloudDeviceEntryList devices;
Definition: i_codec_info.h:15
std::string text
Definition: data.h:551
std::vector< Rect > regions
Definition: data.h:421
std::string boundingBoxGridBase64
Definition: data.h:457
std::string id
Definition: data.h:246
std::string objectTypeId
Definition: data.h:581
std::chrono::microseconds firstAppearanceTimestamp
Definition: data.h:591
ObjectRegion objectPosition
Definition: data.h:597
Attributes attributes
Definition: data.h:588
MediaType
Definition: camera_plugin_types.h:65
SortOrder order
Definition: data.h:427
std::string name
Definition: data.h:84
TimePeriod timePeriod
Definition: data.h:792
std::optional< std::string > objectTrackId
Definition: data.h:786
std::chrono::microseconds lastAppearanceTimestamp
Definition: data.h:594
std::chrono::milliseconds detailLevel
Definition: data.h:433
std::string deviceId
Definition: data.h:574
NumericRange range
Definition: data.h:742
Definition: i_device_info.h:13
Definition: i_device_agent.h:21
std::optional< int > limit
Definition: data.h:424
SortOrder order
Definition: data.h:801
bool matchesFromStart
Definition: data.h:732
std::optional< std::string > text
Definition: data.h:301
std::string analyticsEngineId
Definition: data.h:600
Type
Definition: data.h:712
bool matchesTillEnd
Definition: data.h:735
std::vector< std::string > deviceIds
Definition: data.h:777
bool isNegative
Definition: data.h:729
std::string data64
Definition: data.h:489
std::string format
Definition: data.h:486
std::string id
Definition: data.h:81
Definition: algorithm.cpp:9
std::string description
Definition: data.h:87
std::optional< std::chrono::milliseconds > minVisibleLength
Definition: data.h:308
std::vector< std::string > objectTypeIds
Definition: data.h:783
PixelFormat
Definition: camera_plugin_types.h:39
MediaStreamQuality
Definition: camera_plugin.h:1189
SampleFormat
Definition: camera_plugin_types.h:76
std::optional< Rect > boundingBox
Definition: data.h:795
std::string dataBase64
Definition: data.h:354
std::string creatorId
Definition: data.h:249