VideoEncodedImageSender 类

  • Go

更新时间不可用

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: 方法调用失败。