/**
* @description 用户身份类型
* @typedef {object} ChuangUserRole
* @property {int} Auchor 1 主播
* @property {int} Audience 2 观众
* @property {int} Interaction 3 互动
*/
export function ChuangUserRole() { }
/**
* @description 推流通道
* @typedef {object} ChuangPublishChannel
* @property {int} MAIN 0 主通道
* @property {int} AUX 1 副通道
*/
export function ChuangPublishChannel() { }
/**
* @description 视频自采集数据类型
* @typedef {object} ChuangVideoBufferType
* @property {int} UNKNOWN_DATA 0 未知类型
* @property {int} RAW_DATA 1 裸数据
* @property {int} ENCODED_DATA 2 编码后264数据
*/
export function ChuangVideoBufferType() { }
/**
* @description 音频配置信息
* @typedef {object} ChuangAudioConfig
* @property {int} profileId 音频级别
* @property {string} szAudioDev: 麦克风名称
* @property {int} useLoopBack: 是否采集loopback
*/
export function ChuangAudioConfig() { }
/**
* @description 流方向类型
* @typedef {object} ChuangStreamRotation
* @property {int} ROTATION_0 0 无旋转
* @property {int} ROTATION_90 1 顺时针旋转90度
* @property {int} ROTATION_180 2 顺时针旋转180度
* @property {int} ROTATION_270 3 顺时针旋转270度
*/
export function ChuangStreamRotation() { }
/**
* @description 视频配置信息
* @typedef {object} ChuangVideoConfig
* @property {int} captureWidth 采集宽
* @property {int} captureHeight 采集高
* @property {int} encodeWidth 推流编码宽
* @property {int} encodeHeight 推流编码高
* @property {int} fps 帧率
* @property {int} bitrateKbps 码率
* @property {int} renderMode 采集数据宽高与推流数据宽高不等时的裁剪模式
* @property {string} szCameraName: 摄像头名称
*/
export function ChuangVideoConfig() { }
/**
* @description 视频配置信息
* @typedef {object} ChuangStreamConfig
* @property {string} streamID: 推流流名
* @property {string} rtmpAddress: rtmp完整推流地址
* @property {int} streamMode 推流类型
*/
export function ChuangStreamConfig() { }
/**
* @description 视频配置信息
* @typedef {object} ChuangCustomAudioCaptureConfig
* @property {int} sampleRate: 采样率
* @property {int} channel: 声道数
*/
export function ChuangCustomAudioCaptureConfig() { }
/**
* @description 视频帧参数
* @typedef {object} ChuangVideoFrameParam
* @property {ChuangVideoPixelType} type: 视频像素存储类型
* @property {int} width: 宽
* @property {int} height: 高
* @property {ChuangStreamRotation} rotation: 旋转角度
*/
export function ChuangVideoFrameParam() { }
/**
* @description 视频帧参数
* @typedef {object} ChuangVideoEncodedFrameParam
* @property {bool} isKeyFrame: 是否关键帧
* @property {int} width: 宽
* @property {int} height: 高
* @property {ChuangStreamRotation} rotation: 旋转角度
*/
export function ChuangVideoEncodedFrameParam() { }
/**
* @description 绘制窗口信息
* @typedef {object} ChuangVideoCanvas
* @property {HTMLElement} canvas: canvas
* @property {int} renderMode: 填充模式
* @property {int} mirrorMode: 镜像
*/
export function ChuangVideoCanvas() { }
/**
* @description 音频配置
* @typedef {object} ChuangCustomAudioRenderConfig
* @property {int} sampleRate: 采样率
* @property {int} channel: 声道数
*/
export function ChuangCustomAudioRenderConfig() { }
/**
* @description 视频配置
* @typedef {object} ChuangCustomVideoRenderConfig
* @property {ChuangVideoBufferType} type: 视频数据格式类型
* @property {ChuangVideoPixelType} format: 视频像素存储类型
* @property {bool} enableEngineRender: 是否SDK渲染
*/
export function ChuangCustomVideoRenderConfig() { }
/**
* @description 混流水印信息
* @typedef {object} ChuangMixStreamWatermark
* @property {string} image: 水印图片id
* @property {int} left: 混流画布中水印左上角x坐标
* @property {int} top: 混流画布中水印左上角y坐标
* @property {int} right 混流画布中水印右下角x坐标
* @property {int} bottom 混流画布中水印右下角y坐标
*/
export function ChuangMixStreamWatermark() { }
/**
* @description 混流单个流的信息
* @typedef {object} ChuangMixStreamInfo
* @property {string} streamId 流ID
* @property {int} width: 流宽
* @property {int} height: 流高
* @property {int} zlevel 流所处层
* @property {bool} mixVideo 是否混当前流
* @property {int} srcRect.left 视频源 左
* @property {int} srcRect.top 视频源 上
* @property {int} srcRect.right 视频源 右
* @property {int} srcRect.bottom 视频源 下
* @property {int} dstRect.left 视频显示 左
* @property {int} dstRect.top 视频显示 上
* @property {int} dstRect.right 视频显示 右
* @property {int} dstRect.bottom 视频显示 下
* @property {ChuangVideoRenderMode} renderMode 填充模式
* @property {ChuangStreamRotation} rotation 流方向类型
*/
export function ChuangMixStreamInfo() { }
/**
* @description 混流信息
* @typedef {object} ChuangMixStreamConfig
* @property {string} target rtmp完整推流地址
* @property {int} width: 流宽
* @property {int} height: 流高
* @property {int} videoBitrateKbps 码率
* @property {string} backgroundImage 混流背景图id
* @property {bool} noticeStream 是否将该混流通知给房间内其他用户
* @property {int} nInputStreamCount: 混流总数
* @property {ChuangMixStreamWatermark} watermark 混流水印信息
* @property {ChuangMixStreamInfo} mixStreams: 混流流信息(数组)
*/
export function ChuangMixStreamConfig() { }
/**
* @description 网络测速配置
* @typedef {object} ChuangNetworkSpeedTestConfig
* @property {bool} testUpLink 是否测试上行连接
* @property {int} expectedUpLinkBitrateKbps: 上行连接测速码率,单位Kbps (10Kbps~10000Kbps)
* @property {bool} testDownLink: 是否测试下行连接
* @property {int} exceptedDownLinkBitrateKbps 下行连接测速码率,单位Kbps (10Kbps~10000Kbps)
*/
export function ChuangNetworkSpeedTestConfig() { }
/**
* @description 事件
* @typedef {object} eventtype
* @property {string}'onRoomStateUpdate' 房间状态变化通知 返回(roomId, state, errorCode)
* @property {string}'onRoomStreamUpdate' 房间流状态变化通知 返回(roomId, type, streams)
* @property {string}'onPublishStreamStateUpdate' 推流状态变化通知 返回(streamId, state, errorCode)
* @property {string}'onPublishStreamVideoSizeChanged' 推流宽高变化通知 返回(streamId, width, height)
* @property {string}'onPublishStreamQualityUpdate' 推流质量回调 返回(Infos)
* @property {string}'onCaptureSoundLevelUpdate' 采集音量大小回调 返回(Infos, nStreamCount)
* @property {string}'onPlayStreamQualityUpdate' 播流质量通知 返回(streamId, Infos)
* @property {string}'onPlayStreamStateUpdate' 播流状态回调 返回(streamId, state, errorCode)
* @property {string}'onRemoteSoundLevelUpdate' 播流音量大小回调 返回(Infos, nStreamCount)
* @property {string}'onPlayStreamEvent' 播流回调通知 返回(streamId, event)
* @property {string}'onPlayStreamFirstAudio' 播流收到第一帧音频回调 返回(streamId)
* @property {string}'onPlayStreamFirstVideo' 播流收到第一帧视频回调 返回(streamId)
* @property {string}'onPlayStreamStateChanged' 播流状态改变通知 返回(streamId, state)
* @property {string}'onPlayStreamVideoSizeChanged' 播流宽高改变通知 返回(streamId, width, height)
* @property {string}'onPlayStreamVideoRotationChanged' 播流视频方向旋转改变通知 返回(streamId, rotation)
* @property {string}'onReceiveStreamAttchedMessage' 收到推流附加消息 返回(streamId, msg, messageLen, timestampOffset)
* @property {string}'onNetworkSpeedTestQualityUpdate' 网络测速回调 返回(Infos, type)
* @property {string}'onNetworkTypeChanged' 网络状态变化回调 返回(type)
* @property {string}'onFirstLocalAudioFramePublished' 发送本地首帧音频回调 返回(streamId)
* @property {string}'onFirstLocalVideoFramePublished' 发送本地首帧视频回调 返回(streamId)
* @property {string}'onPlayStreamFirstAudioDecoded' 当前流解码第一帧音频回调 返回(streamId, elapsed)
* @property {string}'onAudioRouteChange' 音频路由变化回调 返回(result)
* @property {string}'onStart' 通知将要开始采集视频帧,收到该回调后向 SDK 发送的视频帧数据才有效 返回(channel)
* @property {string}'onStop' SDK 通知将要停止采集视频帧 返回(channel)
* @property {string}'onEncodedDataTrafficControl' SDK 检测到网络变化,通知开发者需要做流量控制 返回(Infos, channel)
* @property {string}'onVideoNeedKeyFrame' 在外部采集为编码后的264数据时,SDK 检测到网络变化,通知开发者需要强制编码关键帧 返回(channel)
* @property {string}'onRemoteVideoFrameRawData' 远端流外部渲染二进制数据回调 返回(streamId, data, dataLength, Infos)
* @property {string}'onRemoteVideoFrameEncodedData' 远端流外部渲染H264回调 返回(streamId, data, dataLength, Infos, referenceTimeMillisecond)
* @property {string}'onLocalVideoFrameRawData' 本地流外部渲染二进制数据回调 返回(channel, data, dataLength, Infos)
* @property {string}'onMixStreamResult' 混流结果回调 返回(errorCode)
* @property {string}'onAudioMixingCopyData' 在外部采集为编码后的264数据时,SDK 检测到网络变化,通知开发者需要强制编码关键帧 返回(channel, Infos)
*/
export function eventtype() { }