VideoEncodedImageSender 类
VideoEncodedImageSender
类
NewVideoEncodedImageSender
Go
func (mediaNodeFactory *MediaNodeFactory) NewVideoEncodedImageSender() *VideoEncodedImageSender {
sender := C.agora_media_node_factory_create_video_encoded_image_sender(mediaNodeFactory.cFactory)
if sender == nil {
return nil
}
return &VideoEncodedImageSender{
cSender: sender,
}
}
VideoEncodedImageSender
对象,可用于 NewCustomVideoTrackEncoded
方法。
返回值
VideoEncodedImageSender
对象:方法调用成功。nil
: 方法调用失败。
SendEncodedVideoImage
Go
func (sender *VideoEncodedImageSender) SendEncodedVideoImage(payload []byte, frameInfo *EncodedVideoFrameInfo) int {
cData := C.CBytes(payload)
defer C.free(cData)
cFrameInfo := &C.struct__encoded_video_frame_info{
codec_type: C.int(frameInfo.CodecType),
width: C.int(frameInfo.Width),
height: C.int(frameInfo.Height),
frames_per_second: C.int(frameInfo.FramesPerSecond),
frame_type: C.int(frameInfo.FrameType),
rotation: C.int(frameInfo.Rotation),
track_id: C.int(frameInfo.TrackId),
capture_time_ms: C.int64_t(frameInfo.CaptureTimeMs),
decode_time_ms: C.int64_t(frameInfo.DecodeTimeMs),
uid: C.uint(frameInfo.Uid),
stream_type: C.int(frameInfo.StreamType),
}
return int(C.agora_video_encoded_image_sender_send(sender.cSender, (*C.uint8_t)(cData), C.uint32_t(len(payload)), cFrameInfo))
}
参数
参数 | 描述 |
---|---|
payload | 视频缓冲区。 |
frameInfo | 已编码视频帧信息:详见 EncodedVideoFrameInfo 。 |
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。