C++SDK  1.0.0
mvideo.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 
19  public:
25  class IListener {
26  public:
28 
33  virtual void onCameraPlugin(const Camera& item) = 0;
39  virtual void onCameraPlugout(const Camera& item) = 0;
40  protected:
41  virtual ~IListener() {}
42  };
43  public:
50  virtual Result setListener(IListener* listener) = 0;
51 
58  virtual const Camera& getCamera(const DeviceId& deviceId) const = 0;
65  virtual CameraType getCameraType(const DeviceId& deviceId) const = 0;
72  virtual CapabilitiesType getCameraCapability(const DeviceId& deviceId) const = 0;
74 
77  virtual const Camera& getDefaultCamera() const = 0;
83  virtual Result setDefaultCamera(const DeviceId& deviceId) = 0;
89  virtual Result setDefaultCamera(CameraType type) = 0;
95  virtual Result getLocalCameras(CamerasType& items) const = 0;
102  virtual const Camera& getLocalCamera(CameraType type) const = 0;
103 
105 
111  virtual Result getRemoteCameras(const UserId& userId, CamerasType& items) const = 0;
112 
113  protected:
114  virtual ~ICameraDevice() {}
115  };
116 
122  class RT_API_EXPORT IMVideo : public IModule {
123  public:
129  class IListener {
130  public:
132 
138  virtual void onCameraStatusNotify(CameraStatus status, const DeviceId& fromId) = 0;
146  virtual void onCameraDataNotify(int level, const String& description, const DeviceId& fromId) = 0;
154  virtual void onPublishCameraNotify(const Camera& camera) = 0;
162  virtual void onUnpublishCameraNotify(const Camera& camera) = 0;
163 
165 
172  virtual void onSubscribeResult(Result result, const DeviceId& fromId) = 0;
180  virtual void onUnsubscribeResult(Result result, const DeviceId& fromId) = 0;
188  virtual void onPublishLocalResult(Result result, const DeviceId& fromId) = 0;
196  virtual void onUnpublishLocalResult(Result result, const DeviceId& fromId) = 0;
197 
198  protected:
199  virtual ~IListener() {}
200  };
201  public:
208  static IMVideo* getVideo(IRoom* room);
209  //
216  virtual Result setListener(IListener* listener) = 0;
232  virtual Result setVideoBitrate(const DeviceId& deviceId, int minBitrateBps, int maxBitrateBps) = 0;
233 
235  virtual bool isLocalCameraInPreview(const DeviceId& fromId) = 0;
243  virtual Result previewLocalCamera(IVideoRender* render) = 0;
255  virtual Result previewLocalCamera(Camera& fakeDevice, FakeVideoCapturer* capture, IVideoRender* render) = 0;
259  virtual Result unpreviewLocalCamera() = 0;
265  virtual Result updateCaptureCapability(const DeviceId& deviceId, CameraCapability& quality) = 0;
266 
273  virtual Result publishLocalCamera() = 0;
280  virtual Result unpublishLocalCamera() = 0;
281 
283 
290  virtual Result previewLocalCamera(const DeviceId& deviceId, IVideoRender* render) = 0;
291  virtual Result previewLocalCamera(const Camera& device, IVideoRender* render) = 0;
296  virtual Result unpreviewLocalCamera(const DeviceId& deviceId) = 0;
304  virtual Result publishLocalCamera(const Camera& device) = 0;
315  virtual Result publishLocalCamera(Camera& fakeDevice, FakeVideoCapturer* capture) = 0;
323  virtual Result unpublishLocalCamera(const DeviceId& deviceId) = 0;
330  virtual Result switchLocalCamera(const DeviceId& fromId, const DeviceId& toId) = 0;
331 
333 
342  virtual Result previewLocalCamera(CameraType type, IVideoRender* render) = 0;
350  virtual Result publishLocalCamera(CameraType type) = 0;
357  virtual Result switchToLocalCamera(CameraType toType) = 0;
363  virtual CameraType getCurrentCameraType() const = 0;
369  virtual CameraCapability getRealCaptureCapability(const DeviceId& deviceId) = 0;
377  virtual Result updateCameraData(const DeviceId& deviceId, int level, const String& description) = 0;
383  virtual Result muteLocalCamera(const DeviceId& deviceId) = 0;
390  virtual Result unmuteLocalCamera(const DeviceId& deviceId) = 0;
391 
393 
405  virtual Result subscribe(const DeviceId& deviceId) = 0;
414  virtual Result subscribe(const DeviceId& deviceId, StreamType stream) = 0;
427  virtual Result subscribe(const DeviceId& deviceId, VideoQuality quality) = 0;
435  virtual Result changeSubscribedVideoQuality(const DeviceId& deviceId, VideoQuality quality) = 0;
443  virtual Result unsubscribe(const DeviceId& deviceId) = 0;
451  virtual Result getPublishedCameras(CamerasType& items) const = 0;
456  virtual bool isCameraPublished(const DeviceId& fromId) const = 0;
462  virtual Result getSubscribedCameras(CamerasType& items) const = 0;
467  virtual bool isCameraSubscribed(const DeviceId& fromId) const = 0;
469 
473  virtual Result remotecmdPublishCamera(const Camera& device) = 0;
478  virtual Result remotecmdUnpublishCamera(const DeviceId& deviceId) = 0;
479 
481 
491  virtual Result attachRender(const DeviceId& deviceId, IVideoRender* render) = 0;
497  virtual Result detachRender(const DeviceId& deviceId) = 0;
503  virtual Result detachRender(IVideoRender* render) = 0;
504 
506 
511  virtual ICameraDevice* getCameraDevice() = 0;
512 
514 
520  virtual Result setMixerDataListener(IVideoRender* listener) = 0;
527  virtual Result setMixerMainVideo(const DeviceId& deviceId) = 0;
536  virtual Result setMixerVideoSize(int width, int height, const String& background) = 0;
548  virtual Result addMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
560  virtual Result addMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
571  virtual Result updateMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
582  virtual Result updateMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
588  virtual Result removeMixerOverlayVideo(const DeviceId& deviceId) = 0;
593  virtual Result clearMixerVideos() = 0;
594 
595  //Interface for test
596  virtual bool isCameraWait(const DeviceId& fromId, const String& opt) const {return false;}
597  virtual bool isCameraOngoing(const DeviceId& fromId, const String& opt) const {return false;}
598 
599  protected:
600  virtual ~IMVideo() {}
601  };
602 
603  } // namespace avd
604 } // namespace tee3
605 #endif//RT_Video_H_
virtual bool isCameraOngoing(const DeviceId &fromId, const String &opt) const
Definition: mvideo.h:597
DeviceStatus
Definition: combase.h:132
StreamType
Definition: combase.h:185
virtual ~IListener()
Definition: mvideo.h:199
NAMESPACE_TEE3_BEGIN typedef std::string String
Definition: common.h:10
Definition: videocapture.h:15
String UserId
Definition: common.h:13
std::vector< Camera > CamerasType
Definition: common.h:325
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
Definition: room.h:366
CameraType
Definition: combase.h:193
virtual ~ICameraDevice()
Definition: mvideo.h:114
Definition: common.h:106
Definition: mvideo.h:129
Definition: videorender.h:85
virtual bool isCameraWait(const DeviceId &fromId, const String &opt) const
Definition: mvideo.h:596
std::vector< CameraCapability > CapabilitiesType
Definition: common.h:144
virtual ~IMVideo()
Definition: mvideo.h:600
Definition: mvideo_new2.h:13
Definition: audiocapture.h:5
virtual ~IListener()
Definition: mvideo.h:41
VideoQuality
Definition: combase.h:147
Definition: mvideo.h:18