#include <RemoteViz/Rendering/KeepFrameQualityPolicy.h>
Public Member Functions | |
KeepFrameQualityPolicy () | |
KeepFrameQualityPolicy (float qualityTarget, unsigned int fpsTarget, unsigned int fpsThreshold) | |
virtual | ~KeepFrameQualityPolicy () |
virtual unsigned int | getFramesPerSecond () const override |
virtual float | getFrameQuality () const override |
virtual void | update (std::shared_ptr< Connection > connection) override |
This class provides a calculation policy which allows to manage the FPS (frames per second) and the quality of interactive frames sent from Remoteviz service depending on the network bandwidth allocated to the Connection.
If the Client owns multiple connections, the network bandwidth allocated to each Connection will be equitably shared. Otherwise, the network bandwidth allocated to the Connection will be equal to the network bandwidth allocated to the Client. The network bandwidth allocated to the Client can be defined from ClientSettings::setBandwidth. This policy works as described below:
See ConnectionSettings::setFrameEncodingPolicy to define the frame encoding policy.
RemoteViz::Rendering::KeepFrameQualityPolicy::KeepFrameQualityPolicy | ( | ) |
Constructor.
The frame quality target will be set to 0.7
The FPS target will be set to 30.
The FPS threshold will be set to 15.
RemoteViz::Rendering::KeepFrameQualityPolicy::KeepFrameQualityPolicy | ( | float | qualityTarget, | |
unsigned int | fpsTarget, | |||
unsigned int | fpsThreshold | |||
) |
Convenience Constructor.
qualityTarget | : frame quality target, the value range is [0, 1]. | |
fpsTarget | : FPS target, the value range is [1, 60]. | |
fpsThreshold | : frames per second threshold, the value range is [1, 60]. (fpsThreshold <= fpsTarget) |
virtual RemoteViz::Rendering::KeepFrameQualityPolicy::~KeepFrameQualityPolicy | ( | ) | [virtual] |
Destructor.
virtual float RemoteViz::Rendering::KeepFrameQualityPolicy::getFrameQuality | ( | ) | const [override, virtual] |
Gets the interactive frame quality calculated after calling the method update().
The value range is [0, 1].
Implements RemoteViz::Rendering::IFrameEncodingPolicy.
virtual unsigned int RemoteViz::Rendering::KeepFrameQualityPolicy::getFramesPerSecond | ( | ) | const [override, virtual] |
Gets the FPS calculated after calling the method update().
The value range is [1, 60].
Implements RemoteViz::Rendering::IFrameEncodingPolicy.
virtual void RemoteViz::Rendering::KeepFrameQualityPolicy::update | ( | std::shared_ptr< Connection > | connection | ) | [override, virtual] |
Update value of the FPS and frame quality.
The connection will be used to get values such encode frame buffer size or bandwidth.
connection | : connection used to get values. |
Implements RemoteViz::Rendering::IFrameEncodingPolicy.