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 
38  kNum
39 };
40 
41 enum class VideoCodec : uint8_t {
42  kEVP = 0,
43  kVP8,
44  kE264,
45  kH264,
46  kH265,
47 
48  kNum
49 };
50 
51 enum class H264Feature : uint8_t {
52  kINTRAREQUEST = 0,
53  kPISE,
55 
56  kNum
57 };
58 
59 enum class VideoFEC : uint8_t {
60  kNone = 0,
61  kULP,
62  kRS,
63  kDM = 4,
64  kRQ,
65 
66  kNum
67 };
68 
69 enum class Webrtc : uint8_t {
70  kWebInterop = 0,
71 
72  kNum
73 };
74 
75 enum class RtpExtension : uint8_t {
76  kTwoBytes = 0,
77 
78  kNum
79 };
80 
81 enum class AudioRsfec : uint8_t {
82  kSupport = 0,
83 
84  kNum
85 };
86 
87 enum class CapabilityType : uint8_t {
88  kChannelProfile = 0,
92  kVideoFec,
93  kWebrtc,
94  kP2P,
97 };
98 
100  uint8_t id;
101  std::string name;
103  CapabilityItem(uint8_t i, const std::string& n) : id(i), name(n) {}
104 };
105 
106 using CapabilityItems = std::vector<CapabilityItem>;
107 using Capabilities = std::map<CapabilityType, CapabilityItems>;
108 
109 } // namespace capability
110 } // namespace agora
agora::capability::AudioCodec::kOPUS
@ kOPUS
agora::capability::AudioCodec::kAACLC
@ kAACLC
agora::capability::CapabilityType::kRtpExtension
@ kRtpExtension
agora::capability::AudioCodec::kOPUS2ch
@ kOPUS2ch
agora::capability::CapabilityType::kP2P
@ kP2P
agora::capability::CapabilityType::kWebrtc
@ kWebrtc
agora::capability::AudioCodec
AudioCodec
Definition: channel_capability_i.h:25
agora::capability::ChannelProfile::kBroadcasting
@ kBroadcasting
agora::capability::VideoCodec
VideoCodec
Definition: channel_capability_i.h:41
agora::capability::VideoCodec::kH264
@ kH264
agora::capability::ChannelProfile::kNum
@ kNum
agora::capability::Webrtc
Webrtc
Definition: channel_capability_i.h:69
agora::capability::CapabilityItem::CapabilityItem
CapabilityItem()
Definition: channel_capability_i.h:102
agora::capability::CapabilityItem::CapabilityItem
CapabilityItem(uint8_t i, const std::string &n)
Definition: channel_capability_i.h:103
agora::capability::VideoFEC::kDM
@ kDM
agora::capability::CapabilityType
CapabilityType
Definition: channel_capability_i.h:87
agora::capability::VideoFEC::kRQ
@ kRQ
agora::capability::VideoFEC::kULP
@ kULP
agora::capability::VideoCodec::kE264
@ kE264
agora
Definition: AgoraAtomicOps.h:21
agora::capability::AudioCodec::kL16
@ kL16
agora::capability::AudioCodec::kSILK
@ kSILK
agora::capability::Webrtc::kWebInterop
@ kWebInterop
agora::capability::CapabilityType::kAudioCodec
@ kAudioCodec
agora::capability::ChannelProfile::kCommunication
@ kCommunication
agora::capability::RtpExtension
RtpExtension
Definition: channel_capability_i.h:75
agora::capability::CapabilityType::kChannelProfile
@ kChannelProfile
agora::capability::CapabilityItem
Definition: channel_capability_i.h:99
agora::capability::AudioCodec::kNOVA
@ kNOVA
agora::capability::AudioCodec::kAACLC2ch
@ kAACLC2ch
agora::capability::VideoCodec::kEVP
@ kEVP
agora::capability::AudioRsfec::kSupport
@ kSupport
agora::capability::ChannelProfile::kNASA
@ kNASA
agora::capability::H264Feature::kHIGHPROFILE
@ kHIGHPROFILE
agora::capability::VideoCodec::kVP8
@ kVP8
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::VideoCodec::kNum
@ kNum
agora::capability::CapabilityType::kH264Feature
@ kH264Feature
agora::capability::CapabilityItem::id
uint8_t id
Definition: channel_capability_i.h:100
agora::capability::H264Feature::kNum
@ kNum
agora::capability::CapabilityType::kAudioRsfec
@ kAudioRsfec
agora::capability::RtpExtension::kNum
@ kNum
agora::capability::H264Feature::kINTRAREQUEST
@ kINTRAREQUEST
agora::capability::AudioRsfec::kNum
@ kNum
agora::capability::H264Feature::kPISE
@ kPISE
agora::capability::AudioRsfec
AudioRsfec
Definition: channel_capability_i.h:81
agora::capability::CapabilityType::kVideoCodec
@ kVideoCodec
agora::capability::CapabilityItems
std::vector< CapabilityItem > CapabilityItems
Definition: channel_capability_i.h:106
agora::capability::ChannelProfile
ChannelProfile
Definition: channel_capability_i.h:16
agora::capability::AudioCodec::kNum
@ kNum
agora::capability::VideoFEC::kNone
@ kNone
agora::capability::Capabilities
std::map< CapabilityType, CapabilityItems > Capabilities
Definition: channel_capability_i.h:107
agora::capability::Webrtc::kNum
@ kNum
agora::capability::CapabilityItem::name
std::string name
Definition: channel_capability_i.h:101
agora::capability::VideoFEC
VideoFEC
Definition: channel_capability_i.h:59
agora::capability::VideoFEC::kRS
@ kRS
agora::capability::H264Feature
H264Feature
Definition: channel_capability_i.h:51
agora::capability::VideoCodec::kH265
@ kH265
agora::capability::AudioCodec::kHEAAC2ch
@ kHEAAC2ch
agora::capability::RtpExtension::kTwoBytes
@ kTwoBytes
agora::capability::VideoFEC::kNum
@ kNum