metartc5_jz源码阅读-yang_push_h264_package_single_nalu2

//通过单一nalu的方式发送视频帧。
int32_t yang_push_h264_package_single_nalu2(YangRtcSession *session,
		YangPushH264Rtp *rtp, YangFrame *videoFrame) {
	int32_t err = Yang_Ok;

	//重置videoRawPacket
	yang_reset_rtpPacket(&rtp->videoRawPacket);

	//设置PayloadType为h264
	rtp->videoRawPacket.header.payload_type = YangH264PayloadType;

	//设置ssrc
	rtp->videoRawPacket.header.ssrc = rtp->videoSsrc;

	//设置帧类型为video
	rtp->videoRawPacket.frame_type = YangFrameTypeVideo;

	//设置sequence
	rtp->videoRawPacket.header.sequence = rtp->videoSeq++;

	//设置timestamp为视频帧的显示时间戳
	rtp->videoRawPacket.header.timestamp = videoFrame->pts;
	rtp->videoRawPacket.header.marker = true;

	//设置payloadType为raw类型。
	rtp->videoRawPacket.payload_type = YangRtspPacketPayloadTypeRaw;

	//设置payload为视频buf
	rtp->videoRawData.payload = rtp->videoBuf;

	//设置videoRawData的size为视频帧的size
	rtp->videoRawData.nb = videoFrame->nb;

	//将视频帧的payload数据拷贝到videoRawData中。
	memcpy(rtp->videoRawData.payload, videoFrame->payload,
			rtp->videoRawData.nb);

	//调用此方法发送视频帧到p2p对端。
	if ((err = yang_push_h264_encodeVideo(session, rtp, &rtp->videoRawPacket))
			!= Yang_Ok) {
		return yang_error_wrap(err, "encode packet");
	}
	return err;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王方帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值