Agora C++ API Reference for All Platforms
Loading...
Searching...
No Matches
IAgoraParameter.h
1//
2// Agora Engine SDK
3//
4// Created by minbo in 2019-10.
5// Copyright (c) 2019 Agora.io. All rights reserved.
6
7/*
8 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
9 *
10 * Use of this source code is governed by a BSD-style license
11 * that can be found in the LICENSE file in the root of the source
12 * tree. An additional intellectual property rights grant can be found
13 * in the file PATENTS. All contributing project authors may
14 * be found in the AUTHORS file in the root of the source tree.
15 */
16
17#pragma once // NOLINT(build/header_guard)
18#include "AgoraRefPtr.h"
19
20// external key
25#define KEY_RTC_UDP_PORT_RANGE "rtc.udp_port_range"
30#define KEY_RTC_UDP_PORT_LIST "rtc.udp_port_list"
31
36#define KEY_RTC_UDP_SEND_FD "rtc.udp_send_fd"
37
41#define KEY_RTC_VIDEO_ENABLED_HW_ENCODER "engine.video.enable_hw_encoder"
42#define KEY_RTC_VIDEO_HARDWARE_ENCODEING "che.hardware_encoding" // deprecated, please use engine.video.enable_hw_encoder
46#define KEY_RTC_VIDEO_HW_ENCODER_PROVIDER "engine.video.hw_encoder_provider"
47
51#define KEY_RTC_VIDEO_ENABLED_HW_DECODER "engine.video.enable_hw_decoder"
52#define KEY_RTC_VIDEO_HARDWARE_DECODING "che.hardware_decoding" // deprecated, please use engine.video.enable_hw_decoder
53
57#define KEY_RTC_VIDEO_HW_DECODER_PROVIDER "engine.video.hw_decoder_provider"
58
62#define KEY_RTC_VIDEO_OVERRIDE_SMALLVIDEO_NOT_USE_HWENC_POLICY "engine.video.override_smallvideo_not_use_hwenc_policy"
63
67#define KEY_RTC_VIDEO_RESEND "rtc.video_resend"
68
72#define KEY_RTC_AUDIO_RESEND "rtc.audio_resend"
73
77#define KEY_RTC_VIDEO_BITRATE_ADJUST_RATIO "rtc.video.bitrate_adjust_ratio"
78
82#define KEY_RTC_VIDEO_MINBITRATE_RATIO "rtc.video.minbitrate_ratio"
83
87#define KEY_RTC_VIDEO_DEGRADATION_PREFERENCE "rtc.video.degradation_preference"
88
92
93#define KEY_RTC_VIDEO_DEGRADATION_FPS_DOWN_STEP "rtc.video.degradation_fps_down_step"
97#define KEY_RTC_VIDEO_DEGRADATION_FPS_UP_STEP "rtc.video.degradation_fps_up_step"
98
102#define KEY_RTC_CONNECTION_LOST_PERIOD "rtc.connection_lost_period"
103
107#define KEY_RTC_LOCAL_IP "rtc.local.ip"
108
112#define KEY_RTC_NETWORK_INTERFACE "rtc.network.interface"
113
117#define KEY_RTC_VIDEO_MINOR_STREAM_CODEC_INDEX "engine.video.minor_stream_codec_index"
118#define KEY_RTC_VIDEO_CODEC_INDEX "che.video.videoCodecIndex"
122#define KEY_RTC_VIDEO_QUALITY_SCALE_ONLY_ON_AVERAGE_QP "engine.video.quality_scale_only_on_average_qp"
123
127#define KEY_RTC_VIDEO_H264_QP_THRESHOLD_LOW "engine.video.h264_qp_thresholds_low"
128
132#define KEY_RTC_VIDEO_H264_QP_THRESHOLD_HIGH "engine.video.h264_qp_thresholds_high"
133
134
135namespace agora {
136
137namespace util {
138template <class T>
139class CopyableAutoPtr;
140
141class IString;
143} // namespace util
144
145namespace base {
146
152 public:
156 virtual void release() = 0;
157
166 virtual int setBool(const char* key, bool value) = 0;
167
176 virtual int setInt(const char* key, int value) = 0;
177
186 virtual int setUInt(const char* key, unsigned int value) = 0;
187
196 virtual int setNumber(const char* key, double value) = 0;
197
206 virtual int setString(const char* key, const char* value) = 0;
207
216 virtual int setObject(const char* key, const char* value) = 0;
217
226 virtual int setArray(const char* key, const char* value) = 0;
235 virtual int getBool(const char* key, bool& value) = 0;
236
245 virtual int getInt(const char* key, int& value) = 0;
246
255 virtual int getUInt(const char* key, unsigned int& value) = 0;
256
265 virtual int getNumber(const char* key, double& value) = 0;
266
275 virtual int getString(const char* key, agora::util::AString& value) = 0;
276
285 virtual int getObject(const char* key, agora::util::AString& value) = 0;
286
295 virtual int getArray(const char* key, const char* args, agora::util::AString& value) = 0;
296
310 virtual int setParameters(const char* parameters) = 0;
311
312 virtual int convertPath(const char* filePath, agora::util::AString& value) = 0;
313
314 protected:
315 virtual ~IAgoraParameter() {}
316};
317
318} // namespace base
319} // namespace agora
Definition AgoraRefPtr.h:31
The interface class of Agora RTC SDK, which provides JSON configuration information of the SDK.
Definition IAgoraParameter.h:151
virtual int setParameters(const char *parameters)=0
Provides the technical preview functionalities or special customizations by configuring the SDK with ...
virtual int getInt(const char *key, int &value)=0
virtual int setNumber(const char *key, double value)=0
virtual int setString(const char *key, const char *value)=0
virtual int setUInt(const char *key, unsigned int value)=0
virtual int getArray(const char *key, const char *args, agora::util::AString &value)=0
virtual int getObject(const char *key, agora::util::AString &value)=0
virtual int setBool(const char *key, bool value)=0
virtual ~IAgoraParameter()
Definition IAgoraParameter.h:315
virtual int convertPath(const char *filePath, agora::util::AString &value)=0
virtual int getString(const char *key, agora::util::AString &value)=0
virtual int getBool(const char *key, bool &value)=0
virtual int setArray(const char *key, const char *value)=0
virtual int getNumber(const char *key, double &value)=0
virtual int setObject(const char *key, const char *value)=0
virtual int setInt(const char *key, int value)=0
virtual int getUInt(const char *key, unsigned int &value)=0
Definition AgoraBase.h:156
Definition AgoraBase.h:172
Definition IAgoraService.h:73
Definition AgoraBase.h:97
CopyableAutoPtr< IString > AString
Definition AgoraBase.h:182
Definition AgoraAtomicOps.h:21