00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #pragma once
00022
00023 #include <memory>
00024 #include <RemoteViz/Rendering/IFrameEncodingPolicy.h>
00025
00026 namespace RemoteViz
00027 {
00028
00029 namespace Rendering
00030 {
00031
00032 class Connection;
00033 class KeepFrameQualityPolicyImpl;
00034
00060 class RENDERSERVICE_API KeepFrameQualityPolicy : public IFrameEncodingPolicy
00061 {
00062 public:
00070 KeepFrameQualityPolicy();
00071
00080 KeepFrameQualityPolicy( float qualityTarget, unsigned int fpsTarget, unsigned int fpsThreshold );
00081
00086 virtual ~KeepFrameQualityPolicy();
00087
00094 virtual unsigned int getFramesPerSecond() const override;
00095
00102 virtual float getFrameQuality() const override;
00103
00110 virtual void update( std::shared_ptr<Connection> connection ) override;
00111
00112 private:
00115 std::shared_ptr<KeepFrameQualityPolicyImpl> getImpl() const;
00118 private:
00120 std::shared_ptr<KeepFrameQualityPolicyImpl> pImpl;
00121 };
00122 }
00123 }
00124