原创 Android中AudioFlinger的基本原理介紹

一,組件圖 component diagram 二,類圖, class diagram 三,序列圖 sequence diagram

原创 Android中AudioFlinger:將AudioTrack從一個device切到另一個device輸出的實現邏輯

目前在調查AudioFlinger,想做到從一個設備輸出到輸出到兩個設備的轉換。面臨以下問題:   1,  某個thread如何改變某個playback線程的輸出route.   根據調查的結果,這個route只支持在同一個設備上的切換,

原创 Linux平臺:一個簡單的TCP6 server的示例代碼(socket)

#include <stdio.h> #include <stdlib.h> #include <errno.h> #include <string.h> #include <sys/types.h> #include <netinet/

原创 解決 repo init時, “gpg: 無法檢查簽名:找不到公鑰”

此問題是由於repo 版本發生變化導致的。 只要執行以下操作,再重新repo init就可以了。(此問題與ssh public key沒有關係) rm -rf  ~/.repoconfig/

原创 PulseAudio中插件module-loopback的latency延遲的計算方法

<pre name="code" class="cpp">1, module-loopback播放時 ,pulse audio基本的插件連接情況如下圖所示 2,module-loopback中latency的計算如下:      a:

原创 PulseAudio 中插件module-loopback的基本分析

1, module-loopback中的類(struct)關係圖 2, module-loopback中基本的數據流向 sequence diagram

原创 算法: 約瑟夫問題(Joseph Problem)的分析

問題描述: n個人(編號由0, 1, ..., n-1)圍成一圈,由編號0的人從1開始報數,報到m的退出,剩下的人繼續從1開始報數,直到圈內只剩餘1人,求勝利者的編號。(n>0, m>0) 分析: 固定m, 視n爲變量。定義F(n)爲:

原创 Android中DRM版權保護機制的研究

一,DRM 類圖 class diagram 二,mediaplayer 與DRM間的類圖關係  class diagram 三,DRM的序列圖 sequence diagram

原创 Android中DRM mobile 1.0的初步介紹

一,類圖 class diagram 二,DRM失敗的處理 2.1, DRM初始化             代碼位置: FileSource::DrmInitialization()     調用堆棧:             Med

原创 Makefile中的幾個調試方法

1,使用info/warning/error增加調試信息 方法1: $(info, "here add the debug info")            但是此不能打印出.mk的行號 方法2: $(warning, "here a

原创 C++ Template 類成員函數取地址

代碼: 測試結果:

原创 C++ Template中的“替換失敗並非錯誤”

在模板中,爲了支持函數模板的重載功能,有個特性,叫做 “替換失敗並非錯誤”。 英文翻譯爲 substiutation failure is not an error.  寫了以下程序,編譯,鏈接,運行均正常。

原创 C++ Template中關於模板類的成員模板函數顯示實例化的問題

寫了如下的代碼,發現下面示例的56行,無法編譯通過(GCC 4.7)。 有哪位同學知道原因麼?

原创 Android中Framework層條件變量(condition)的使用方法

一,引用的頭文件 #include <utils/Condition.h> 二, 變量的定義 三, 主線程中調用wait的示例代碼 四: 其他線程中調用signal的示例代碼

原创 ALSA 中asound.conf 驗證送入播放設備中的數據內容

目的: 驗證送入alsa 播放設備中的數據的有效性. 具體有以下兩個case: 1, 驗證alsa 採集設備的數據內容 2, 驗證送給alsa播放設備的數據內容 方法:  配置 alsa的/etc/asound.conf,並使用als