nx_video_source_sdk  1.0
Video Source SDK
Public Member Functions | List of all members
rpi_cam::MediaEncoder Class Reference
Inheritance diagram for rpi_cam::MediaEncoder:
rpi_cam::DefaultRefCounter< nxcip::CameraMediaEncoder3 > nxcip::CameraMediaEncoder3 nxcip::CameraMediaEncoder2 nxcip::CameraMediaEncoder nxpl::PluginInterface

Public Member Functions

 MediaEncoder (std::shared_ptr< RPiCamera > camera, unsigned encoderNumber)
 
virtual void * queryInterface (const nxpl::NX_GUID &interfaceID) override
 Cast to type, specified by interfaceID. More...
 
virtual int getMediaUrl (char *urlBuf) const override
 Returns url of media stream as NULL-terminated utf-8 string. More...
 
virtual int getResolutionList (nxcip::ResolutionInfo *infoList, int *infoListCount) const override
 Returns supported resolution list. More...
 
virtual int getMaxBitrate (int *maxBitrate) const override
 Returns maximem bitrate in Kbps. 0 is interpreted as unlimited bitrate value. More...
 
virtual int setResolution (const nxcip::Resolution &resolution) override
 Change resolution on specified encoder. More...
 
virtual int setFps (const float &, float *selectedFps) override
 
virtual int setBitrate (int bitrateKbps, int *selectedBitrateKbps) override
 
virtual nxcip::StreamReadergetLiveStreamReader () override
 Returns stream reader, providing live data stream. More...
 
virtual int getAudioFormat (nxcip::AudioFormat *audioFormat) const override
 Returns audio format, if audio is supported.
 
virtual int getConfiguredLiveStreamReader (nxcip::LiveStreamConfig *config, nxcip::StreamReader **reader) override
 Returns configured stream reader, providing live data stream. Required method! More...
 
virtual int getVideoFormat (nxcip::CompressionType *codec, nxcip::PixelFormat *pixelFormat) const override
 Returns video format. Optional method. More...
 
- Public Member Functions inherited from rpi_cam::DefaultRefCounter< nxcip::CameraMediaEncoder3 >
virtual int addRef () const override
 
virtual int releaseRef () const override
 

Additional Inherited Members

- Protected Member Functions inherited from rpi_cam::DefaultRefCounter< nxcip::CameraMediaEncoder3 >
 DefaultRefCounter (nxpt::CommonRefManager *refManager)
 
- Protected Attributes inherited from rpi_cam::DefaultRefCounter< nxcip::CameraMediaEncoder3 >
nxpt::CommonRefManager m_refManager
 

Member Function Documentation

◆ getConfiguredLiveStreamReader()

int MediaEncoder::getConfiguredLiveStreamReader ( nxcip::LiveStreamConfig config,
nxcip::StreamReader **  reader 
)
overridevirtual

Returns configured stream reader, providing live data stream. Required method!

BaseCameraManager::nativeMediaStreamCapability should be present.

Parameters
[in]config
[out]reader
Returns
nxcip::NX_NO_ERROR on success, otherwise - error code
Note
It's possible to return both NULL as a reader and nxcip::NX_NO_ERROR as error code.
  • CameraMediaEncoder::getMediaUrl() will be used in this case.
Using with this call setResolution(), setFps() and setBitrate() may return nxcip::NX_NOT_IMPLEMENTED

Implements nxcip::CameraMediaEncoder3.

◆ getLiveStreamReader()

nxcip::StreamReader * MediaEncoder::getLiveStreamReader ( )
overridevirtual

Returns stream reader, providing live data stream.

This method is only used if BaseCameraManager::nativeMediaStreamCapability is present, otherwise CameraMediaEncoder::getMediaUrl is used

Can be used if camera uses some proprietary media stream control protocol or wants to provide motion information

Implements nxcip::CameraMediaEncoder2.

◆ getMaxBitrate()

int MediaEncoder::getMaxBitrate ( int *  maxBitrate) const
overridevirtual

Returns maximem bitrate in Kbps. 0 is interpreted as unlimited bitrate value.

Parameters
[out]maxBitrateReturned value of max bitrate
Returns
0 on success, otherwise - error code

Implements nxcip::CameraMediaEncoder.

◆ getMediaUrl()

int MediaEncoder::getMediaUrl ( char *  urlBuf) const
overridevirtual

Returns url of media stream as NULL-terminated utf-8 string.

Returned url MUST consider stream parameters set with setResolution, setFps, etc... Supported protocols:

  • rtsp. RTP with h.264 and motion jpeg supported
  • http. Motion jpeg only supported
    Parameters
    [out]urlBufBuffer of size MAX_TEXT_LEN. MUST be NULL-terminated after return
    Returns
    0 on success, otherwise - error code

Implements nxcip::CameraMediaEncoder.

◆ getResolutionList()

int MediaEncoder::getResolutionList ( nxcip::ResolutionInfo infoList,
int *  infoListCount 
) const
overridevirtual

Returns supported resolution list.

Parameters
[out]infoListArray of size MAX_RESOLUTION_LIST_SIZE
[out]infoListCountReturned number of supported resolutions
Returns
0 on success, otherwise - error code
Note
Plugin is can return empty resolution list

Implements nxcip::CameraMediaEncoder.

◆ getVideoFormat()

int MediaEncoder::getVideoFormat ( nxcip::CompressionType *  codec,
nxcip::PixelFormat pixelFormat 
) const
overridevirtual

Returns video format. Optional method.

Parameters
[out]codec
[out]pixelFormat
Returns
nxcip::NX_NO_ERROR on success, otherwise - error code
See also
nxcip::CompressionType
nxcip::PixelFormat

Implements nxcip::CameraMediaEncoder3.

◆ queryInterface()

void * MediaEncoder::queryInterface ( const nxpl::NX_GUID interfaceID)
overridevirtual

Cast to type, specified by interfaceID.

If pointer cannot be cast, NULL MUST be returned

Returns
If not NULL, returned pointer can be safely cast to type, defined by interfaceID
Note
This method increments reference counter

Implements nxpl::PluginInterface.

◆ setBitrate()

int MediaEncoder::setBitrate ( int  bitrateKbps,
int *  selectedBitrateKbps 
)
overridevirtual

Camera is allowed to select bitrate different from requested, but it should try to choose bitrate nearest to requested

Parameters
[in]bitrateKbpsRequested bitrate in kbps
[out]selectedBitrateKbps*selectedBitrateKbps MUST be set to actual bitrate implied
Returns
0 on success, otherwise - error code

Implements nxcip::CameraMediaEncoder.

◆ setFps()

int MediaEncoder::setFps ( const float &  fps,
float *  selectedFps 
)
overridevirtual

Camera is allowed to select fps different from requested, but it should try to choose fps nearest to requested

Parameters
[in]fpsRequested fps
[out]selectedFps*selectedFps MUST be set to actual fps implied
Returns
0 on success, otherwise - error code

Implements nxcip::CameraMediaEncoder.

◆ setResolution()

int MediaEncoder::setResolution ( const nxcip::Resolution resolution)
overridevirtual

Change resolution on specified encoder.

Parameters
[in]resolution
Returns
0 on success, otherwise - error code

Implements nxcip::CameraMediaEncoder.


The documentation for this class was generated from the following files: