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
00046 class RENDERSERVICE_API FrameEncoders
00047 {
00049 friend class ConnectionSettingsImpl;
00050 friend class FrameEncoderManager;
00053 public:
00057 enum Encoder
00058 {
00060 NONE,
00062 JPEG,
00064 PNG,
00069 H264_NVENC,
00072 H264_OPENH264,
00075 VP9_VPX
00076 };
00077
00081 enum Status
00082 {
00084 SUPPORTED,
00087 UNSUPPORTED,
00089 INCOMPATIBLE,
00091 CLIENT_UNSUPPORTED
00092 };
00093
00095
00099 FrameEncoders();
00100
00104 FrameEncoders(const FrameEncoders& obj);
00105
00109 FrameEncoders& operator=(const FrameEncoders& obj);
00111
00113
00117 virtual ~FrameEncoders();
00119
00121
00128 void setInteractiveEncoder(Encoder value);
00135 Encoder getInteractiveEncoder() const;
00137
00139
00146 void setStillEncoder(Encoder value);
00153 Encoder getStillEncoder() const;
00155
00157
00163 Status getInteractiveEncoderStatus() const;
00165
00167
00173 Status getStillEncoderStatus() const;
00175
00176 private:
00179 std::shared_ptr<FrameEncodersImpl> getImpl() const;
00182 private:
00183
00185 std::shared_ptr<FrameEncodersImpl> pImpl;
00186
00187 };
00188 }
00189 }
00190