cn.tee3.avd_SDK-C++  2.1.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_
virtual ~IVideo()
Definition: mvideo_new.h:207
virtual ~IVideoMixer()
Definition: mvideo_new.h:564
视频摄像头信息结构.
Definition: common.h:316
DeviceStatus
设备状态.
Definition: combase.h:128
virtual ~IListener()
Definition: mvideo_new.h:41
房间中视频模块接口.
Definition: mvideo_new.h:122
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
std::string String
tee3定义的String类型
Definition: common.h:10
CameraType
摄像头类型.
Definition: combase.h:188
视频流导入接口.
Definition: videocapture.h:15
视频设备管理接口.
Definition: mvideo.h:18
视频混屏模块接口.
Definition: mvideo_new.h:479
std::vector< CameraCapability > CapabilitiesType
视频采集集合类型.
Definition: common.h:143
视频采集信息结构.
Definition: common.h:96
视频设备管理回调接口.
Definition: mvideo.h:25
房间接口类
Definition: room.h:17
virtual ~IRoomVideo()
Definition: mvideo_new.h:471
virtual ~ICameraDevice()
Definition: mvideo_new.h:114
房间中视频模块回调接口.
Definition: mvideo_new.h:222
房间中视频模块接口.
Definition: mvideo.h:122
房间中视频模块接口.
Definition: mvideo_new.h:215
Definition: audiocapture.h:5
VideoQuality
视频质量类型.
Definition: combase.h:143
virtual ~IListener()
Definition: mvideo_new.h:292