Agora C++ API Reference for All Platforms
channel_capability_i.h
1 //
2 // Agora Media SDK
3 //
4 // Copyright (c) 2015 Agora IO. All rights reserved.
5 //
6 #pragma once
7 
8 #include <cstdint>
9 #include <map>
10 #include <string>
11 #include <vector>
12 
13 namespace agora {
14 namespace capability {
15 
16 enum class ChannelProfile : uint8_t {
17  kCommunication = 0,
20  kNASA,
21 
22  kNum
23 };
24 
25 enum class AudioCodec : uint8_t {
26  kL16 = 0,
27  kG722,
28  kOPUS,
29  kOPUS2ch,
30  kSILK,
31  kNOVA,
32  kAACLC,
33  kAACLC2ch,
34  kHEAAC,
35  kHEAAC2ch,
36  kJC1,
37  OPUSMC = 13,
38  kG711 = 14,
39  kNum
40 };
41 
42 enum class VideoCodec : uint8_t {
43  kEVP = 0,
44  kVP8,
45  kE264,
46  kH264,
47  kH265,
48  kAV1,
49  kVP9,
50  kNum
51 };
52 
53 enum class H264Feature : uint8_t {
54  kINTRAREQUEST = 0,
55  kPISE,
57  kNum
58 };
59 
60 enum class VideoFEC : uint8_t {
61  kNone = 0,
62  kULP,
63  kRS,
64  kDM = 4,
65  kRQ,
66  kNum
67 };
68 
69 enum class DmecVersions : uint8_t {
70  kNone = 0,
71  kDmv1,
72  kDmv2,
73  kDmv3,
74 
75  kNum
76 };
77 
78 enum class IfMultipleRedundancy : uint8_t {
79  kNone = 0,
81 
82  kNum
83 };
84 
85 enum class Webrtc : uint8_t {
86  kWebInterop = 0,
87 
88  kNum
89 };
90 
91 enum class RtpExtension : uint8_t {
92  kTwoBytes = 0,
93 
94  kNum
95 };
96 
97 enum class AudioRsfec : uint8_t {
98  kSupport = 0,
99 
100  kNum
101 };
102 
103 enum class CapabilityType : uint8_t {
104  kChannelProfile = 0,
105  kAudioCodec, //1
106  kVideoCodec, //2
107  kH264Feature, //3
108  kVideoFec, //4
109  kWebrtc, //5
110  kP2P, //6
111  kAudioRsfec, //7
112  kRtpExtension, //8
113  kAudio2InAut, // 9
114  kVp8Feature, // 10
115  kSvc, // 11
116  kDmecVersion, // 12
117  kMultipleRedundancy, //13
118  kBframe, // 14
119  kMinorStream, // 15
120  //WEB_CLIENT_ABSENCE, // 16 reserved for VOS
121  kCodecWithRqfec = 17, // 17
122  kSyncService, // 18
123  kAudioNonClockedStreaming = 19, // 19
124  kHDR = 20, // 20
125 };
126 
127 enum class Vp8Feature : uint8_t {
128  kSupportNasa,
129  kSupportFec,
130  kNum
131 };
132 
133 enum class Svc : uint8_t {
134  kVp8Support,
135  kH264Support,
136  kH265Support,
137  kNum
138 };
139 
140 enum class Bframe : uint8_t {
141  kH264Support,
142  kH265Support,
143  kNum
144 };
145 
146 enum class MinorStream : uint8_t {
148  kNum
149 };
150 
151 enum class CodecWithRqfec : uint8_t {
152  kAv1Support,
153  kNum
154 };
155 
156 enum class SyncService : uint8_t {
157  kSupport,
158  kNum
159 };
160 
161 enum class AudioNonClockedStreaming : uint8_t {
163  kNum
164 };
165 
166 enum class HDR : uint8_t {
167  kH265Support,
169 };
170 
172  uint8_t id;
173  std::string name;
175  CapabilityItem(uint8_t i, const std::string& n) : id(i), name(n) {}
176 };
177 
178 using CapabilityItems = std::map<uint8_t, std::string>;
179 using Capabilities = std::map<CapabilityType, CapabilityItems>;
180 
181 } // namespace capability
182 } // namespace agora
agora::capability::AudioCodec::kOPUS
@ kOPUS
agora::capability::IfMultipleRedundancy
IfMultipleRedundancy
Definition: channel_capability_i.h:78
agora::capability::CapabilityType::kSyncService
@ kSyncService
agora::capability::VideoCodec::kAV1
@ kAV1
agora::capability::DmecVersions::kDmv1
@ kDmv1
agora::capability::MinorStream
MinorStream
Definition: channel_capability_i.h:146
agora::capability::AudioCodec::kAACLC
@ kAACLC
agora::capability::CapabilityType::kRtpExtension
@ kRtpExtension
agora::capability::AudioCodec::kOPUS2ch
@ kOPUS2ch
agora::capability::CapabilityType::kP2P
@ kP2P
agora::capability::CapabilityType::kBframe
@ kBframe
agora::capability::AudioNonClockedStreaming::kNonClockedSupport
@ kNonClockedSupport
agora::capability::SyncService
SyncService
Definition: channel_capability_i.h:156
agora::capability::CapabilityType::kWebrtc
@ kWebrtc
agora::capability::AudioCodec
AudioCodec
Definition: channel_capability_i.h:25
agora::capability::ChannelProfile::kBroadcasting
@ kBroadcasting
agora::capability::Vp8Feature::kSupportNasa
@ kSupportNasa
agora::capability::VideoCodec
VideoCodec
Definition: channel_capability_i.h:42
agora::capability::VideoCodec::kH264
@ kH264
agora::capability::Bframe::kH265Support
@ kH265Support
agora::capability::ChannelProfile::kNum
@ kNum
agora::capability::Webrtc
Webrtc
Definition: channel_capability_i.h:85
agora::capability::CapabilityItem::CapabilityItem
CapabilityItem()
Definition: channel_capability_i.h:174
agora::capability::DmecVersions::kNum
@ kNum
agora::capability::DmecVersions::kDmv3
@ kDmv3
agora::capability::CapabilityItem::CapabilityItem
CapabilityItem(uint8_t i, const std::string &n)
Definition: channel_capability_i.h:175
agora::capability::Bframe::kNum
@ kNum
agora::capability::VideoFEC::kDM
@ kDM
agora::capability::Vp8Feature
Vp8Feature
Definition: channel_capability_i.h:127
agora::capability::CapabilityType::kCodecWithRqfec
@ kCodecWithRqfec
agora::capability::CapabilityType
CapabilityType
Definition: channel_capability_i.h:103
agora::capability::VideoCodec::kVP9
@ kVP9
agora::capability::VideoFEC::kRQ
@ kRQ
agora::capability::VideoFEC::kULP
@ kULP
agora::capability::SyncService::kSupport
@ kSupport
agora::capability::VideoCodec::kE264
@ kE264
agora::capability::SyncService::kNum
@ kNum
agora::capability::Svc
Svc
Definition: channel_capability_i.h:133
agora::capability::Vp8Feature::kSupportFec
@ kSupportFec
agora
Definition: AgoraAtomicOps.h:21
agora::capability::CodecWithRqfec::kNum
@ kNum
agora::capability::CapabilityType::kAudioNonClockedStreaming
@ kAudioNonClockedStreaming
agora::capability::Bframe
Bframe
Definition: channel_capability_i.h:140
agora::capability::HDR::kAV1Support
@ kAV1Support
agora::capability::AudioCodec::kL16
@ kL16
agora::capability::DmecVersions::kNone
@ kNone
agora::capability::AudioCodec::kSILK
@ kSILK
agora::capability::Svc::kNum
@ kNum
agora::capability::MinorStream::kIntraRequest
@ kIntraRequest
agora::capability::MinorStream::kNum
@ kNum
agora::capability::HDR::kH265Support
@ kH265Support
agora::capability::Webrtc::kWebInterop
@ kWebInterop
agora::capability::CapabilityType::kHDR
@ kHDR
agora::capability::IfMultipleRedundancy::kMuiltRdcOpen
@ kMuiltRdcOpen
agora::capability::CapabilityType::kVp8Feature
@ kVp8Feature
agora::capability::CapabilityType::kAudioCodec
@ kAudioCodec
agora::capability::ChannelProfile::kCommunication
@ kCommunication
agora::capability::Svc::kH265Support
@ kH265Support
agora::capability::RtpExtension
RtpExtension
Definition: channel_capability_i.h:91
agora::capability::AudioNonClockedStreaming
AudioNonClockedStreaming
Definition: channel_capability_i.h:161
agora::capability::CodecWithRqfec
CodecWithRqfec
Definition: channel_capability_i.h:151
agora::capability::DmecVersions
DmecVersions
Definition: channel_capability_i.h:69
agora::capability::CapabilityType::kChannelProfile
@ kChannelProfile
agora::capability::CapabilityItem
Definition: channel_capability_i.h:171
agora::capability::AudioCodec::kNOVA
@ kNOVA
agora::capability::AudioNonClockedStreaming::kNum
@ kNum
agora::capability::AudioCodec::kAACLC2ch
@ kAACLC2ch
agora::capability::CapabilityType::kMinorStream
@ kMinorStream
agora::capability::IfMultipleRedundancy::kNum
@ kNum
agora::capability::VideoCodec::kEVP
@ kEVP
agora::capability::AudioRsfec::kSupport
@ kSupport
agora::capability::CapabilityType::kDmecVersion
@ kDmecVersion
agora::capability::ChannelProfile::kNASA
@ kNASA
agora::capability::H264Feature::kHIGHPROFILE
@ kHIGHPROFILE
agora::capability::VideoCodec::kVP8
@ kVP8
agora::capability::DmecVersions::kDmv2
@ kDmv2
agora::capability::IfMultipleRedundancy::kNone
@ kNone
agora::capability::ChannelProfile::kUnifiedCommunication
@ kUnifiedCommunication
agora::capability::CapabilityType::kVideoFec
@ kVideoFec
agora::capability::AudioCodec::kHEAAC
@ kHEAAC
agora::capability::AudioCodec::kJC1
@ kJC1
agora::capability::AudioCodec::kG722
@ kG722
agora::capability::CapabilityType::kMultipleRedundancy
@ kMultipleRedundancy
agora::capability::Bframe::kH264Support
@ kH264Support
agora::capability::CapabilityType::kAudio2InAut
@ kAudio2InAut
agora::capability::VideoCodec::kNum
@ kNum
agora::capability::CapabilityType::kH264Feature
@ kH264Feature
agora::capability::Svc::kH264Support
@ kH264Support
agora::capability::Vp8Feature::kNum
@ kNum
agora::capability::CapabilityItem::id
uint8_t id
Definition: channel_capability_i.h:172
agora::capability::AudioCodec::OPUSMC
@ OPUSMC
agora::capability::H264Feature::kNum
@ kNum
agora::capability::CapabilityType::kAudioRsfec
@ kAudioRsfec
agora::capability::RtpExtension::kNum
@ kNum
agora::capability::H264Feature::kINTRAREQUEST
@ kINTRAREQUEST
agora::capability::CapabilityType::kSvc
@ kSvc
agora::capability::AudioRsfec::kNum
@ kNum
agora::capability::H264Feature::kPISE
@ kPISE
agora::capability::AudioRsfec
AudioRsfec
Definition: channel_capability_i.h:97
agora::capability::CapabilityType::kVideoCodec
@ kVideoCodec
agora::capability::ChannelProfile
ChannelProfile
Definition: channel_capability_i.h:16
agora::capability::AudioCodec::kNum
@ kNum
agora::capability::HDR
HDR
Definition: channel_capability_i.h:166
agora::capability::VideoFEC::kNone
@ kNone
agora::capability::Capabilities
std::map< CapabilityType, CapabilityItems > Capabilities
Definition: channel_capability_i.h:179
agora::capability::CapabilityItems
std::map< uint8_t, std::string > CapabilityItems
Definition: channel_capability_i.h:178
agora::capability::Webrtc::kNum
@ kNum
agora::capability::CapabilityItem::name
std::string name
Definition: channel_capability_i.h:173
agora::capability::CodecWithRqfec::kAv1Support
@ kAv1Support
agora::capability::VideoFEC
VideoFEC
Definition: channel_capability_i.h:60
agora::capability::VideoFEC::kRS
@ kRS
agora::capability::H264Feature
H264Feature
Definition: channel_capability_i.h:53
agora::capability::VideoCodec::kH265
@ kH265
agora::capability::Svc::kVp8Support
@ kVp8Support
agora::capability::AudioCodec::kHEAAC2ch
@ kHEAAC2ch
agora::capability::RtpExtension::kTwoBytes
@ kTwoBytes
agora::capability::AudioCodec::kG711
@ kG711
agora::capability::VideoFEC::kNum
@ kNum