rtsp的拖放和快放、慢放都是先pause,再play,根據play訊息包中的range和scale引數來實現。
對應到live555中,pause時呼叫sendpausecommand函式。
play時呼叫unsigned sendplaycommand(mediasubsession& subsession, responsehandler* responsehandler,double start = 0.0f, double end = -1.0f, float scale = 1.0f, authenticator*authenticator = null),在該函式中可以設定start,end(對應range,以秒為單位)和scale(對應快慢放)。
rtsp客戶端對於每個收到的rtp資料報,可以根據時間戳呼叫
該函式的計算公式為:playstarttime+(currnpt-startnpt)*scale
playstarttime:從收到伺服器play應答中的range域中提取。
currnpt:當前rtp包的時間戳
startnpt:play後收到的第乙個資料報的npt。
rtspserver中的rtp包時間戳實現:
每收到乙個play請求後(seek和resume的play請求同樣如此),取當前時間作為時間戳。以後每個資料報的時間戳計算公式為:play後第乙個包的時間戳+當前包與第乙個包在檔案中的相對時間間隔。
Sql Server 幾個時間計算方法
下面的引數都是傳入乙個日期,試驗時可用getdate 1 求當月第一天 select date day date 1 2 求下月第一天 select dateadd month,1,date day date 1 就是在當月第一天的基礎上 1月 3 求當月最後一天 select dateadd mo...
ios 計算方法執行的時間
在ios開發中,有時我們需要考慮方法執行的時間來做優化,比方查詢資料庫的方法 需要知道查詢資料的時間 具體的計算方法如下 1 新建乙個檔案 calculateruntime.h inte ce calculateruntime nsobject cgfloat bunrtimeblock void ...
時間複雜度計算方法
o 1 constant complexity constant 常數複雜度 o log n 對數複雜度 o n 線性時間複雜度 o n 2 平方 o n 3 立方 o 2 n 指數 o n 階乘 隨著現在儲存空間的便宜,很多情況下,我們是願意用空間複雜度來換取時間複雜度的,因為記憶體,磁碟等這些和...