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 <Inventor/sys/port.h>
00024 #include <RemoteViz/Rendering/LibHelper.h>
00025
00026 #include <memory>
00027
00028 namespace RemoteViz
00029 {
00030 namespace Rendering
00031 {
00032
00033 class FrameEncodersImpl;
00034
00089 class RENDERSERVICE_API FrameEncoders
00090 {
00092 friend class ConnectionSettingsImpl;
00093 friend class FrameEncoderManager;
00096 public:
00100 enum Encoder
00101 {
00103 NONE,
00105 JPEG,
00107 PNG,
00113 H264_NVENC,
00116 H264_OPENH264,
00119 VP9_VPX
00120 };
00121
00125 enum Status
00126 {
00128 SUPPORTED,
00135 UNSUPPORTED,
00137 INCOMPATIBLE,
00139 CLIENT_UNSUPPORTED
00140 };
00141
00143
00147 FrameEncoders();
00148
00152 FrameEncoders(const FrameEncoders& obj);
00153
00157 FrameEncoders& operator=(const FrameEncoders& obj);
00159
00161
00165 ~FrameEncoders();
00167
00169
00178 void setInteractiveEncoder(Encoder value);
00187 Encoder getInteractiveEncoder() const;
00189
00191
00200 void setStillEncoder(Encoder value);
00209 Encoder getStillEncoder() const;
00211
00213
00219 Status getInteractiveEncoderStatus() const;
00221
00223
00229 Status getStillEncoderStatus() const;
00231
00232 private:
00235 std::shared_ptr<FrameEncodersImpl> getImpl() const;
00238 private:
00239
00241 std::shared_ptr<FrameEncodersImpl> pImpl;
00242
00243 };
00244 }
00245 }
00246