C++SDK  1.0.0
mvideo_new.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 
18  class RT_API_EXPORT ICameraDevice {
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 
44  public:
51  static ICameraDevice* Instance();
52  public:
59  virtual Result setListener(IListener* listener) = 0;
60 
67  virtual const Camera& getCamera(const DeviceId& deviceId) const = 0;
74  virtual CameraType getCameraType(const DeviceId& deviceId) const = 0;
81  virtual CapabilitiesType getCameraCapability(const DeviceId& deviceId) const = 0;
83 
86  virtual const Camera& getDefaultCamera() const = 0;
92  virtual Result setDefaultCamera(const DeviceId& deviceId) = 0;
98  virtual Result setDefaultCamera(CameraType type) = 0;
104  virtual Result getLocalCameras(CamerasType& items) const = 0;
111  virtual const Camera& getLocalCamera(CameraType type) const = 0;
112 
113  protected:
114  virtual ~ICameraDevice() {}
115  };
116 
123  public:
130  static IVideo* Instance();
131  public:
139  virtual Result previewLocalCamera(IVideoRender* render) = 0;
143  virtual Result unpreviewLocalCamera() = 0;
157  virtual Result previewLocalCamera(const DeviceId& deviceId, IVideoRender* render) = 0;
158  virtual Result previewLocalCamera(CameraType type, IVideoRender* render) = 0;
159  virtual Result previewLocalCamera(const Camera& device, IVideoRender* render) = 0;
160  virtual Result previewLocalCamera(Camera& fakeDevice, FakeVideoCapturer* capture, IVideoRender* render) = 0;
165  virtual Result unpreviewLocalCamera(const DeviceId& deviceId) = 0;
172  virtual Result switchLocalCamera(const DeviceId& fromId, const DeviceId& toId) = 0;
179  virtual Result switchToLocalCamera(CameraType toType) = 0;
180 
182 
192  virtual Result attachRender(const DeviceId& deviceId, IVideoRender* render) = 0;
198  virtual Result detachRender(const DeviceId& deviceId) = 0;
204  virtual Result detachRender(IVideoRender* render) = 0;
205 
206  protected:
207  virtual ~IVideo() {}
208  };
209 
216  public:
222  class IListener {
223  public:
225 
231  virtual void onCameraStatusNotify(CameraStatus status, const DeviceId& fromId) = 0;
239  virtual void onCameraDataNotify(int level, const String& description, const DeviceId& fromId) = 0;
247  virtual void onPublishCameraNotify(const Camera& camera) = 0;
255  virtual void onUnpublishCameraNotify(const Camera& camera) = 0;
256 
258 
265  virtual void onSubscribeResult(Result result, const DeviceId& fromId) = 0;
273  virtual void onUnsubscribeResult(Result result, const DeviceId& fromId) = 0;
281  virtual void onPublishLocalResult(Result result, const DeviceId& fromId) = 0;
289  virtual void onUnpublishLocalResult(Result result, const DeviceId& fromId) = 0;
290 
291  protected:
292  virtual ~IListener() {}
293  };
294 
295  public:
302  static IMVideo* getVideo(IRoom* room);
303  //
310  virtual Result setListener(IListener* listener) = 0;
320  virtual Result setVideoBitrate(const DeviceId& deviceId, int minBitrateBps, int maxBitrateBps) = 0;
321 
323 
328  virtual Result updateCaptureCapability(const DeviceId& deviceId, CameraCapability& quality) = 0;
329 
336  virtual Result publishLocalCamera() = 0;
343  virtual Result unpublishLocalCamera() = 0;
344 
346 
353  virtual Result publishLocalCamera(const Camera& device) = 0;
364  virtual Result publishLocalCamera(Camera& fakeDevice, FakeVideoCapturer* capture) = 0;
372  virtual Result unpublishLocalCamera(const DeviceId& deviceId) = 0;
373 
375 
382  virtual Result publishLocalCamera(CameraType type) = 0;
388  virtual CameraType getCurrentCameraType() const = 0;
394  virtual CameraCapability getRealCaptureCapability(const DeviceId& deviceId) = 0;
402  virtual Result updateCameraData(const DeviceId& deviceId, int level, const String& description) = 0;
403 
405 
417  virtual Result subscribe(const DeviceId& deviceId) = 0;
425  virtual Result subscribe(const DeviceId& deviceId, VideoQuality qualityType) = 0;
433  virtual Result unsubscribe(const DeviceId& deviceId) = 0;
441  virtual Result getPublishedCameras(CamerasType& items) const = 0;
446  virtual bool isCameraPublished(const DeviceId& fromId) const = 0;
452  virtual Result getSubscribedCameras(CamerasType& items) const = 0;
457  virtual bool isCameraSubscribed(const DeviceId& fromId) const = 0;
459 
463  virtual Result remotecmdPublishCamera(const Camera& device) = 0;
468  virtual Result remotecmdUnpublishCamera(const DeviceId& deviceId) = 0;
469 
470  protected:
471  virtual ~IRoomVideo() {}
472  };
473 
480  public:
487  static IVideoMixer* getVideoMixer(IMVideo* mvideo, IVideoRender* listener);
489 
495  virtual Result setMixerMainVideo(const DeviceId& deviceId) = 0;
504  virtual Result setMixerVideoSize(int width, int height, const String& background) = 0;
516  virtual Result addMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
528  virtual Result addMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
539  virtual Result updateMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
550  virtual Result updateMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
556  virtual Result removeMixerOverlayVideo(const DeviceId& deviceId) = 0;
561  virtual Result clearMixerVideos() = 0;
562 
563  protected:
564  virtual ~IVideoMixer() {}
565  };
566 
567  } // namespace avd
568 } // namespace tee3
569 #endif//RT_Video_H_
Definition: mvideo_new.h:479
DeviceStatus
Definition: combase.h:132
NAMESPACE_TEE3_BEGIN typedef std::string String
Definition: common.h:10
Definition: videocapture.h:15
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
Definition: mvideo_new.h:222
virtual ~IVideo()
Definition: mvideo_new.h:207
virtual ~ICameraDevice()
Definition: mvideo_new.h:114
Definition: common.h:106
Definition: videorender.h:85
std::vector< CameraCapability > CapabilitiesType
Definition: common.h:144
Definition: mvideo_new.h:215
Definition: common.h:317
virtual ~IVideoMixer()
Definition: mvideo_new.h:564
Definition: mvideo_new.h:122
Definition: mvideo_new2.h:13
virtual ~IListener()
Definition: mvideo_new.h:292
Definition: audiocapture.h:5
virtual ~IListener()
Definition: mvideo_new.h:41
VideoQuality
Definition: combase.h:147
Definition: mvideo.h:18
virtual ~IRoomVideo()
Definition: mvideo_new.h:471