關於開源的RTP jrtplib的使用

2021-09-06 17:14:39 字數 1939 閱讀 1553

session.begindataaccess(); if (session.gotofirstsource()) }

jrtplib為rtp資料報定義了三種接收模式,當中每種接收模式都詳細規定了哪些到達的rtp資料報將會被接受,而哪些到達的rtp資料報將會被拒絕。通過呼叫rtpsession類的setreceivemode()方法能夠設定下列這些接收模式:

① receivemode_all 預設的接收模式,全部到達的rtp資料報都將被接受;

② receivemode_ignoresome  除了某些特定的傳送者之外,全部到達的rtp資料報都將被接受,而被拒絕的傳送者列表能夠通過呼叫addtoignorelist()、clearignorelist()     和deletefromignorelist()方法來進行設定;

③ receivemode_acceptsome  除了某些特定的傳送者之外,全部到達的rtp資料報都將被拒絕,而被接受的傳送者列表能夠通過呼叫addtoacceptlist ()、clearacceptlist ()和eletefromacceptlist方法來進行設定。

4、執行程式

在執行程式之前,我們要知道,這是基於udp協議的資料報服務。我們的example1是在本機上實現的rtp傳輸,而且僅僅有乙個rtpsession物件,所以我們的監聽和接收的port是同乙個,所以此時我們的portbase要和我們增加到rtpsession物件中的client的port一致,如上面我們能夠都設定成6000.可是假設是在兩個執行緒中,我們就要注意了,serverport和客戶port一定不一樣,這也是主要的知識,用的時候要注意,多思考。

1.設定基本引數 rtpsession m_rtpsocket; m_rtpsocket.create(m_sport); m_rtpsocket.settimestampunit(1.0/25.0); m_rtpsocket.setsessionbandwidth(900.0); m_rtpsocket.setmaxpacketsize(65535); m_rtpsocket.setdefaultpayloadtype(0); m_rtpsocket.setdefaultmark(false); m_rtpsocket.setdefaulttimestampincrement(10); 2.傳送 int status = m_rtpsocket.sendpacket(pframe,wsize,1,name,10); 3,接收 int size = 0; socket sockrtp,sockrtcp; struct timeval rttprev = ,rtt,tv; fd_set fdset; bool frist = true; int port = ((crnetvideoctrl*)m_pmainclass)-> m_destport; if(port == -1) stopthread(); rtpsession m_rtpsocket; m_rtpsocket.create(port); m_rtpsocket.setsessionbandwidth(64); m_rtpsocket.getrtpsocket(&sockrtp); m_rtpsocket.getrtcpsocket(&sockrtcp); m_pdecoder = new cvideodecode(); m_pdecoder-> dec_init(1); unsigned char* pbuffer = new unsigned char [320*240*2]; while(!m_bclose) } } else delete pack; } } } if (fd_isset(sockrtcp, &fdset)) if (parent-> m_cansend) srcdat-> flushpackets(); // we don 't need the actual data } srcdat = null; } while (m_rtpsocket.gotonextsource()); } } } if(m_pdecoder) delete m_pdecoder; m_pdecoder = null; delete pbuffer; return 1l;

關於開源軟體的思考

在黑暗森林裡一定要扮豬.作者的錯誤是把產品開源了,開源生態最重要的一點就是不能把一整套離終於使用者太近的東西開源。開源是指的對程式猿開源,而不是使用者。能夠開源乙個技術,不能是乙個軟體。古時候人類開拓疆域。為了獲取很多其它的資源,部族之間互通有無。各自專心做自己的擅長。開源世界也是。你做你的記憶體資...

關於常見開源協議的橫向比較

剛剛看了 我的蛋殼在部落格上摘抄的幾個開源協議。過去也見過類似的介紹協議的文章,也覺得很有必要了解一下這些協議,但是網路上大多都是對各個協議做乙個文字上的單獨介紹,沒有橫向比較,不直觀,起碼我在看過這樣的文章n篇之後依然沒有留下什麼影像。mplbsd apache licence 2.0 gpl 引...

關於目前開源的物聯網框架。

不得不承認 這個alljoyn 框架很酷!不過這個框架模式任然處於試驗期,因為開發者並沒有正確的認識到 開發成本等問題,考慮到家裝裝置,還可區分為明裝和暗裝。而這個專案中提到的 zigbee協議,很明顯是針對於明裝家電。當然 該架構僅僅為乙個模型,實際起來,同樣可以採用其他方式來解決。我在這裡提出乙...