sdp在jsepsessiondescription這乙個結構中,下面主要分為sessiondescription和jsepcandidatecollection。本文介紹jsepcandidatecollection。
jsepcandidatecollection在sdp中通過a=candidate,a=rtcp表示,從欄位數量看起來和sessiondescription是不能相提並論的,但是如果看到a=candidate就會發現裡面的結構也是多如牛毛,值得一章專門介紹。
注:參考本文前可以先了解stun,turn,ice的原理
1.1 candidates_:詳見後面第2條
2.1 sdp_mid_:表示media stream的名字,與上一章中sessiondescription的(contentinfo的name,transportinfo的name)一致
2.2 sdp_mline_index_:表示2.1欄位對應的位置
2.3 candidate:詳見後面第3條
3.1 id_:隨機生成,sdp字串中沒有
3.2 component_:1對應rtp,2對應rtcp
3.3 protocol_:支援udp,tcp,ssltcp,tls
3.4 relay_protocol_:
3.5 address_:本機的位址,注意和c=屬性一致(注:candidate有多個,而c屬性只有乙個,裡面有乙個選擇的機制,包含有給每乙個型別設定優先順序,relay的優先順序最高,其次flexive,其次host,最後unknown。優先順序高的會被選擇,而且要注意的是即便設定了c屬性,如果有candidate屬性,也會把candidate屬性的值設入c屬性)
3.6 priority_:優先順序,因為可能有多個candidate,哪個candidate高就先用哪個嘗試,大概演算法就是host優先順序高,其次flexive,最後relay
3.7 username_:就是ice的使用者名稱,和transportdescription中ice_ufrag一樣,而且在username為空時,會設定transportdescription中的值給它
3.8 password_:和3.7同理,代表ice的密碼
3.9 type_:支援local,stun,prflx,relay
3.10 network_name_:webrtc暫時沒有弄這塊
3.11 network_type_:webrtc暫時沒有弄這塊
3.12 generation_:
3.13 foundation_:通過3.3,3.4,3.5,3.9計算crc得到,為了簡單的判斷兩個candidate是否一致,如果兩個foundation一樣,那麼可以只檢視其中乙個的candidate
3.14 related_address_:中轉的ip和埠
3.15 tcptype_:支援active,passive,so
3.16 transport_name_;webrtc暫時沒有弄這塊
3.17 network_id_:
3.18 network_cost_:
3.19 url_:webrtc暫時沒有弄這塊
framebuffer驅動相關結構詳解2010
framebuffer對應的原始檔在linux drivers video 目錄下,總的抽象裝置檔案為fbcon.c,在這個目錄下還有其他各種顯示卡驅動相關的原始檔。framebuffer裝置驅動主要基於如下兩個檔案 1 linux include linux fb.h 2 linux driver...
ubuntu的相關問題 2
7 一般可能是不裝上make的,所以要裝build essential開發工具包 或者 sudo apt get installmake 8 ubuntu不使用rpm,而是deb sudo apt get install alien 可以用alien將rpm檔案轉為deb檔案 9 編譯xsuppli...
與程序相關的檔案結構
8.2.4與程序相關的檔案結構 在具體介紹這幾個結構以前,我們需要解釋一下檔案描述符 開啟的檔案描述 系統開啟檔案表 使用者開啟檔案表的概念以及它們的聯絡。1.檔案物件 在linux中,程序是通過檔案描述符 file descriptors,簡稱fd 而不是檔名來訪問檔案的,檔案描述符實際上是乙個整...