C++SDK  1.0.0
mvideo_new2.h
浏览该文件的文档.
1 #ifndef RT_Video_H_
2 #define RT_Video_H_
3 
4 #include "common.h"
5 #include "room.h"
6 #include "videocapture.h"
7 
8 namespace tee3 {
9  namespace avd {
10  class IRoom;
11  class IVideoRender;
12 
13  struct Camera {
17  Device() :status(tee3::avd::ds_none) {}
19  bool isValid() const { return !id.empty(); }
20  bool operator ==(const Device& right) const { return this->id == right.id; }
21  };
22 
23  struct VideoCapability {
28  }
29  struct VideoParams {
32  int minQp, maxQp;
33  int codec;
34  };
35 
42  public:
48  class IListener {
49  public:
51 
56  virtual void onCameraPlugin(const Camera& item) = 0;
62  virtual void onCameraPlugout(const Camera& item) = 0;
63  protected:
64  virtual ~IListener() {}
65  };
66 
67  public:
74  static ICameraManager* Instance();
75  public:
82  virtual Result setListener(IListener* listener) = 0;
83 
89  virtual CamerasType getCameras() const = 0;
93  virtual const Camera& getDefaultCamera() const = 0;
99  virtual Result setDefaultCamera(const DeviceId& deviceId) = 0;
100 
107  virtual CapabilitiesType getCameraCapability(const DeviceId& deviceId) const = 0;
108 
110 
117  virtual Result previewCamera(IVideoRender* render, const CameraCapability& cap) = 0;
118  virtual Result previewCamera(const DeviceId& deviceId, IVideoRender* render, const CameraCapability& cap) = 0;
125  virtual Result switchCamera(const DeviceId& fromId, const DeviceId& toId) = 0;
132  virtual Result switchToCamera(CameraType toType) = 0;
133 
137  virtual Result unpreviewCamera() = 0;
139 
149  virtual Result attachRender(const DeviceId& deviceId, IVideoRender* render) = 0;
155  virtual Result detachRender(const DeviceId& deviceId) = 0;
161  virtual Result detachRender(IVideoRender* render) = 0;
162 
164  virtual Result createImportCamera(Camera& device) = 0;
165  virtual FakeVideoCapturer* getCapturer4Camera(const DeviceId& deviceId) = 0;
166  virtual Result destoryImportCamera(const DeviceId& deviceId) = 0;
167 
168  protected:
169  virtual ~ICameraManager() {}
170  };
171 
177  class RT_API_EXPORT IRoomVideo : public IModule {
178  public:
184  class IListener {
185  public:
187 
193  virtual void onCameraStatusNotify(CameraStatus status, const DeviceId& fromId) = 0;
201  virtual void onCameraDataNotify(int level, const String& description, const DeviceId& fromId) = 0;
209  virtual void onPublishCameraNotify(const Camera& camera) = 0;
217  virtual void onUnpublishCameraNotify(const Camera& camera) = 0;
218 
219  protected:
220  virtual ~IListener() {}
221  };
222 
223  public:
230  static IMVideo* getVideo(IRoom* room);
231  //
238  virtual Result setListener(IListener* listener) = 0;
248  virtual Result updateVideoParams(const DeviceId& deviceId, const VideoParams& params) = 0;
249 
256  virtual Result publishCamera(const VideoParams& params) = 0;
263  virtual Result unpublishCamera() = 0;
264 
266 
273  virtual Result publishCamera(const DeviceId& id, const VideoParams& params) = 0;
274 
282  virtual Result unpublishCamera(const DeviceId& deviceId) = 0;
283 
291  virtual Result updateCameraData(const DeviceId& deviceId, int level, const String& description) = 0;
292 
294 
306  virtual Result subscribe(const DeviceId& deviceId) = 0;
314  virtual Result subscribe(const DeviceId& deviceId, VideoQuality qualityType) = 0;
322  virtual Result changeSubscribedQuality(const DeviceId& deviceId, VideoQuality quality) = 0;
330  virtual Result unsubscribe(const DeviceId& deviceId) = 0;
338  virtual Result getPublishedCameras(CamerasType& items) const = 0;
343  virtual bool isCameraPublished(const DeviceId& fromId) const = 0;
349  virtual Result getSubscribedCameras(CamerasType& items) const = 0;
354  virtual bool isCameraSubscribed(const DeviceId& fromId) const = 0;
355 
357 
358 
359 
360  protected:
361  virtual ~IRoomVideo() {}
362  };
363 
369  class RT_API_EXPORT IVideoMixer {
370  public:
377  static IVideoMixer* getVideoMixer(IMVideo* mvideo, IVideoRender* listener);
379 
385  virtual Result setMixerMainVideo(const DeviceId& deviceId) = 0;
394  virtual Result setMixerVideoSize(int width, int height, const String& background) = 0;
406  virtual Result addMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
418  virtual Result addMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
429  virtual Result updateMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
440  virtual Result updateMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
446  virtual Result removeMixerOverlayVideo(const DeviceId& deviceId) = 0;
451  virtual Result clearMixerVideos() = 0;
452 
453  protected:
454  virtual ~IVideoMixer() {}
455  };
456 
457  } // namespace avd
458 } // namespace tee3
459 #endif//RT_Video_H_
bool operator==(const Device &right) const
Definition: mvideo_new2.h:20
DeviceStatus
Definition: combase.h:132
NAMESPACE_TEE3_BEGIN typedef std::string String
Definition: common.h:10
DeviceStatus status
Definition: mvideo_new2.h:16
int maxQp
Definition: mvideo_new2.h:32
Definition: videocapture.h:15
std::vector< Camera > CamerasType
Definition: common.h:325
Definition: mvideo_new2.h:23
int Result
Definition: combase.h:13
String DeviceId
Definition: common.h:12
Definition: room.h:17
Definition: mvideo.h:122
#define RT_API_EXPORT
Definition: defines.h:188
DeviceId id
Definition: mvideo_new2.h:14
unsigned int uint32
Definition: defines.h:393
uint32 height
Definition: mvideo_new2.h:25
CameraType
Definition: combase.h:193
Device()
Definition: mvideo_new2.h:17
Definition: mvideo_new2.h:41
Definition: common.h:106
uint32 maxFPS
Definition: mvideo_new2.h:26
int minQp
Definition: mvideo_new2.h:32
Definition: videorender.h:85
uint32 width
Definition: mvideo_new2.h:24
std::vector< CameraCapability > CapabilitiesType
Definition: common.h:144
Definition: mstreamexporter.h:11
Definition: common.h:317
DeviceId id
Definition: common.h:92
Definition: common.h:91
int maxBitrate
Definition: mvideo_new2.h:31
int minBitrate
Definition: mvideo_new2.h:31
virtual ~IVideoMixer()
Definition: mvideo_new2.h:454
virtual ~IListener()
Definition: mvideo_new2.h:64
bool isValid() const
Definition: mvideo_new2.h:19
struct tee3::avd::VideoCapability vc
Definition: combase.h:134
virtual ~ICameraManager()
Definition: mvideo_new2.h:169
Definition: mvideo_new2.h:48
Definition: mvideo_new2.h:13
virtual ~IListener()
Definition: mvideo_new2.h:220
String name
Definition: mvideo_new2.h:15
Definition: audiocapture.h:5
VideoQuality
Definition: combase.h:147
uint32 rotation
Definition: mvideo_new2.h:27
int codec
Definition: mvideo_new2.h:33
virtual ~IRoomVideo()
Definition: mvideo_new2.h:361