EncoderCapabilities.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Digital Barriers
4 
19 #pragma once
20 #include "EdgeVisSDK.h"
21 #include "Pimpl.h"
22 
23 #include "VideoAnalyticsConfig.h"
24 
25 namespace EdgeVisDecoderSDK
26 {
27  class EncoderCapabilitiesImpl;
28 
29  class EncoderCapabilities : public EdgeVisSDKPimpl<EncoderCapabilitiesImpl>
30  {
31  public:
32  DB_EDGEVIS_SDK EncoderCapabilities();
33  EdgeVisSDKPimplWeakConstructor(EncoderCapabilities);
34 
40  DB_EDGEVIS_SDK int8_t SupportedPTZProtocolVersion() const;
41 
47  DB_EDGEVIS_SDK bool PTZProtocolSupportsMove(const std::wstring& protocol) const;
48 
55  DB_EDGEVIS_SDK int32_t PTZProtocolMaxPresets(const std::wstring& protocol) const;
56 
62  DB_EDGEVIS_SDK bool PTZEncoderStoredPresets() const;
63 
69  DB_EDGEVIS_SDK bool SupportsWebVideoAnalyticsConfig() const;
70 
76  DB_EDGEVIS_SDK int32_t GetVideoAnalyticsConfigVersion() const;
77 
83  DB_EDGEVIS_SDK bool SupportsVideoAnalyticsConfig() const;
84 
90  DB_EDGEVIS_SDK bool VPTZSupportsMove() const;
91 
97  DB_EDGEVIS_SDK int8_t RelayCount() const;
98 
104  DB_EDGEVIS_SDK bool SupportsRDCSensors() const;
105 
111  DB_EDGEVIS_SDK bool Supports7TechSensors() const;
112 
118  DB_EDGEVIS_SDK bool SupportsQualTronSensors() const;
119 
125  DB_EDGEVIS_SDK bool SupportsReboot() const;
126 
132  DB_EDGEVIS_SDK bool SupportsIridium() const;
133 
139  DB_EDGEVIS_SDK bool SupportsSafeZone2D() const;
140 
146  DB_EDGEVIS_SDK int8_t GetSafeZone2DVersion() const;
147 
153  DB_EDGEVIS_SDK int8_t GetVideoAnalyticsVersion() const;
154 
160  DB_EDGEVIS_SDK bool SupportsSafeZoneAI() const;
161 
167  DB_EDGEVIS_SDK std::vector<std::pair<int32_t, int32_t>> GetStreamingDimensions() const;
168 
174  DB_EDGEVIS_SDK std::vector<int32_t> GetStreamingTargetHeights() const;
175 
181  DB_EDGEVIS_SDK std::vector<std::wstring> GetStreamingDimensionsStrings() const;
182 
186  DB_EDGEVIS_SDK std::wstring GetStreamingFrameHeightString(const int32_t height) const;
187 
193  DB_EDGEVIS_SDK std::vector<int32_t> GetStreamingFrameSteps(const std::pair<int32_t, int32_t>& dims) const;
194 
200  DB_EDGEVIS_SDK std::vector<int32_t> GetStreamingFrameSteps(const int32_t height) const;
201 
208  DB_EDGEVIS_SDK int32_t GetMinStreamingFrameStep(const std::pair<int32_t, int32_t>& dims) const;
209 
216  DB_EDGEVIS_SDK int32_t GetMinStreamingFrameStep(const int32_t height) const;
217 
221  DB_EDGEVIS_SDK std::wstring GetStreamingFrameStepString(const int32_t frame_step) const;
222 
227  DB_EDGEVIS_SDK std::vector<int32_t> GetStreamingAudioQualityValues() const;
228 
232  DB_EDGEVIS_SDK std::vector<std::wstring> GetStreamingAudioQualityStrings() const;
233 
237  DB_EDGEVIS_SDK int32_t GetStreamingAudioQualityValue(const std::wstring& audio_name) const;
238 
242  DB_EDGEVIS_SDK std::wstring GetStreamingAudioQualityString(const int32_t audio_quality) const;
243 
247  DB_EDGEVIS_SDK std::vector<int32_t> GetBandwidthShareValues() const;
248 
252  DB_EDGEVIS_SDK std::vector<std::wstring> GetBandwidthShareStrings() const;
253 
257  DB_EDGEVIS_SDK int32_t GetBandwidthShareValue(const std::wstring& bw_share_name) const;
258 
262  DB_EDGEVIS_SDK std::wstring GetBandwidthShareString(const int32_t bw_share_val) const;
263 
267  DB_EDGEVIS_SDK std::vector<std::wstring> GetCodecModeValues() const;
268 
272  DB_EDGEVIS_SDK std::vector<std::wstring> GetCodecModeStrings() const;
273 
277  DB_EDGEVIS_SDK std::wstring GetCodecModeValue(const std::wstring& mode_name) const;
278 
282  DB_EDGEVIS_SDK std::wstring GetCodecModeString(const std::wstring& mode_value) const;
283 
289  DB_EDGEVIS_SDK std::vector<std::wstring> GetAvailableStreamProfileIDs() const;
290 
298  DB_EDGEVIS_SDK std::wstring GetStreamProfileDisplayString(const std::wstring& id) const;
299 
307  DB_EDGEVIS_SDK bool StreamProfileIsPreset(const std::wstring& id) const;
308 
314  DB_EDGEVIS_SDK bool SupportsStreamConfig() const;
315 
321  DB_EDGEVIS_SDK bool SupportsBandwidthConfig() const;
322 
328  DB_EDGEVIS_SDK bool SupportsDynamicAudioQuality() const;
329 
335  DB_EDGEVIS_SDK bool SupportsGOPDownload() const;
336 
342  DB_EDGEVIS_SDK bool SupportsGOPTranscode() const;
343 
349  DB_EDGEVIS_SDK bool SupportsHighPriorityGOPDownload() const;
350 
356  DB_EDGEVIS_SDK std::vector<std::string> GetAvailableVideoAnalytics() const;
357 
364  DB_EDGEVIS_SDK VideoAnalyticsConfig GetDefaultVideoAnalyticsConfig(const std::string& analytic_name) const;
365 
371  DB_EDGEVIS_SDK std::vector<VideoAnalyticsScenario> GetDefaultVideoAnalyticsScenarios() const;
372 
379  DB_EDGEVIS_SDK VideoAnalyticsScenario GetDefaultVideoAnalyticsScenario(const std::string& scenario_name) const;
380 
381  DB_EDGEVIS_SDK virtual ~EncoderCapabilities();
382 
388  DB_EDGEVIS_SDK bool IsConfigValid() const;
389  };
390 }
The EdgeVis Decoder SDK namespace.