Agora Java API Reference for Android
NGIAgoraVideoMixerSource.h
1 //
2 // Agora SDK
3 //
4 // Copyright (c) 2018 Agora.io. All rights reserved.
5 //
6 
7 #pragma once // NOLINT(build/header_guard)
8 
9 #include "AgoraBase.h"
10 #include "AgoraRefPtr.h"
11 #include "IAgoraService.h"
12 
13 namespace agora {
14 namespace rtc {
15 
16 class IVideoTrack;
17 
19  int32_t x;
20  int32_t y;
21  int32_t width;
22  int32_t height;
23  int32_t zOrder; // larger zOrder prioritizes smaller ones
24  float alpha;
25  bool mirror;
26  const char* image_path; // url of the place holder picture
27 
28  MixerLayoutConfig() : x(0), y(0), width(0), height(0), zOrder(0), alpha(1.0), mirror(false), image_path(NULL) {}
29  MixerLayoutConfig(int ox, int oy, int w, int h, int order) : x(ox), y(oy), width(w), height(h), zOrder(order), alpha(1.0), mirror(false), image_path(NULL) {}
30 };
31 
32 enum ImageType {
33  kPng,
34  kJpeg,
35  kGif
36 };
37 
45 public:
54  virtual int addVideoTrack(const char* id, agora_refptr<IVideoTrack> track) = 0;
63  virtual int removeVideoTrack(const char* id, agora_refptr<IVideoTrack> track) = 0;
73  virtual int setStreamLayout(const char* id, const MixerLayoutConfig& config) = 0;
82  virtual int delStreamLayout(const char* id) = 0;
91  virtual int addImageSource(const char* id, const MixerLayoutConfig& config, ImageType type = kPng) = 0;
99  virtual int delImageSource(const char* id) = 0;
103  virtual void clearLayout() = 0;
110  virtual int refresh() = 0;
121  virtual int setBackground(uint32_t width, uint32_t height, int fps, uint32_t color_argb = 0) = 0;
132  virtual int setBackground(uint32_t width, uint32_t height, int fps, const char* url) = 0;
140  virtual int setRotation(uint8_t rotation) = 0;
147  virtual int getAvgMixerDelay() = 0;
148 };
149 
150 } //namespace rtc
151 } // namespace agora
agora::rtc::IVideoMixerSource::removeVideoTrack
virtual int removeVideoTrack(const char *id, agora_refptr< IVideoTrack > track)=0
agora::agora_refptr
Definition: AgoraRefPtr.h:44
agora::rtc::MixerLayoutConfig
Definition: NGIAgoraVideoMixerSource.h:18
agora::rtc::IVideoMixerSource::setBackground
virtual int setBackground(uint32_t width, uint32_t height, int fps, uint32_t color_argb=0)=0
agora::rtc::IVideoMixerSource::setStreamLayout
virtual int setStreamLayout(const char *id, const MixerLayoutConfig &config)=0
agora::rtc::IVideoMixerSource::addImageSource
virtual int addImageSource(const char *id, const MixerLayoutConfig &config, ImageType type=kPng)=0
agora::rtc::IVideoMixerSource::setRotation
virtual int setRotation(uint8_t rotation)=0
agora::rtc::IVideoMixerSource::clearLayout
virtual void clearLayout()=0
agora::rtc::IVideoMixerSource
Definition: NGIAgoraVideoMixerSource.h:44
agora::rtc::IVideoMixerSource::addVideoTrack
virtual int addVideoTrack(const char *id, agora_refptr< IVideoTrack > track)=0
agora::rtc::IVideoMixerSource::setBackground
virtual int setBackground(uint32_t width, uint32_t height, int fps, const char *url)=0
agora::RefCountInterface
Definition: AgoraRefPtr.h:31
agora::rtc::IVideoMixerSource::delStreamLayout
virtual int delStreamLayout(const char *id)=0
agora::rtc::IVideoMixerSource::refresh
virtual int refresh()=0
agora::rtc::IVideoMixerSource::getAvgMixerDelay
virtual int getAvgMixerDelay()=0
agora::rtc::IVideoMixerSource::delImageSource
virtual int delImageSource(const char *id)=0