我是靠谱客的博主 昏睡红牛,最近开发中收集的这篇文章主要介绍mediasoup源码分析(六)数据分发 Transport 到 Router 、Consumer,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、Tansport 转发到Producer

Transport收到数据packet后,会解析出packet中所带的ssrc字段,然后基于ssrc找到该数据的Producer。

Transport::ReceiveRtpPacket
{
	// Get the associated Producer.
	RTC::Producer* producer = this->rtpListener.GetProducer(packet);//基于包中的ssrc选出Producer
}

Produer也是基于ssrc找到RtpStreamRecv

//生产者接收到rtp包,数据发送者类
Producer::ReceiveRtpPacketResult Producer::ReceiveRtpPacket(RTC::RtpPacket* packet)
{
	// Count number of RTP streams.  基于ssrc获取与该包相关的流管理类RTC::RtpStreamRecv
		auto numRtpStreamsBefore = this->mapSsrcRtpStream.size();

		auto* rtpStream = GetRtpStream(packet);
		// Media packet. 判断接收包和与之关联的流的SSRC是否相等,即得保证该包属于该流
		if (packet->GetSsrc() == rtpStream->GetSsrc())
		{
			result = ReceiveRtpPacketResult::MEDIA;

			// Process the packet.
			if (!rtpStream->ReceivePacket(packet))
			{

			}
		}
	this->listener->OnProducerRtpPacketRec

最后

以上就是昏睡红牛为你收集整理的mediasoup源码分析(六)数据分发 Transport 到 Router 、Consumer的全部内容,希望文章能够帮你解决mediasoup源码分析(六)数据分发 Transport 到 Router 、Consumer所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部