Time of Update: 2018-12-04
網路校正和計算1. 前言校正和計算是NAT功能和內容修改功能的基本功,這些操作進行後都需要修改資料頭中的校正和。2. 16位校正和計算2.1
Time of Update: 2018-12-04
記得兩年前剛開始做RTP/RTCP的時候碰到一個問題,是關於如何計算RTCP中的NTP時間戳記,最近又有人問這個問題,於是就想把它貼出來,讓大家參考,提提建議,交流促進進步。 記得當時有個客戶說用openRTSP(open source ,you can get it from www.live555.com)無法錄製我們送出去的RTP流,於是我也去下了一個,試了發現果然不行,於是就把openRTSP的source
Time of Update: 2018-12-04
1.進程和線程的差別。 線程是指進程內的一個執行單元,也是進程內的可調度實體. 與進程的區別: (1)調度:線程作為調度和分配的基本單位,進程作為擁有資源的基本單位 (2)並發性:不僅進程之間可以並發執行,同一個進程的多個線程之間也可並發執行 (3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但可以訪問隸屬於進程的資源. (4)系統開銷:在建立或撤消進程時,由於系統都要為之分配和回收資源,導致系統的開銷明顯大於建立或撤消線程時的開銷。 2.
Time of Update: 2018-12-04
最近做TI DM365的solution, 發現出來的畫面有抖動,於是就想抓RAW data出來看看是sensor有問題還是encode出了問題,sensor出來的資料是RGB的,通過Previewer後就變成了YUV420SP, 抓了RAW data出來之後用YUVtools一看,整個畫面都是灰色的,感覺只有Y值work了,UV都沒了,於是又去網上download其他的YUV tools, 結果還是一樣,後來發現一般的YUV tools只支援普通的YUV420格式,即YUV420P,
Time of Update: 2018-12-04
PMT結構定義:typedef struct TS_PMT_Stream{ unsigned stream_type : 8; //指示特定PID的節目元素包的類型。該處PID由elementary PID指定 unsigned elementary_PID : 13; //該域指示TS包的PID值。這些TS包含有相關的節目元素 unsigned ES_info_length :
Time of Update: 2018-12-04
Switch VS Router VS
Time of Update: 2018-12-04
sprintf和snprintf這兩個函數的原型估計大家都很熟練了,這裡要說的是這兩個函數在使用時可能會出現的一個問題。 首先來看一段代碼:int main(int argc, char *argv[]){ char buf[100]; memset(buf, 0, sizeof(buf)); snprintf(buf, sizeof(buf), "hello "); snprintf(buf, sizeof(buf), "%stest/n", buf)
Time of Update: 2018-12-04
偷雞機率計算(三張牌):牌面大小比較:炸彈〉同花順〉同花〉順子〉對子〉散牌機率計算:所有可能的情況:C(3,52)=221001). 散牌(1+1+1) n = (C(1,52)*C(1,48)*C(1,44))/(P(3,3))=18304 p = 0.828235294117647058823529411764712). 對子(2+1) n = (C(1,13)*C(2,4)*C(1,48))/(P(2,2))=1872 p = 0.084705882352941176470
Time of Update: 2018-12-04
根據前一篇中各資料的定義及資料結構,對資料進行分別解析如下:TS包頭定義:typedef struct TS_packet_header{ unsigned sync_byte : 8; //同步位元組, 固定為0x47,表示後面的是一個TS分組 unsigned transport_error_indicator : 1; //傳輸誤碼指示符 unsigned
Time of Update: 2018-12-04
線程終止時的清理 最經常出現的情形是資源獨佔鎖的使用:線程為了訪問臨界資源而為其加上鎖,但在訪問過程中被外界取消,如果線程處於響應取消狀態,且採用非同步方式響應,或者在開啟獨佔鎖以前的運行路徑上存在取消點,則該臨界資源將永遠處於鎖定狀態得不到釋放。外界取消操作是不可預見的,因此的確需要一個機制來簡化用於資源釋放的編程。
Time of Update: 2018-12-04
PAT表格定義如下:typedef struct TS_PAT_Program{ unsigned program_number :16; //節目號 unsigned program_map_PID :13; //節目映射表的PID,節目號大於0時對應的PID,每個節目對應一個}TS_PAT_Program;//PAT表結構體typedef struct TS_PAT{ unsigned table_id : 8;
Time of Update: 2018-12-04
說明:此文在IOICN首發,轉載請註明,作者灕江夜話。著作權所有,並保留一切權利。 個別朋友對 ROM 中的個性元素有些想法,在此對這些地方如何修改做一個說明。如有不滿意的地方請自行修改。 ROM是一個個人化的涉及到版本資訊的內容,我個人認為大家應該尊重,畢竟每個ROM都是耗費心血做出來的。同時,保留相應的版本資訊,在彙報 BUG 等方面還是有益處的。當然,不喜歡其中的內容完全可以自己替換。做ROM是個眾口難調的事情,不可能人人都滿意。想要自己完全滿意,只能 定製
Time of Update: 2018-12-04
RTP支援傳送不同codec的steaming,不同codec的clock rate的也不一樣,不同的media之間需要依靠RTCP進行同步。這裡簡單介紹一下他們的機制。在每個RTCP SR包中對應有一個RTP時間和一個NTP時間,它表達的意思很明確,那就是這個RTP時間對應的絕對時間, 不同media的RTP時間儘管不同,但可以通過NTP時間映射到同一個時間軸上,從而實現同步。如所示,RTP session 1 send H264 使用90,000HZ,而RTP session 2 send
Time of Update: 2018-12-04
組播地址的劃分整個 IP 組播地址的空間劃分如所示。 其中: 224.0.0.0 到 224.0.0.255 位址範圍被 IANA 預留,地址 224.0.0.0 保留不做分配,其它地址供路由協議及拓撲尋找和維護協議使用。該範圍內的地址屬於局部範疇,不論存留時間欄位(TTL)值是多少,都不會被路由器轉寄; 224.0.1.0 到 238.255.255.255 位址範圍作為使用者組播地址,在全網範圍內有效。其中233/8 為 GLOP 地址。GLOP
Time of Update: 2018-12-04
一:臨界區 臨界區的出現形式是一小段代碼,這一小段程式碼封裝含互斥資源。臨界區也有一定的局限性:它只能用於同步單個進程中的線程。 使用臨界區的基本步驟如下: (1)分配一個CRItICAL_SECTION結構。這一結構必須是全域的,因為它必須保障不同的線程來訪問。 (2)初始化臨界區。 (3)在不同線程中使用臨界區。 (4)程式結束時清除CRItICAL_SECTION變數。二:互斥量
Time of Update: 2018-12-04
梭哈機率計算(五張牌):牌面大小比較:同花順〉四條〉葫蘆〉同花〉順子〉3條〉〉2對〉對子〉散牌機率計算:所有可能的情況:C(5,52)=25989601). 散牌(1+1+1+1+1) n = (C(1,52)*C(1,48)*C(1,44)*C(1,40)*C(1,36))/(P(5,5))=1317888 p = 0.507082833133253301320528211284512). 對子(2+1+1+1) n = (C(1,13)*C(2,4)*C(1,48)*C(1,44
Time of Update: 2018-12-04
DML語句(insert,update ,delete,select)--插入語句select * from student;--單獨的插入一條語句insert into student(sno,sname,sex,address,cardid) values(2,'張三','男','長沙','12313')update student set
Time of Update: 2018-12-04
SIP Client起來後第一件事應該是到伺服器去註冊,這樣當有撥打電話時伺服器才能正確的定位 ,註冊設計到一個認證的過程。 RFC2617定義了兩種加密的方式,一種是BASE64的,另一種是MD5加密,大多SIP協議棧都採用的後者,可能是出於安全的考慮,因為MD5是無法復原的。 對於MD5的方式,RFC2617有提供一個example的實現,有原始碼,但奇怪的是我將它的原始碼複製下來,運行後發現,計算RFC2617中的例子時得到的MD5值是對的,但我自己架的3CX
Time of Update: 2018-12-04
H.264的一個重要特色就是採用UVLC(Universal Variable Length coding, 統一可變長編碼)編碼,提高了編碼效率。 UVLC編碼中有一種編碼方式就是指數哥倫布編碼。程式實現該編碼時需要計算編碼長度len及其value,下面分別對無符號和有符號兩種指數哥倫布編碼進行分析。 設編碼值為code_val。 static const int i_size0_255[256] = { 1,1
Time of Update: 2018-12-04
javascript的URL編碼和解碼javascript的URL編碼和解碼 轉自:http://jiake0504.javaeye.com/blog/198048在使用url進行參數傳遞時,經常會傳遞一些中文名的參數或URL地址,在幕後處理時會發生轉換錯誤。在有些傳遞頁面使用GB2312,而在接收頁面使用UTF8,這樣接收到的參數就可能會與原來發生不一致。使用伺服器端的urlEncode 函數編碼的URL,與使用用戶端javascript的encodeURI函數編碼的URL,結果就不一樣。