Agora Server Gateway SDK C++ API Reference
NGIAgoraVideoMixerSource.h
Go to the documentation of this file.
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
13namespace agora {
14namespace rtc {
15
16class IVideoTrack;
25 int32_t x;
29 int32_t y;
33 int32_t width;
37 int32_t height;
42 int32_t zOrder; // larger zOrder prioritizes smaller ones
47 float alpha;
52 bool mirror;
57 const char* image_path; // url of the place holder picture
58
59 MixerLayoutConfig() : x(0), y(0), width(0), height(0), zOrder(0), alpha(1.0), mirror(false), image_path(NULL) {}
60 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) {}
61};
62
82 kGif
83};
84
91class IVideoMixerSource : public RefCountInterface {
92public:
101 virtual int addVideoTrack(const char* id, agora_refptr<IVideoTrack> track) = 0;
110 virtual int removeVideoTrack(const char* id, agora_refptr<IVideoTrack> track) = 0;
119 virtual int setStreamLayout(const char* id, const MixerLayoutConfig& config) = 0;
127 virtual int delStreamLayout(const char* id) = 0;
137 virtual int addImageSource(const char* id, const MixerLayoutConfig& config, ImageType type = kPng) = 0;
145 virtual int delImageSource(const char* id) = 0;
149 virtual void clearLayout() = 0;
156 virtual int refresh() = 0;
167 virtual int setBackground(uint32_t width, uint32_t height, int fps, uint32_t color_argb = 0) = 0;
178 virtual int setBackground(uint32_t width, uint32_t height, int fps, const char* url) = 0;
191 virtual int setRotation(uint8_t rotation) = 0;
198 virtual int getAvgMixerDelay() = 0;
199};
200
201} //namespace rtc
202} // namespace agora
Definition: NGIAgoraVideoMixerSource.h:91
virtual void clearLayout()=0
virtual int removeVideoTrack(const char *id, agora_refptr< IVideoTrack > track)=0
virtual int setStreamLayout(const char *id, const MixerLayoutConfig &config)=0
virtual int delImageSource(const char *id)=0
virtual int getAvgMixerDelay()=0
virtual int setBackground(uint32_t width, uint32_t height, int fps, const char *url)=0
virtual int setBackground(uint32_t width, uint32_t height, int fps, uint32_t color_argb=0)=0
virtual int delStreamLayout(const char *id)=0
virtual int addVideoTrack(const char *id, agora_refptr< IVideoTrack > track)=0
virtual int addImageSource(const char *id, const MixerLayoutConfig &config, ImageType type=kPng)=0
virtual int setRotation(uint8_t rotation)=0
ImageType
Definition: NGIAgoraVideoMixerSource.h:67
@ kPng
Definition: NGIAgoraVideoMixerSource.h:72
@ kGif
Definition: NGIAgoraVideoMixerSource.h:82
@ kJpeg
Definition: NGIAgoraVideoMixerSource.h:77
Definition: AgoraBase.h:86
Definition: NGIAgoraVideoMixerSource.h:21
const char * image_path
Definition: NGIAgoraVideoMixerSource.h:57
float alpha
Definition: NGIAgoraVideoMixerSource.h:47
int32_t y
Definition: NGIAgoraVideoMixerSource.h:29
int32_t x
Definition: NGIAgoraVideoMixerSource.h:25
MixerLayoutConfig()
Definition: NGIAgoraVideoMixerSource.h:59
int32_t zOrder
Definition: NGIAgoraVideoMixerSource.h:42
bool mirror
Definition: NGIAgoraVideoMixerSource.h:52
int32_t width
Definition: NGIAgoraVideoMixerSource.h:33
MixerLayoutConfig(int ox, int oy, int w, int h, int order)
Definition: NGIAgoraVideoMixerSource.h:60
int32_t height
Definition: NGIAgoraVideoMixerSource.h:37