licode中大小流方案

總體方案圖如下

大小流解決的核心是需要改造oneTomany,改造點如下

  1. publiser增加多個,並且要有角色之分,比如下

Publiser  m_BigPub;

Publishe  m_SmallPub;

需要主要。在下面三個隊列中,處於第一第二隊列的一律用BIg的ssrc 賦值

  1. 增加的subscreber要區分開,三個隊列:大流 小流 大小流

map<string,subscribe>  m_lBigSub;

map<string,subscribe>  m_lSmallSub;

map<string,subscreibe> m_lAllSub;

  1. 修改deliverVideoData_ 僞代碼爲:

 

deliverVideoData(std::shared_ptr<DataPacket> video_packet)

{

   If(video_packe-ssrc==m_BigPub.ssrc)

        m_lBigSub.send();

        m_lAllSub.send()

  

  If(video_packe-ssrc==m_SmallPub.ssrc)

        m_lSmallSub.send();//這裏要主要ssrc的問題,因爲用戶 在大小流之間來回切換,ssrc應該不變

        m_lAllSub.send()

 

}

 

  1. 修改deliverFeedback_函數。僞代碼如下

 

deliverFeedback(std::shared_ptr<DataPacket> fb_packet)

{

  If(packet->ssrc IN m_lSmallSub)//這塊可能不對,不應該用ssrc來表示,應該是能區分訂閱這的一個變量

modifyToSmallSrrc();

feedbackSink_->deliverFeedback(fb_packet);

 

 

 

 

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章