nx_video_source_sdk  1.0
Video Source SDK
axis_media_encoder.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2 
3 #pragma once
4 
5 #include <vector>
6 
7 #include <camera/camera_plugin.h>
8 
9 #include <plugins/plugin_tools.h>
10 
11 class AxisCameraManager;
12 
14 
18 :
20 {
21 public:
23 
26  AxisMediaEncoder( AxisCameraManager* const cameraManager );
27  virtual ~AxisMediaEncoder();
28 
30  virtual void* queryInterface( const nxpl::NX_GUID& interfaceID ) override;
32  virtual int addRef() const override;
34  virtual int releaseRef() const override;
35 
37  virtual int getMediaUrl( char* urlBuf ) const override;
39  virtual int getResolutionList( nxcip::ResolutionInfo* infoList, int* infoListCount ) const override;
41  virtual int getMaxBitrate( int* maxBitrate ) const override;
43  virtual int setResolution( const nxcip::Resolution& resolution ) override;
45  virtual int setFps( const float& fps, float* selectedFps ) override;
47  virtual int setBitrate( int bitrateKbps, int* selectedBitrateKbps ) override;
48 
49 private:
50  nxpt::CommonRefManager m_refManager;
51  AxisCameraManager* m_cameraManager;
52  mutable std::vector<nxcip::ResolutionInfo> m_supportedResolutions;
53  nxcip::ResolutionInfo m_currentResolutionInfo;
54  float m_currentFps;
55  int m_currentBitrateKbps;
56  bool m_audioEnabled;
57  float m_maxAllowedFps;
58  mutable int m_rtspPort;
59 
60  int fetchCameraResolutionList() const;
61 };
Provides encoder parameter configuration and media stream access (by providing media stream url) ...
Definition: camera_plugin.h:298
virtual int getResolutionList(nxcip::ResolutionInfo *infoList, int *infoListCount) const override
Implementation of nxcip::CameraMediaEncoder::getResolutionList.
Definition: axis_media_encoder.cpp:98
Implementation of nxcip::CameraMediaEncoder.
Definition: axis_media_encoder.h:17
Contains resolution and maximum fps, supported by camera for this resolution.
Definition: camera_plugin.h:276
virtual void * queryInterface(const nxpl::NX_GUID &interfaceID) override
Implementaion of nxpl::PluginInterface::queryInterface.
Definition: axis_media_encoder.cpp:42
GUID of plugin interface.
Definition: plugin_api.h:26
Provides access to camera&#39;s properties and instanciates other managers (implements nxcip::BaseCameraM...
Definition: axis_camera_manager.h:21
Resolution of video stream picture.
Definition: camera_plugin.h:260
Definition: plugin_tools.h:68
virtual int addRef() const override
Implementaion of nxpl::PluginInterface::addRef.
Definition: axis_media_encoder.cpp:57
virtual int getMediaUrl(char *urlBuf) const override
Implementation of nxcip::CameraMediaEncoder::getMediaUrl.
Definition: axis_media_encoder.cpp:67
virtual int setResolution(const nxcip::Resolution &resolution) override
Implementation of nxcip::CameraMediaEncoder::setResolution.
Definition: axis_media_encoder.cpp:136
AxisMediaEncoder(AxisCameraManager *const cameraManager)
Initialization.
Definition: axis_media_encoder.cpp:19
virtual int getMaxBitrate(int *maxBitrate) const override
Implementation of nxcip::CameraMediaEncoder::getMaxBitrate.
Definition: axis_media_encoder.cpp:120
virtual int releaseRef() const override
Implementaion of nxpl::PluginInterface::releaseRef.
Definition: axis_media_encoder.cpp:62
virtual int setFps(const float &fps, float *selectedFps) override
Implementation of nxcip::CameraMediaEncoder::setFps.
Definition: axis_media_encoder.cpp:155
virtual int setBitrate(int bitrateKbps, int *selectedBitrateKbps) override
Implementation of nxcip::CameraMediaEncoder::setBitrate.
Definition: axis_media_encoder.cpp:164