原创 redis源碼淺見之adlist

redis源碼淺見之adlist adlist是redis項目封裝的一個鏈表操作的庫,其官方解釋爲A generic doubly linked list implementation,實際是組裝了一個帶頭節點的雙向非循環鏈表頭,

原创 redis源碼淺見之sds

sds是redis項目封裝一個基於字符串操作的庫,其官方解釋爲:"SDSLib 2.0 -- A C dynamic strings library"。 官方下載源碼後上傳至碼雲Redis,頭文件和源文件連接如下: sds.h sds.c

原创 Android Studio 使用JNI庫

在AS下添加JNI有兩種方式: 第一種:在build.gradle中提那家如下代碼:     sourceSets.main {         jniLibs.srcDirs 'libs'     } 指定jni庫的位置在libs下,只

原创 C的旅程系列之第一個C程序

前一章提到了如何開始學習C語言,這一章將在Linux環境下編寫第一個C語言程序,我使用的Linux系統是Ubuntu14.04.   在編寫程序之前

原创 CORS:解決跨域訪問報“No 'Access-Control-Allow-Origin' header is present on the requested resource.”錯誤

最近客串後端寫個小服務,編程語言爲golang。 前端發送http POST請求後,發現報錯,而後端沒有收到POST請求,反而收到了OPTIONS請求。 經過一番調查發現,當前端發送諸如包含“application/json”的非簡單請求

原创 Java 遍歷List的三種方法

現有List如下,內部有若干個成員, Size存儲有width和height兩個成員變量。 List<Size> l; 1. 常規訪問方式 for(int i = 0; i < l.size(); i++){

原创 x264設置固定I幀問題

最近研究x264,在設定定期I幀的問題上卡了一天時間。 不論怎樣設置,定期I幀總是不生效。     param.i_keyint_max = 30;     param.i_keyint_min = 30; 按理來說,只需要設置i_key

原创 java版kafka producer實現

需求: 1. kafka server已經配置完全,且設定了訪問限制        基於這一點,必須要設定認證,及預先分配的賬號密碼 2. 由於項目開發環境是java,且不允許使用LogStash        基於這一點,必須實現一個j

原创 PCM 單雙聲道轉換

現有PCM數據,要進行如下轉換, 對於16位採樣的PCM來說, 單聲道存儲方式很好理解,一段連續內存,一個個int16_t排排站。以A表示一個int16_t,內存排列如下: AAAAAAAAAAAAAAA 雙聲道的話,L表示左聲道,R表示

原创 golang install 'gopls'

前兩天使用vs code寫golang程序時,突然提示gopls需要更新,沒有梯子的我,很悲催的發現無法正常後取更新,而沒有這個工具的話,vs code的代碼補齊和調轉等功能完全無法使用,難受。沒有辦法只能想想如何手動安裝了。 就決定是你

原创 AGC、ANS、AEC

AGC是自動增益補償功能(Automatic Gain Control),AGC可以自動調麥克風的收音量,使與會者收到一定的音量水平,不會因發言者與

原创 Linux下運行時指定動態庫

  開發程序的過程中,經常會用到一些動態庫,但是動態庫是無法編譯到程序中的,所以安裝程序時可能就需要將動態庫放到默認的路徑下/usr/lib或者/usr/local/lib/ 下等目錄,否則,在運行程序時,就會有類似“libxxx.so找

原创 C/C++ 下如何判斷空指針

今天在寫C++代碼,遇到一個很奇怪的問題,在Android JNI下判斷一個指針是否爲空,但是發現 (NULL == ptr )或者 (nullptr== ptr )表達式均爲真,然而ptr是剛new出來的,也有地址值。 這就很讓人費解了

原创 Opus FEC小結

  前向糾錯也叫前向糾錯碼(Forward Error Correction,簡稱FEC),是增加數據通訊可信度的方法。在單向通訊信道中,一旦錯誤被發現,其接收器將無權再請求傳輸。FEC 是利用數據進行傳輸冗餘信息的方法,當傳輸中出現錯誤

原创 Ubuntu下安裝FFmpeg

FFmpeg官方給了兩種安裝方式。 第一種命令安裝,不需要下載,直接安裝即可。該方式最簡單快捷。 $ sudo add-apt-repository ppa:mc3man/trusty-media $ sudo apt-get upd