ByteMetadataBuffer

struct bytertc::ByteMetadataBuffer

视频帧中包含的 metadata 信息

Defined in : byte_rtc_engine_lite_interface.h

成员变量

类型 名称
char* data
int size
int64_t timestamp_us

变量说明

data

char* bytertc::ByteMetadataBuffer::data;

接收或者发送的 metadata

size

int bytertc::ByteMetadataBuffer::size;

接收或者发送的 metadata 数据大小,不能超过 1024

timestamp_us

int64_t bytertc::ByteMetadataBuffer::timestamp_us;

包含 metadata 视频帧的时间戳,单位微秒

AUDIO_FRAME_TYPE

enum bytertc::IAudioFrameObserver::AUDIO_FRAME_TYPE

音频帧类型

Defined in : byte_rtc_engine_lite_interface.h

枚举值

类型 值 说明
FRAME_TYPE_PCM16 0 PCM 16bit

AudioFrame

struct bytertc::IAudioFrameObserver::AudioFrame

音频帧

Defined in : byte_rtc_engine_lite_interface.h

成员变量

类型 名称
AUDIO_FRAME_TYPE type
int samples
int channels
int samples_per_sec
void* buffer
int64_t render_time_ms

变量说明

type

AUDIO_FRAME_TYPE bytertc::IAudioFrameObserver::AudioFrame::type;

音频帧类型

samples

int bytertc::IAudioFrameObserver::AudioFrame::samples;

音频采样点数量

channels

int bytertc::IAudioFrameObserver::AudioFrame::channels;

音频通道数

samples_per_sec

int bytertc::IAudioFrameObserver::AudioFrame::samples_per_sec;

音频采样率

buffer

void* bytertc::IAudioFrameObserver::AudioFrame::buffer;

音频数据内存地址

render_time_ms

int64_t bytertc::IAudioFrameObserver::AudioFrame::render_time_ms;

渲染时间

IByteAudioFrame

class bytertc::IByteAudioFrame

音频帧

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual int64_t timestamp_us
virtual void set_timestamp_us
virtual int sample_rate
virtual void set_sample_rate
virtual int channels_num
virtual void set_channels_num
virtual void set_frame_memory
virtual uint8_t* data
virtual int data_size

函数说明

timestamp_us

virtual int64_t bytertc::IByteAudioFrame::timestamp_us() const

获取音频帧时间戳

返回值

音频帧时间戳,单位:微妙

set_timestamp_us

virtual void bytertc::IByteAudioFrame::set_timestamp_us(
    int64_t timestamp_us)

设置音频帧时间戳

传入参数

参数名 类型 说明
timestamp_us int64_t 音频帧时间戳,单位:微妙

sample_rate

virtual int bytertc::IByteAudioFrame::sample_rate() const

获取音频采样率

返回值

音频帧采样率

set_sample_rate

virtual void bytertc::IByteAudioFrame::set_sample_rate(
    int sample_rate)

设置音频采样率

传入参数

参数名 类型 说明
sample_rate int 音频帧采样率

channels_num

virtual int bytertc::IByteAudioFrame::channels_num() const

获取音频通道数

返回值

音频通道数

set_channels_num

virtual void bytertc::IByteAudioFrame::set_channels_num(
    int channels_num)

设置音频帧通道数

传入参数

参数名 类型 说明
channels_num int 音频帧通道数

set_frame_memory

virtual void bytertc::IByteAudioFrame::set_frame_memory(
    const ByteManagedMemory& memory)

设置音频帧内存管理信息

传入参数

参数名 类型 说明
memory const ByteManagedMemory& 音频帧内存管理信息,详见 ByteManagedMemory

data

virtual uint8_t* bytertc::IByteAudioFrame::data() const

获取音频帧内存块地址

返回值

音频帧内存块地址

data_size

virtual int bytertc::IByteAudioFrame::data_size() const

获取音频帧数据大小

返回值

音频帧数据大小

USER_OFFLINE_REASON_TYPE

enum bytertc::USER_OFFLINE_REASON_TYPE

用户离线原因。
房间内的远端用户离开房间时,本地用户会收到 OnUserOffline 回调通知,此枚举类型为回调的用户离线原因。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
USER_OFFLINE_QUIT 0 用户主动离开。即远端用户调用 LeaveChannel 方法退出房间。
USER_OFFLINE_DROPPED 1 用户掉线。远端用户因为网络等原因掉线。

RtcStreamRemoveReason

enum bytertc::RtcStreamRemoveReason

房间内远端流移除原因。
房间内远端音视频流移除时,SDK 会通过 OnStreamRemove 回调通知用户。此枚举类型即为通知的远端流移除的原因。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kRtcStreamRemoveUnpublish 0 远端用户停止发布流。
kRtcStreamRemovePublishFailed 1 远端用户发布流失败。
kRtcStreamRemoveKeepLiveFailed 2 保活失败。
kRtcStreamRemoveClientDisconnected 3 远端用户断网。
kRtcStreamRemoveRepublish 4 远端用户重新发布流。
kRtcStreamRemoveOtherReason 5 其他原因。

CLIENT_ROLE_TYPE

enum bytertc::CLIENT_ROLE_TYPE

用户角色。房间模式为直播、游戏、云游戏模式时的可选用户角色。
用户可通过设置用户角色控制:1.发布/取消发布音视频流;2.用户自身是否在房间中隐身。设置用户角色参考 SetClientRole 方法。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
CLIENT_ROLE_BROADCASTER 1 主播角色。主播角色的用户既可以发布流到房间中,也可以从房间中订阅流,房间中的其他用户可以感知到该用户在房间中。
CLIENT_ROLE_AUDIENCE 2 观众角色。观众角色的用户只能从房间中订阅流,不能向房间中发布流,房间中的其他用户可以感知到该用户在房间中。
CLIENT_ROLE_SILENT_AUDIENCE 3 静默观众角色。静默观众角色的用户只能从房间中订阅流,不能向房间中发布流,房间中的其他用户无法感知到该用户在房间中。该用户加入退出房间等行为不会通知给房间中的其他用户。

MESSAGE_SEND_RESULT_CODE

enum bytertc::MESSAGE_SEND_RESULT_CODE

发送用户消息或者房间消息的结果

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
MESSAGE_CODE_SUCCESS 0 用户P2P消息发送成功
MESSAGE_CODE_ROOM_SUCCESS 200 房间Broadcast消息发送成功
MESSAGE_CODE_ERROR_TIMEOUT 1 发送超时,没有发送
MESSAGE_CODE_ERROR_BROKEN 2 通道断开,没有发送
MESSAGE_CODE_ERROR_NOT_RECEIVER 3 找不到接收方
MESSAGE_CODE_ERROR_NOT_JOIN 100 没有加入房间
MESSAGE_CODE_ERROR_NO_CONNECTION 102 没有可用的数据传输通道连接
MESSAGE_CODE_ERROR_EXCEED_MAX_LENGTH 103 消息超过最大长度,当前为64KB
MESSAGE_CODE_ERROR_EMPTY_USER 104 用户id为空
MESSAGE_CODE_ERROR_UNKNOWN 1000 未知错误

CONNECTION_STATE

enum bytertc::CONNECTION_STATE

SDK 与信令服务器连接状态。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
CONNECTION_STATE_DISCONNECTED 1 连接断开。
CONNECTION_STATE_CONNECTING 2 首次连接,正在连接中。
CONNECTION_STATE_CONNECTED 3 首次连接成功。
CONNECTION_STATE_RECONNECTING 4 连接断开后重新连接中。
CONNECTION_STATE_RECONNECTED 5 连接断开后重连成功。

NetworkQuality

enum bytertc::NetworkQuality

媒体流网络质量。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kNetworkQualityUnknown 0 网络质量未知。
kNetworkQualityExcellent 1 网络质量极好。
kNetworkQualityGood 2 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
kNetworkQualityPoor 3 主观感受有瑕疵但不影响沟通。
kNetworkQualityBad 4 勉强能沟通但不顺畅。
kNetworkQualityVbad 5 网络质量非常差,基本不能沟通。

NetworkType

enum bytertc::NetworkType

SDK 网络连接类型。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kNetworkTypeUnknown -1 网络连接类型未知。
kNetworkTypeDisconnected 0 网络连接已断开。
kNetworkTypeLAN 1 网络连接类型为 LAN 。
kNetworkTypeWIFI 2 网络连接类型为 Wi-Fi(包含热点)。
kNetworkTypeMobile2G 3 网络连接类型为 2G 移动网络。
kNetworkTypeMobile3G 4 网络连接类型为 3G 移动网络。
kNetworkTypeMobile4G 5 网络连接类型为 4G 移动网络。
kNetworkTypeMobile5G 6 网络连接类型为 5G 移动网络。

ScreenParameters

struct bytertc::ScreenParameters

屏幕共享参数

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
int frame_rate
int kbitrate

变量说明

frame_rate

int bytertc::ScreenParameters::frame_rate = 15;

编码帧率,单位为 fps

kbitrate

int bytertc::ScreenParameters::kbitrate = -1;

编码码率,小于 0 时 SDK 会根据高宽自适应码率, 单位 kbps

CHANNEL_PROFILE_TYPE

enum bytertc::CHANNEL_PROFILE_TYPE

房间模式。房间使用的场景模式。
通过设置房间模式,用户可以选择应用 SDK 针对不同房间模式场景的优化策略。设置房间模式参考 SetChannelProfile 方法。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
CHANNEL_PROFILE_COMMUNICATION 0 通信模式。通信模式下,无用户角色区分。适用于 IM 场景。
CHANNEL_PROFILE_LIVE_BROADCASTING 1 直播模式。直播模式下,有用户角色区分(用户角色参考 CLIENT_ROLE_TYPE)。适用于直播、教育大班课等场景。
CHANNEL_PROFILE_GAME 2 游戏模式。游戏模式下,有用户角色区分。 SDK 会使用低延时设置。适用于游戏场景。
CHANNEL_PROFILE_CLOUD_GAME 3 云游戏模式。云游戏模式下,有用户角色区分。 SDK 会使用低延时设置。适用于云游戏场景。

MediaDeviceType

enum bytertc::MediaDeviceType

媒体设备类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kAudioPlayoutDevice 0 音频播放设备类型
kAudioRecordingDevice 1 音频录制设备类型
kVideoRenderDevice 2 视频渲染设备类型,该类型暂无使用
kVideoCaptureDevice = 3 3 视频采集设备类型

MediaDeviceNotification

enum bytertc::MediaDeviceNotification

媒体设备事件类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kMediaDeviceNotificationActive 1 设备已就绪
kMediaDeviceNotificationDisabled 2 设备被禁用
kMediaDeviceNotificationNotPresent 4 没有此设备
kMediaDeviceNotificationUnplugged = 8 8 设备被拔出

MediaDeviceState

enum bytertc::MediaDeviceState

媒体设备状态类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kMediaDeviceStateStarted 0 设备已开启
kMediaDeviceStateStartFailed 1 设备开启失败
kMediaDeviceStateStopped 2 设备已停止
kMediaDeviceStateStopFailed = 3 3 设备停止失败

SubscribeFallbackOptions

enum bytertc::SubscribeFallbackOptions

订阅回退选项

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kSubscribeFallbackOptionDisable 0 下行网络较弱时,不对音视频流作回退处理,默认值
kStreamFallbackOptionVideoStreamLow 1 下行网络较弱时,只接收视频小流
kStreamFallbackOptionAudioOnly 2 下行网络较弱时,先尝试只接收视频小流;如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流

RemoteUserPriority

enum bytertc::RemoteUserPriority

远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kRemoteUserPriorityLow 0 用户优先级为低,默认值
kRemoteUserPriorityMedium 100 用户优先级为正常
kRemoteUserPriorityHigh 200 用户优先级为高

FallbackOrRecoverReason

enum bytertc::FallbackOrRecoverReason

远端订阅流发生回退或恢复的原因

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kFallbackOrRecoverReasonUnknown -1 其他原因,非带宽和性能原因引起的回退或恢复。默认值
kFallbackOrRecoverReasonSubscribeFallbackByBandwidth 0 由带宽不足导致的订阅端音视频流回退。
kFallbackOrRecoverReasonSubscribeFallbackByPerformance 1 由性能不足导致的订阅端音视频流回退。
kFallbackOrRecoverReasonSubscribeRecoverByBandwidth 2 由带宽恢复导致的订阅端音视频流恢复。
kFallbackOrRecoverReasonSubscribeRecoverByPerformance 3 由性能恢复导致的订阅端音视频流恢复。
kFallbackOrRecoverReasonPublishFallbackByBandwidth 4 由带宽不足导致的发布端音视频流回退。
kFallbackOrRecoverReasonPublishFallbackByPerformance 5 由性能不足导致的发布端音视频流回退。
kFallbackOrRecoverReasonPublishRecoverByBandwidth 6 由带宽恢复导致的发布端音视频流恢复。
kFallbackOrRecoverReasonPublishRecoverByPerformance 7 由性能恢复导致的发布端音视频流恢复。

RemoteStreamSwitch

struct bytertc::RemoteStreamSwitch

流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。
用户通过调用 SetPublishFallbackOption 方法/ SetSubscribeFallbackOption 方法设置发布/订阅流回退策略。而当本地用户订阅的音视频流发生回退时,SDK 会通过 OnRemoteStreamSwitch 回调事件通知用户。回调参数为回退的流切换信息。

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
const char* uid
bool is_screen
int before_video_index
int after_video_index
bool before_enable
bool after_enable
FallbackOrRecoverReason reason

变量说明

uid

const char* bytertc::RemoteStreamSwitch::uid;

远端用户ID 。远端流发布者的用户ID 。

is_screen

bool bytertc::RemoteStreamSwitch::is_screen;

是否是屏幕流 。

before_video_index

int bytertc::RemoteStreamSwitch::before_video_index;

流切换前本地用户订阅的视频流的分辨率对应的索引。

after_video_index

int bytertc::RemoteStreamSwitch::after_video_index;

流切换后本地用户订阅的视频流的分辨率对应的索引。

before_enable

bool bytertc::RemoteStreamSwitch::before_enable;

流切换前是否有视频流。

after_enable

bool bytertc::RemoteStreamSwitch::after_enable;

流切换后是否有视频流。

reason

FallbackOrRecoverReason bytertc::RemoteStreamSwitch::reason;

触发流回退的原因,详见类型 FallbackOrRecoverReason 。

BusinessCheckCode

enum bytertc::BusinessCheckCode

事务检查码。
用户调用 SetBusinessId 方法设置业务标识参数的返回错误码。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
ERROR_ALREADY_IN_ROOM -6001 用户已经在房间中。

业务标识需要在加入房间之前设置,加入后设置无效。
ERROR_INPUT_INVALIDATE -6002 输入参数非法。

用户传入的业务标识参数非法,参数合法性参考 SetBusinessId 方法的参数说明。

LocalAudioStreamState

enum bytertc::LocalAudioStreamState

本地音频流状态。 SDK 通过 OnLocalAudioStateChanged 回调本地音频流状态

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kLocalAudioStreamStateStopped 0 本地音频默认初始状态。
麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateRecording 1 本地音频录制设备启动成功。
采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateEncoding 2 本地音频首帧编码成功。
音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateFailed 3 本地音频启动失败,在以下时机回调该状态:

+ 本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure

+ 检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission

+ 音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure

LocalAudioStreamError

enum bytertc::LocalAudioStreamError

本地音频流状态改变时的错误码。 SDK 通过 OnLocalAudioStateChanged 回调该错误码。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kLocalAudioStreamErrorOk 0 本地音频状态正常
kLocalAudioStreamErrorFailure 1 本地音频出错原因未知
kLocalAudioStreamErrorDeviceNoPermission 2 没有权限启动本地音频录制设备
kLocalAudioStreamErrorDeviceBusy 3 本地音频录制设备已经在使用中
kLocalAudioStreamErrorRecordFailure 4 本地音频录制失败,建议你检查录制设备是否正常工作
kLocalAudioStreamErrorEncodeFailure 5 本地音频编码失败
kLocalAudioStreamErrorNoRecordingDevice 6 没有可用的音频录制设备

LocalVideoStreamState

enum bytertc::LocalVideoStreamState

本地视频流状态

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kLocalVideoStreamStateStopped 0 本地视频默认初始状态
kLocalVideoStreamStateRecording 1 本地视频录制设备启动成功
kLocalVideoStreamStateEncoding 2 本地视频首帧编码成功
kLocalVideoStreamStateFailed 3 本地视频启动失败

RemoteAudioState

enum bytertc::RemoteAudioState

远端音频流状态 SDK 通过 OnRemoteAudioStateChanged 回调该状态

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kRemoteAudioStateStopped 0 远端音频流默认初始状态,在以下时机回调该状态:

+ 本地用户停止接收远端音频流,对应错误码 kRemoteAudioReasonLocalMuted

+ 远端用户停止发送音频流,对应错误码 kRemoteAudioReasonRemoteMuted

+ 远端用户离开房间,对应错误码 kRemoteAudioReasonRemoteOffline
kRemoteAudioStateStarting 1 本地用户已接收远端音频首包。
收到远端音频首包时回调该状态,对应错误码 kRemoteAudioReasonLocalUnmuted
kRemoteAudioStateDecoding 2 远端音频流正在解码,正常播放,在以下时机回调该状态:

+ 成功解码远端音频首帧,对应错误码 kRemoteAudioReasonLocalUnmuted

+ 网络由阻塞恢复正常,对应错误码 kRemoteAudioReasonNetworkRecovery

+ 本地用户恢复接收远端音频流,对应错误码 kRemoteAudioReasonLocalUnmuted

+ 远端用户恢复发送音频流,对应错误码 kRemoteAudioReasonRemoteUnmuted
kRemoteAudioStateFrozen 3 远端音频流卡顿。
网络阻塞、丢包率大于40%时回调该状态,对应错误码 kRemoteAudioReasonNetworkCongestion
kRemoteAudioStateFailed 4 远端音频流播放失败

RemoteAudioStateReason

enum bytertc::RemoteAudioStateReason

远端音频流状态改变的原因。 SDK 通过 OnRemoteAudioStateChanged 回调该错误码。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kRemoteAudioReasonInternal 0 内部原因
kRemoteAudioReasonNetworkCongestion 1 网络阻塞
kRemoteAudioReasonNetworkRecovery 2 网络恢复正常
kRemoteAudioReasonLocalMuted 3 本地用户停止接收远端音频流
kRemoteAudioReasonLocalUnmuted 4 本地用户恢复接收远端音频流
kRemoteAudioReasonRemoteMuted 5 远端用户停止发送音频流
kRemoteAudioReasonRemoteUnmuted 6 远端用户恢复发送音频流
kRemoteAudioReasonRemoteOffline 7 远端用户离开房间

RemoteVideoState

enum bytertc::RemoteVideoState

远端视频流状态

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kRemoteVideoStateStopped 0 远端视频流默认初始状态,视频尚未开始播放
kRemoteVideoStateStarting 1 本地用户已接收远端视频首包,状态改变详见 OnRemoteVideoFirstPacketReceived
kRemoteVideoStateDecoding 2 远端视频流正在解码,正常播放
kRemoteVideoStateFrozen 3 可能因为网络质量等原因,远端视频流卡顿,状态改变详见 OnVideoStreamNetworkQuality
kRemoteVideoStateFailed 4 远端视频流播放失败,错误场景详见 OnVideoStreamSubscribe

RemoteVideoStateReason

enum bytertc::RemoteVideoStateReason

远端视频流状态改变的原因

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kRemoteVideoReasonInternal 0 内部原因
错误原因详见 OnVideoStreamSubscribe
kRemoteVideoReasonNetworkCongestion 1 网络阻塞
错误原因详见 OnVideoStreamNetworkQuality
kRemoteVideoReasonNetworkRecovery 2 网络恢复正常
状态转换详见 OnVideoStreamNetworkQuality
kRemoteVideoReasonLocalMuted 3 本地用户停止接收远端视频流或本地用户禁用视频模块
状态转换详见 OnMuteRemoteVideoStream
kRemoteVideoReasonLocalUnmuted 4 本地用户恢复接收远端视频流或本地用户启用视频模块
状态转换参考 OnMuteRemoteVideoStream
kRemoteVideoSReasonRemoteMuted 5 远端用户停止发送视频流或远端用户禁用视频模块
状态转换参考 OnUpdateRemoteVideoStreamMuteAttribute
kRemoteVideoReasonRemoteUnmuted 6 远端用户恢复发送视频流或远端用户启用视频模块
状态转换参考 OnUpdateRemoteVideoStreamMuteAttribute
kRemoteVideoReasonRemoteOffline 7 远端用户离开频道
状态转换参考 OnStreamRemove

BACKGROUND_MODE

enum bytertc::BACKGROUND_MODE

背景模式 开启背景替换功能时生效,详见ReplaceBackground。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
NONE 0 无
BLUR 1 虚化
BACKGROUND_A 2 背景1
BACKGROUND_B 3 背景2

DIVIDE_MODEL

enum bytertc::DIVIDE_MODEL

分割模型 开启背景替换功能时生效,详见ReplaceBackground。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
DEFAULT 0 自研
EFFECT 1 effect

AudioVolumeInfo

struct bytertc::AudioVolumeInfo

用于表示用户音量大小

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
unsigned int volume
const char* uid

变量说明

volume

unsigned int bytertc::AudioVolumeInfo::volume;

音量大小,范围 [0,255]

uid

const char* bytertc::AudioVolumeInfo::uid;

用户ID

SourceWantedData

struct bytertc::SourceWantedData

性能回退相关数据

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
int width
int height
int frame_rate

变量说明

width

int bytertc::SourceWantedData::width;

推荐视频输入宽

height

int bytertc::SourceWantedData::height;

推荐视频输入高

frame_rate

int bytertc::SourceWantedData::frame_rate;

推荐视频输入帧率,单位 fps

RtcStats

struct bytertc::RtcStats

通话相关的统计信息

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
unsigned int duration
unsigned int tx_bytes
unsigned int rx_bytes
unsigned short tx_kbitrate
unsigned short rx_kbitrate
unsigned short rx_audio_kbitrate
unsigned short tx_audio_kbitrate
unsigned short rx_video_kbitrate
unsigned short tx_video_kbitrate
unsigned int user_count
double cpu_app_usage
double cpu_total_usage

变量说明

duration

unsigned int bytertc::RtcStats::duration;

通话时长,单位为秒,累计值

tx_bytes

unsigned int bytertc::RtcStats::tx_bytes;

发送字节数 (bytes),累计值

rx_bytes

unsigned int bytertc::RtcStats::rx_bytes;

接收字节数 (bytes),累计值

tx_kbitrate

unsigned short bytertc::RtcStats::tx_kbitrate;

发送码率 (kbps),瞬时值

rx_kbitrate

unsigned short bytertc::RtcStats::rx_kbitrate;

接收码率 (kbps),瞬时值

rx_audio_kbitrate

unsigned short bytertc::RtcStats::rx_audio_kbitrate;

音频接收码率 (kbps),瞬时值

tx_audio_kbitrate

unsigned short bytertc::RtcStats::tx_audio_kbitrate;

音频发送码率 (kbps),瞬时值

rx_video_kbitrate

unsigned short bytertc::RtcStats::rx_video_kbitrate;

视频接收码率 (kbps),瞬时值

tx_video_kbitrate

unsigned short bytertc::RtcStats::tx_video_kbitrate;

视频发送码率 (kbps),瞬时值

user_count

unsigned int bytertc::RtcStats::user_count;

当前房间内的用户人数

cpu_app_usage

double bytertc::RtcStats::cpu_app_usage;

当前应用程序的 CPU 使用率,暂未被使用

cpu_total_usage

double bytertc::RtcStats::cpu_total_usage;

当前系统的 CPU 使用率 (%),暂未被使用

RemoteAudioStats

struct bytertc::RemoteAudioStats

远端音频流统计信息。
本地用户订阅远端音频流成功后,SDK 会周期性(2s)的通过 OnRemoteAudioStats 回调事件通知用户订阅的音频流在此次统计周期内的状况。此数据结构即为回调给用户的参数类型。

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
const char* uid
float audio_loss_rate
int received_kbitrate
int stall_count
int stall_duration
long e2e_delay
int playout_sample_rate
int stats_interval
int rtt
int quality
int jitter_buffer_delay
int num_channels
int received_sample_rate
int frozen_rate
int concealed_samples
int concealment_event
int dec_sample_rate
int dec_duration

变量说明

uid

const char* bytertc::RemoteAudioStats::uid;

用户ID 。远端音频流发布用户的用户ID 。

audio_loss_rate

float bytertc::RemoteAudioStats::audio_loss_rate;

音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。

received_kbitrate

int bytertc::RemoteAudioStats::received_kbitrate;

接收码率。统计周期内的音频接收码率,单位为 kbps 。

stall_count

int bytertc::RemoteAudioStats::stall_count;

音频卡顿次数。统计周期内的卡顿次数。

stall_duration

int bytertc::RemoteAudioStats::stall_duration;

音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。

e2e_delay

long bytertc::RemoteAudioStats::e2e_delay;

用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。

playout_sample_rate

int bytertc::RemoteAudioStats::playout_sample_rate;

播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。

stats_interval

int bytertc::RemoteAudioStats::stats_interval;

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

int bytertc::RemoteAudioStats::rtt;

往返时延。单位为 ms 。

quality

int bytertc::RemoteAudioStats::quality;

远端用户发送的音频流质量。值含义参考 NetworkQuality 。

jitter_buffer_delay

int bytertc::RemoteAudioStats::jitter_buffer_delay;

音频发送端到接收端的网络延迟。单位为 ms 。

num_channels

int bytertc::RemoteAudioStats::num_channels;

音频声道数。

received_sample_rate

int bytertc::RemoteAudioStats::received_sample_rate;

音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。

frozen_rate

int bytertc::RemoteAudioStats::frozen_rate;

远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。

concealed_samples

int bytertc::RemoteAudioStats::concealed_samples;

音频 PLC 样点总个数。

concealment_event

int bytertc::RemoteAudioStats::concealment_event;

PLC 累计次数。

dec_sample_rate

int bytertc::RemoteAudioStats::dec_sample_rate;

音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。

dec_duration

int bytertc::RemoteAudioStats::dec_duration;

解码时长。单位为 s 。

LocalAudioStats

struct bytertc::LocalAudioStats

本地音频流统计信息。
本地用户发布音频流成功后,SDK 会周期性(2s)的通过 OnLocalAudioStats 回调事件通知用户发布的音频流在此次统计周期内的状况。此数据结构即为回调给用户的参数类型。

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
float audio_loss_rate
int send_kbitrate
int record_sample_rate
int stats_interval
int rtt
int num_channels
int sent_sample_rate

变量说明

audio_loss_rate

float bytertc::LocalAudioStats::audio_loss_rate;

音频丢包率。此次统计周期内的音频上行丢包率,取值范围为 [0, 1] 。

send_kbitrate

int bytertc::LocalAudioStats::send_kbitrate;

发送的码率。此次统计周期内的音频发送码率,单位为 kbps 。

record_sample_rate

int bytertc::LocalAudioStats::record_sample_rate;

采集采样率。音频采集采样率信息,单位为 Hz 。

stats_interval

int bytertc::LocalAudioStats::stats_interval;

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

int bytertc::LocalAudioStats::rtt;

往返时延。单位为 ms 。

num_channels

int bytertc::LocalAudioStats::num_channels;

音频声道数。

sent_sample_rate

int bytertc::LocalAudioStats::sent_sample_rate;

发送采样率。音频发送采样率信息,单位为 Hz 。

ByteStream

struct bytertc::ByteStream

流属性。房间中的远端流的流属性。
用户加入房间成功后,房间中所有已发布和未来发布的流和流的相关属性,都会通过 OnStreamAdd 回调时间通知用户。此数据结构即为回调给用户的参数类型。

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
const char* user_id
bool is_screen
bool has_video
bool has_audio
VideoSolutionDescription* profiles
int profile_count

变量说明

user_id

const char* bytertc::ByteStream::user_id;

用户ID 。此流的发布用户的用户ID 。

is_screen

bool bytertc::ByteStream::is_screen;

此流是否为共享屏幕流。

has_video

bool bytertc::ByteStream::has_video;

此流是否包括视频流。

has_audio

bool bytertc::ByteStream::has_audio;

流是否包括音频流。

profiles

VideoSolutionDescription* bytertc::ByteStream::profiles;

视频流的分辨率信息。
用户可以通过调用 SetVideoProfiles 方法在一路流中发布多个不同分辨率的视频。此参数即为流中所有视频的分辨率等相关信息。

profile_count

int bytertc::ByteStream::profile_count;

流中不同分辨率的个数。
用户可以通过调用 SetVideoProfiles 方法在一路流中发布多个不同分辨率的视频。此参数即为流中所有视频的分辨率的总数。

SubscribeConfig

struct bytertc::SubscribeConfig

订阅流的参数配置。用户手动订阅一路音视频流所使用的订阅配置参数。
用户开启手动订阅功能时,通过调用 SubscribeStream 方法订阅音视频流,调用时传入的参数即为此数据类型。

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
bool is_screen
bool sub_video
bool sub_audio
int video_index
int priority

变量说明

is_screen

bool bytertc::SubscribeConfig::is_screen = false;

是否是屏幕流。
用户通过设置此参数,选择是否订阅远端流中的视频。true 为订阅视频,false 为不订阅视频,默认值为 true 。

sub_video

bool bytertc::SubscribeConfig::sub_video;

是否订阅视频。
用户通过设置此参数,选择是否订阅远端流中的视频。true 为订阅视频,false 为不订阅视频,默认值为 true 。

sub_audio

bool bytertc::SubscribeConfig::sub_audio;

是否订阅音频。
用户通过设置此参数,选择是否订阅远端流中的音频。true 为订阅音频,false 为不订阅音频,默认值为 true 。

video_index

int bytertc::SubscribeConfig::video_index;

订阅的视频流分辨率下标。
用户可以通过调用 SetVideoProfiles 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。

priority

int bytertc::SubscribeConfig::priority = 0;

远端用户的需求优先级,取值详见枚举类型 RemoteUserPriority ,默认值为 0 。
用户通过此参数设置远端用户的需求优先级。当开启了订阅流回退选项功能(详见 SetSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。

PROBLEM_FEEDBACK

enum bytertc::PROBLEM_FEEDBACK

音视频质量反馈问题类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
PROBLEM_NONE 0 没有问题
PROBLEM_OTHER_MSG (1 << 0) 其他问题
PROBLEM_AUDIO_NOT_CLEAR (1 << 1) 声音不清晰
PROBLEM_VIDEO_NOT_CLEAR (1 << 2) 视频不清晰
PROBLEM_SYNC (1 << 3) 音视频不同步
PROBLEM_AUDIO_LAGGING (1 << 4) 音频卡顿
PROBLEM_VIDEO_LAGGING (1 << 5) 视频卡顿
PROBLEM_CONNECT_FAILED (1 << 6) 无法连接
PROBLEM_AUDIO_DELAY (1 << 7) 音频延迟
PROBLEM_VIDEO_DELAY (1 << 8) 视频延迟
PROBLEM_DISCONNECT (1 << 9) 连接断开
PROBLEM_NO_AUDIO (1 << 10) 无声音
PROBLEM_NO_VIDEO (1 << 11) 无画面
PROBLEM_AUDIO_STRENGTH (1 << 12) 声音过大或过小
PROBLEM_ECHO (1 << 13) 回声噪音

REMOTE_VIDEO_STREAM_TYPE

enum bytertc::REMOTE_VIDEO_STREAM_TYPE

远端视频类型 目前C++ sdk 只支持 REMOTE_VIDEO_STREAM_HIGH 类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
REMOTE_VIDEO_STREAM_HIGH 0 高分辨率视频流
REMOTE_VIDEO_STREAM_LOW 1 低分辨率视频

VideoCanvas

struct bytertc::VideoCanvas

视频渲染图层结构。app 通过该结构将要渲染的窗口和视频流进行绑定

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
void* view
int render_mode
const char* uid
void* priv

变量说明

view

void* bytertc::VideoCanvas::view;

渲染窗口句柄

render_mode

int bytertc::VideoCanvas::render_mode;

设置渲染模式,参见 RENDER_MODE_TYPE

uid

const char* bytertc::VideoCanvas::uid;

设置渲染流的用户标识

priv

void* bytertc::VideoCanvas::priv;

用户自定义数据,sdk 透传该数据。

RemoteVideoStats

struct bytertc::RemoteVideoStats

远端用户通话视频相关的统计信息

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
const char* uid
int width
int height
float video_loss_rate
int received_kbitrate
int decoder_output_frame_rate
int renderer_output_frame_rate
int stall_count
int stall_duration
long e2e_delay
bool is_screen
int stats_interval
int rtt
int frozen_rate
int video_index

变量说明

uid

const char* bytertc::RemoteVideoStats::uid;

用户 id

width

int bytertc::RemoteVideoStats::width;

视频宽度

height

int bytertc::RemoteVideoStats::height;

视频高度

video_loss_rate

float bytertc::RemoteVideoStats::video_loss_rate;

视频丢包率,百分比

received_kbitrate

int bytertc::RemoteVideoStats::received_kbitrate;

接收码率,单位为 kbps

decoder_output_frame_rate

int bytertc::RemoteVideoStats::decoder_output_frame_rate;

解码器输出帧率,单位 fps

renderer_output_frame_rate

int bytertc::RemoteVideoStats::renderer_output_frame_rate;

渲染帧率,单位 fps

stall_count

int bytertc::RemoteVideoStats::stall_count;

卡顿次数

stall_duration

int bytertc::RemoteVideoStats::stall_duration;

卡顿时长,单位毫秒

e2e_delay

long bytertc::RemoteVideoStats::e2e_delay;

用户体验级别的端到端延时,从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为毫秒

is_screen

bool bytertc::RemoteVideoStats::is_screen;

是否是屏幕流

stats_interval

int bytertc::RemoteVideoStats::stats_interval;

统计间隔,单位为毫秒

rtt

int bytertc::RemoteVideoStats::rtt;

往返时延,单位为毫秒

frozen_rate

int bytertc::RemoteVideoStats::frozen_rate;

远端用户在加入房间后发生视频卡顿的累计时长占视频总有效时长的百分比 (%)。

video_index

int bytertc::RemoteVideoStats::video_index;

对应多种分辨率的流的下标,详见 VideoSolutionDescription

LocalVideoStats

struct bytertc::LocalVideoStats

本地视频相关的统计信息

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
int sent_kbitrate
int input_frame_rate
int sent_frame_rate
int encoder_output_frame_rate
int renderer_output_frame_rate
int target_kbitrate
int target_frame_rate
int stats_interval
float video_loss_rate
int rtt
int encoded_bitrate
int encoded_frame_width
int encoded_frame_height
int encoded_frame_count
VideoCodecType codec_type
bool is_screen

变量说明

sent_kbitrate

int bytertc::LocalVideoStats::sent_kbitrate;

发送码率,单位为 kbps

input_frame_rate

int bytertc::LocalVideoStats::input_frame_rate;

采集帧率,单位 fps

sent_frame_rate

int bytertc::LocalVideoStats::sent_frame_rate;

发送帧率,单位 fps

encoder_output_frame_rate

int bytertc::LocalVideoStats::encoder_output_frame_rate;

编码器输出帧率,单位 fps

renderer_output_frame_rate

int bytertc::LocalVideoStats::renderer_output_frame_rate;

本地渲染帧率,单位 fps

target_kbitrate

int bytertc::LocalVideoStats::target_kbitrate;

目标发送码率(kbps)

target_frame_rate

int bytertc::LocalVideoStats::target_frame_rate;

目标发送帧率,单位 fps

stats_interval

int bytertc::LocalVideoStats::stats_interval;

统计间隔,单位毫秒

video_loss_rate

float bytertc::LocalVideoStats::video_loss_rate;

视频丢包率,单位百分比

rtt

int bytertc::LocalVideoStats::rtt;

往返时延,单位为毫秒

encoded_bitrate

int bytertc::LocalVideoStats::encoded_bitrate;

视频编码码率(kbps)

encoded_frame_width

int bytertc::LocalVideoStats::encoded_frame_width;

视频编码宽度(px)

encoded_frame_height

int bytertc::LocalVideoStats::encoded_frame_height;

视频编码高度(px)

encoded_frame_count

int bytertc::LocalVideoStats::encoded_frame_count;

视频发送的帧数,累计值

codec_type

VideoCodecType bytertc::LocalVideoStats::codec_type;

视频的编码类型,具体参考 VideoCodecType

is_screen

bool bytertc::LocalVideoStats::is_screen;

本地流是否是屏幕流

view_t

typedef void* bytertc::view_t

windows 窗口 id, windows 平台下传 windows 窗口句柄

Defined in : byte_rtc_engine_defines.h

Rectangle

struct bytertc::Rectangle

矩形,用于屏幕共享指定区域

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
int x
int y
int width
int height

变量说明

x

int bytertc::Rectangle::x = 0;

矩形左上角x坐标

y

int bytertc::Rectangle::y = 0;

矩形左上角y坐标

width

int bytertc::Rectangle::width = 0;

矩形宽度

height

int bytertc::Rectangle::height = 0;

矩形高度

HighlightConfig

struct bytertc::HighlightConfig

高亮边框标识屏幕共享指定区域

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
bool enable_highlight
uint32_t border_color
int border_width

变量说明

enable_highlight

bool bytertc::HighlightConfig::enable_highlight = true;

是否显示高亮边框,默认显示。

border_color

uint32_t bytertc::HighlightConfig::border_color = 0xFF29CCA3;

边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGBB

border_width

int bytertc::HighlightConfig::border_width = 4;

边框的宽度

DesktopCaptureParameters

struct bytertc::DesktopCaptureParameters

屏幕共享的编码参数配置

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
int max_width
int max_height
int frame_rate
int bitrate
bool capture_mouse_cursor
view_t * excluded_window_list
int excluded_window_num
HighlightConfig highlight_config

变量说明

max_width

int bytertc::DesktopCaptureParameters::max_width = 1920;

屏幕采集编码最大宽度

max_height

int bytertc::DesktopCaptureParameters::max_height = 1080;

屏幕采集编码最大高度

frame_rate

int bytertc::DesktopCaptureParameters::frame_rate = 15;

屏幕采集编码帧率, 单位 fps

bitrate

int bytertc::DesktopCaptureParameters::bitrate = -1;

屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps

capture_mouse_cursor

bool bytertc::DesktopCaptureParameters::capture_mouse_cursor = true;

是否捕获鼠标光标

excluded_window_list

view_t * bytertc::DesktopCaptureParameters::excluded_window_list = nullptr;

抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。

excluded_window_num

int bytertc::DesktopCaptureParameters::excluded_window_num = 0;

highlight_config

HighlightConfig bytertc::DesktopCaptureParameters::highlight_config;

高亮边框的配置

ByteStreamType

enum bytertc::ByteStreamType

视频流类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kByteStreamTypeCamera 0 视频流类型为相机流
kByteStreamTypeScreen 1 视频流类型为屏幕流

ByteStreamInfo

struct bytertc::ByteStreamInfo

视频流信息

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
const char* room_id
const char* user_id
ByteStreamType stream_type

变量说明

room_id

const char* bytertc::ByteStreamInfo::room_id;

房间id,每个房间的唯一标识符。相同 AppId 并且进入同一个房间内的用户,可以进行相互音视频通话

user_id

const char* bytertc::ByteStreamInfo::user_id;

用户id,每个用户的唯一标识符。同一个房间,不允许两个相同 UserId 存在,后进房者会踢出前者。

stream_type

ByteStreamType bytertc::ByteStreamInfo::stream_type;

视频流类型,详见ByteStreamType

AudioPerfProfile

enum class bytertc::AudioPerfProfile

用户机型等级信息。 在部分应用场景下,需要关注用户机型的配置高低,根据不同的配置,选择不同复杂度的音频处理算法,在能耗、用户体验上进行折中。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kAudioPerfProfileAuto 0 自动策略,SDK 会在加入房间时上传机型信息。服务端根据机型信息判断性能级别,下发对应配置。
kAudioPerfProfileLow 1 低配策略,关闭AEC、ANS、AGC算法,播放sample rate为16000。
策略内容可以定制,联系销售咨询具体方案
kAudioPerfProfileMid 2 中配策略,开启AEC、ANS、AGC算法,播放sample rate为16000。
策略内容可以定制,联系销售咨询具体方案
kAudioPerfProfileHigh 3 高配策略,开启AEC、ANS、AGC算法,播放sample rate为48000。
策略内容可以定制,联系销售咨询具体方案

ByteEngineEncryptType

enum bytertc::ByteEngineEncryptType

自定义加密类型

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
ByteEngineEncryptTypeCustomize 0 使用自定义加密或不加密
ByteEngineEncryptTypeAES128CBC 1 使用AES-128-CBC加密
ByteEngineEncryptTypeAES256CBC 2 使用AES-256-CBC加密
ByteEngineEncryptTypeAES128ECB 3 使用AES-128-ECB加密
ByteEngineEncryptTypeAES256ECB = 4 4 使用AES-256-ECB加密

AudioMixingState

enum bytertc::AudioMixingState

音频混音文件播放状态。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kAudioMixingStatePlaying 710 混音播放状态,混音开始
kAudioMixingStatePaused 711 混音播放状态,混音暂停
kAudioMixingStateStoped 713 混音播放状态,混音停止/播放结束
kAudioMixingStateFailed = 714 714 混音播放状态,混音播放失败

AudioMixingError

enum bytertc::AudioMixingError

音频混音文件播放错误码。

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kAudioMixingErrorOk 0 混音错误码,正常
kAudioMixingErrorCanNotOpen 701 混音错误码,失败

RtcUser

struct bytertc::RtcUser

用户信息

Defined in : byte_rtc_engine_defines.h

成员变量

类型 名称
const char* user_id
const char* meta_data

变量说明

user_id

const char* bytertc::RtcUser::user_id;

meta_data

const char* bytertc::RtcUser::meta_data;

FirstFrameSendState

enum bytertc::FirstFrameSendState

首帧发送状态

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kFirstFrameSendStateSending 0 发送中
kFirstFrameSendStateSent 1 发送成功

FirstFramePlayState

enum bytertc::FirstFramePlayState

首帧播放状态

Defined in : byte_rtc_engine_defines.h

枚举值

类型 值 说明
kFirstFramePlayStatePlaying 0 播放中
kFirstFramePlayStatePlayed 1 播放成功

VideoRotation

enum bytertc::VideoRotation

旋转角度

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
VideoRotation_0 0 顺时针旋转0度
VideoRotation_90 90 顺时针旋转90度
VideoRotation_180 180 顺时针旋转180度
VideoRotation_270 = 270 270 顺时针旋转270度

VIDEO_FRAME_TYPE

enum bytertc::VIDEO_FRAME_TYPE

视频帧类型

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
FORMAT_TYPE_NONE -1 无格式
FORMAT_TYPE_I420 = 0 0 I420格式的视频帧

ScaleMode

enum bytertc::ScaleMode

视频帧缩放模式

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
Auto 0 自由模式,默认使用FitWithCropping模式
Stretch 1 视频尺寸进行缩放和拉伸以充满显示视窗
FitWithCropping 2 优先保证视窗被填满。视频尺寸等比缩放,直至整个视窗被视频填满。如果视频长宽与显示窗口不同,多出的视频将被截掉
FitWithFilling 3 优先保证视频内容全部显示。视频尺寸等比缩放,直至视频窗口的一边与视窗边框对齐。如果视频长宽与显示窗口不同,视窗上未被填满的区域将被涂黑

CodecMode

enum bytertc::CodecMode

视频编码模式

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
AutoMode 0 自动选择
HardwareMode 1 硬编码
SoftwareMode 2 软编码

VideoCodecType

enum bytertc::VideoCodecType

视频的编码类型

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
kVideoCodecUnknown 0 未知类型
kVideoCodecH264 1 标准H264
kVideoCodecByteVC1 2 标准ByteVC1

EncodePreference

enum bytertc::EncodePreference

视频编码质量偏好 网络不好时的编码降级策略

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
EncodePreferenceDisabled 0 关闭
EncodePreferenceFramerate 1 保持帧率
EncodePreferenceQuality 2 保持画质
EncodePreferenceBalance 3 平衡模式

VideoSolution

struct bytertc::VideoSolution

视频属性

Defined in : byte_rtc_video_frame.h

成员变量

类型 名称
int width
int height
int fps
int max_send_kbps
ScaleMode scale_mode
EncodePreference encode_preference

变量说明

width

int bytertc::VideoSolution::width;

视频的宽

height

int bytertc::VideoSolution::height;

视频的高

fps

int bytertc::VideoSolution::fps;

视频帧率

max_send_kbps

int bytertc::VideoSolution::max_send_kbps = SEND_KBPS_AUTO_CALCULATE;

最高编码码率(千比特每秒)

scale_mode

ScaleMode bytertc::VideoSolution::scale_mode = ScaleMode::Auto;

缩放模式,详见 ScaleMode

encode_preference

EncodePreference bytertc::VideoSolution::encode_preference = EncodePreference::EncodePreferenceFramerate;

视频编码质量偏好,详见 EncodePreference

VideoSolutionDescription

struct bytertc::VideoSolutionDescription

视频属性

Defined in : byte_rtc_video_frame.h

成员变量

类型 名称
int width
int height
int fps
int max_send_kbps
ScaleMode scale_mode
VideoCodecType codec_name
CodecMode codec_mode
EncodePreference encode_preference

变量说明

width

int bytertc::VideoSolutionDescription::width;

视频的宽

height

int bytertc::VideoSolutionDescription::height;

视频的高

fps

int bytertc::VideoSolutionDescription::fps;

视频帧率

max_send_kbps

int bytertc::VideoSolutionDescription::max_send_kbps;

最大发送速率(千比特每秒)

scale_mode

ScaleMode bytertc::VideoSolutionDescription::scale_mode = ScaleMode::Auto;

缩放模式,详见 ScaleMode

codec_name

VideoCodecType bytertc::VideoSolutionDescription::codec_name = VideoCodecType::kVideoCodecUnknown;

视频的编码类型,详见 VideoCodecType

codec_mode

CodecMode bytertc::VideoSolutionDescription::codec_mode = CodecMode::AutoMode;

视频的编码模式,详见 CodecMode

encode_preference

EncodePreference bytertc::VideoSolutionDescription::encode_preference = EncodePreference::EncodePreferenceFramerate;

视频编码质量偏好,详见 EncodePreference

ByteVideoPixelFormat

enum bytertc::ByteVideoPixelFormat

视频帧颜色编码格式

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
kByteVideoPixelFormatUnknown 0 未知的颜色编码格式
kByteVideoPixelFormatI420 1 YUV I420 格式
kByteVideoPixelFormatNV12 2 YUV NV12 格式
kByteVideoPixelFormatNV21 3 YUV NV21 格式
kByteVideoPixelFormatRGB24 4 RGB 24bit格式,
kByteVideoPixelFormatRGBA 5 RGBA 编码格式
kByteVideoPixelFormatARGB 6 ARGB 编码格式
kByteVideoPixelFormatBGRA 7 BGRA 编码格式

ByteVideoFrameType

enum bytertc::ByteVideoFrameType

视频帧格式

Defined in : byte_rtc_video_frame.h

枚举值

类型 值 说明
kByteVideoFrameTypeRawMemory 0 原始数据格式,按照内存存储
kByteVideoFrameTypeCVPixelBuffer 1 CVPixelBufferRef类型,支持 iOS and macOS 平台
kByteVideoFrameTypeGLTexture 2 open gl 纹理数据类型
kByteVideoFrameTypeCuda 3 cuda 数据类型
kByteVideoFrameTypeD3D11 4 direct3d 11 数据格式
kByteVideoFrameTypeD3D9 5 direct3d 9 数据格式
kByteVideoFrameTypeJavaFrame 6 Java的VideoFrame 数据格式
kByteVideoFrameTypeVAAPI 7 vaapi 数据格式

ByteManagedMemory

struct bytertc::ByteManagedMemory

自定义内存释放器

Defined in : byte_rtc_video_frame.h

成员变量

类型 名称
uint8_t* data
int size
void* user_opaque
int ()(uint8_t data, int size, void* user_opaque) memory_deleter

变量说明

data

uint8_t* bytertc::ByteManagedMemory::data = nullptr;

内存数据地址

size

int bytertc::ByteManagedMemory::size = 0;

内存空间的大小

user_opaque

void* bytertc::ByteManagedMemory::user_opaque = nullptr;

用户自定义数据

memory_deleter

int (*bytertc::ByteManagedMemory::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;

自定义内存释放方法指针,如果指针不为空,方法会被调用,用来释放内存空间。 函数传入的参数分别是本结构体内 data、size、user_opaque 3个字段。

ByteVideoFrameBuilder

typedef struct bytertc::ByteVideoFrameBuilder

视频帧构建类

Defined in : byte_rtc_video_frame.h

成员变量

类型 名称
uint8_t* data
int linesize
uint8_t* extra_data
int extra_data_size
uint8_t* supplementary_info
int supplementary_info_size
int size
int width
int height
int rotation
void* hwaccel_buffer
void* user_opaque
int64_t timestamp_us
int ()(struct ByteVideoFrameBuilder builder) memory_deleter

变量说明

data

uint8_t* bytertc::ByteVideoFrameBuilder::data[kByteNumDataPointers];

视频帧数据平面指针数组

linesize

int bytertc::ByteVideoFrameBuilder::linesize[kByteNumDataPointers];

视频帧数据平面行长度

extra_data

uint8_t* bytertc::ByteVideoFrameBuilder::extra_data = nullptr;

sei 数据地址

extra_data_size

int bytertc::ByteVideoFrameBuilder::extra_data_size = 0;

sei 数据大小

supplementary_info

uint8_t* bytertc::ByteVideoFrameBuilder::supplementary_info = nullptr;

补充数据地址

supplementary_info_size

int bytertc::ByteVideoFrameBuilder::supplementary_info_size = 0;

补充数据大小

size

int bytertc::ByteVideoFrameBuilder::size = 0;

视频帧内存空间大小

width

int bytertc::ByteVideoFrameBuilder::width;

视频帧宽度

height

int bytertc::ByteVideoFrameBuilder::height;

视频帧高度

rotation

int bytertc::ByteVideoFrameBuilder::rotation;

视频旋转角度

hwaccel_buffer

void* bytertc::ByteVideoFrameBuilder::hwaccel_buffer = nullptr;

硬件加速缓冲区指针

user_opaque

void* bytertc::ByteVideoFrameBuilder::user_opaque = nullptr;

用户私有数据指针

timestamp_us

int64_t bytertc::ByteVideoFrameBuilder::timestamp_us;

视频帧时间戳

memory_deleter

int (*bytertc::ByteVideoFrameBuilder::memory_deleter)(struct ByteVideoFrameBuilder* builder) = nullptr;

用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间