cn.tee3.avd_SDK-C++  2.1.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;
231  virtual Result setVideoBitrate(const DeviceId& deviceId, int minBitrateBps, int maxBitrateBps) = 0;
232 
234  virtual bool isLocalCameraInPreview(const DeviceId& fromId) = 0;
242  virtual Result previewLocalCamera(IVideoRender* render) = 0;
254  virtual Result previewLocalCamera(Camera& fakeDevice, FakeVideoCapturer* capture, IVideoRender* render) = 0;
258  virtual Result unpreviewLocalCamera() = 0;
264  virtual Result updateCaptureCapability(const DeviceId& deviceId, CameraCapability& quality) = 0;
265 
272  virtual Result publishLocalCamera() = 0;
279  virtual Result unpublishLocalCamera() = 0;
280 
282 
289  virtual Result previewLocalCamera(const DeviceId& deviceId, IVideoRender* render) = 0;
290  virtual Result previewLocalCamera(const Camera& device, IVideoRender* render) = 0;
295  virtual Result unpreviewLocalCamera(const DeviceId& deviceId) = 0;
303  virtual Result publishLocalCamera(const Camera& device) = 0;
314  virtual Result publishLocalCamera(Camera& fakeDevice, FakeVideoCapturer* capture) = 0;
322  virtual Result unpublishLocalCamera(const DeviceId& deviceId) = 0;
329  virtual Result switchLocalCamera(const DeviceId& fromId, const DeviceId& toId) = 0;
330 
332 
341  virtual Result previewLocalCamera(CameraType type, IVideoRender* render) = 0;
349  virtual Result publishLocalCamera(CameraType type) = 0;
356  virtual Result switchToLocalCamera(CameraType toType) = 0;
362  virtual CameraType getCurrentCameraType() const = 0;
368  virtual CameraCapability getRealCaptureCapability(const DeviceId& deviceId) = 0;
376  virtual Result updateCameraData(const DeviceId& deviceId, int level, const String& description) = 0;
382  virtual Result muteLocalCamera(const DeviceId& deviceId) = 0;
389  virtual Result unmuteLocalCamera(const DeviceId& deviceId) = 0;
390 
392 
404  virtual Result subscribe(const DeviceId& deviceId) = 0;
413  virtual Result subscribe(const DeviceId& deviceId, StreamType stream) = 0;
421  virtual Result unsubscribe(const DeviceId& deviceId) = 0;
429  virtual Result getPublishedCameras(CamerasType& items) const = 0;
434  virtual bool isCameraPublished(const DeviceId& fromId) const = 0;
440  virtual Result getSubscribedCameras(CamerasType& items) const = 0;
445  virtual bool isCameraSubscribed(const DeviceId& fromId) const = 0;
447 
451  virtual Result remotecmdPublishCamera(const Camera& device) = 0;
456  virtual Result remotecmdUnpublishCamera(const DeviceId& deviceId) = 0;
457 
459 
469  virtual Result attachRender(const DeviceId& deviceId, IVideoRender* render) = 0;
475  virtual Result detachRender(const DeviceId& deviceId) = 0;
481  virtual Result detachRender(IVideoRender* render) = 0;
482 
484 
489  virtual ICameraDevice* getCameraDevice() = 0;
490 
492 
498  virtual Result setMixerDataListener(IVideoRender* listener) = 0;
505  virtual Result setMixerMainVideo(const DeviceId& deviceId) = 0;
514  virtual Result setMixerVideoSize(int width, int height, const String& background) = 0;
526  virtual Result addMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
538  virtual Result addMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
549  virtual Result updateMixerOverlayVideo(const DeviceId& deviceId, int zorder, float x, float y, float w, float h) = 0;
560  virtual Result updateMixerOverlayVideoPixel(const DeviceId& deviceId, int zorder, int x, int y, int w, int h) = 0;
566  virtual Result removeMixerOverlayVideo(const DeviceId& deviceId) = 0;
571  virtual Result clearMixerVideos() = 0;
572 
573  //Interface for test
574  virtual bool isCameraWait(const DeviceId& fromId, const String& opt) const {return false;}
575  virtual bool isCameraOngoing(const DeviceId& fromId, const String& opt) const {return false;}
576 
577  protected:
578  virtual ~IMVideo() {}
579  };
580 
581  } // namespace avd
582 } // namespace tee3
583 #endif//RT_Video_H_
视频摄像头信息结构.
Definition: common.h:316
DeviceStatus
设备状态.
Definition: combase.h:128
StreamType
视频主辅流类型.
Definition: combase.h:180
virtual ~IListener()
Definition: mvideo.h:41
virtual ~IMVideo()
Definition: mvideo.h:578
String UserId
用户号类型,唯一标识房间内一个用户,长度不大于Max_UserId定义;由应用层定义传递给AVD SDK,要求保证房间...
Definition: common.h:13
std::vector< Camera > CamerasType
视频摄像头集合类型.
Definition: common.h:324
int Result
返回值类型
Definition: combase.h:9
String DeviceId
设备号类型,唯一标识房间内一个设备,长度不大于Max_DeviceId定义;定义如下:userId+"_"+md5[os.getdeviceid() or os.getsystemid()]
Definition: common.h:12
视频渲染接口类
Definition: videorender.h:69
#define RT_API_EXPORT
Definition: defines.h:186
房间模块接口类
Definition: room.h:349
房间中视频模块回调接口.
Definition: mvideo.h:129
std::string String
tee3定义的String类型
Definition: common.h:10
CameraType
摄像头类型.
Definition: combase.h:188
视频流导入接口.
Definition: videocapture.h:15
视频设备管理接口.
Definition: mvideo.h:18
virtual bool isCameraOngoing(const DeviceId &fromId, const String &opt) const
Definition: mvideo.h:575
std::vector< CameraCapability > CapabilitiesType
视频采集集合类型.
Definition: common.h:143
视频采集信息结构.
Definition: common.h:96
视频设备管理回调接口.
Definition: mvideo.h:25
房间接口类
Definition: room.h:17
virtual ~ICameraDevice()
Definition: mvideo.h:114
房间中视频模块接口.
Definition: mvideo.h:122
Definition: audiocapture.h:5
virtual bool isCameraWait(const DeviceId &fromId, const String &opt) const
Definition: mvideo.h:574
virtual ~IListener()
Definition: mvideo.h:199