Live555效能優化實踐

2021-08-03 05:39:13 字數 595 閱讀 6355

優化1:同步讀取資料源修改為非同步讀取資料源, framedsource的子類的dogetnextframe函式中不要阻塞等待資料來源, 在無資料時可以重新增加乙個定時器任務,延時再讀取資料。在無資料時增加乙個等待任務:

void myframedsource::dogetnextframe()

.....省略其他正常邏輯

}static void myframedsource::delayreadframe(framedsource *sourc)

tasktoken basictaskscheduler0::scheduledelayedtask(int64_t microseconds,

taskfunc* proc,

void* clientdata)

在live555中,凡是分配定時器的地方,用上述**替換,凡是delete alarmhandler物件的地方,呼叫fpool.free(alarmhandler )即可**記憶體再使用。fpool用乙個無鎖的佇列即可(live555是單執行緒工作模式), 當然如果用stl的deque雙端佇列效率更高。

Live555 直播效能優化

void myframedsource dogetnextframe 省略其他正常邏輯 static void myframedsource delayreadframe framedsource sourc tasktoken basictaskscheduler0 scheduledelayed...

live555原始碼分析 live555大致流程

今天大致分析了下live555的流程,以h264為例子進行的分析.從連線到傳送rtp rtcp資料報。首先分析呢,不能太關注細節,先整體再區域性。在分析的過程中,設計到live555自己封裝的乙個高階類 比如迭代器,雜湊表,而且這2個類在live555中運用的範圍還非常的廣,但是無不例外都是用鍊錶進...

Live555學習筆記

live555原始碼 官網 關於live555編譯 linux編譯 1.進入live555目錄 cd live 2.執行genmakefiles檔案 genmakefiles linux 3.makefile windows編譯 無關於入口函式 標頭檔案位置 無 原始檔位置 mediaserver ...