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 #if defined( _WIN32 ) || defined( __WIN32__ )
00024 #if !defined( RemoteVizServices_EXPORTS )
00025 #if _DEBUG
00026 #pragma comment(lib,"RemoteVizServicesD")
00027 #else
00028 #pragma comment(lib,"RemoteVizServices")
00029 #endif
00030 #endif
00031 #endif
00032
00033 #include <Inventor/sys/port.h>
00034
00035 #include <memory>
00036
00037 namespace RemoteViz
00038 {
00039 namespace Rendering
00040 {
00041
00042 class FrameEncodersImpl;
00043
00055 class RENDERSERVICE_API FrameEncoders
00056 {
00058 friend class ConnectionSettingsImpl;
00059 friend class FrameEncoderManager;
00062 public:
00066 enum Encoder
00067 {
00069 NONE,
00071 JPEG,
00073 PNG,
00078 H264_NVENC,
00081 H264_OPENH264
00082 };
00083
00087 enum Status
00088 {
00090 SUPPORTED,
00093 UNSUPPORTED,
00095 INCOMPATIBLE,
00097 CLIENT_UNSUPPORTED
00098 };
00099
00101
00105 FrameEncoders();
00107
00109
00113 virtual ~FrameEncoders();
00115
00117
00124 void setInteractiveEncoder(Encoder value);
00131 Encoder getInteractiveEncoder() const;
00133
00135
00142 void setStillEncoder(Encoder value);
00149 Encoder getStillEncoder() const;
00151
00153
00159 Status getInteractiveEncoderStatus() const;
00161
00163
00169 Status getStillEncoderStatus() const;
00171
00172 private:
00175 std::shared_ptr<FrameEncodersImpl> getImpl() const;
00178 private:
00179
00181 std::shared_ptr<FrameEncodersImpl> pImpl;
00182
00183 };
00184 }
00185 }
00186