原创 WebRTC:下載與編譯Android版本的WebRTC(M66)

    WebRTC是Google公司開源的一套免費的網頁實時音視頻通信的解決方案,可以說性能非常強大。可以在Google WebRTC網站https://webrtc.org上下載並使用。 源碼 下載     源碼下載需要一套工具,因爲

原创 Android : C++調用Java

轉載請標明出處:https://blog.csdn.net/qq_29621351/article/details/79870319     通過這段時間接觸JNI的過程,覺得JNI裏面的坑還是挺多的,有的地方理解的也不是很周到,如果發現

原创 WebRTC :NetEQ幾種數據緩衝區的代碼實現

      WebRTC音頻引擎NetEQ在處理音頻數據時,主要用到了4塊內存區域用於暫存處理過程中間的臨時數據,分別是抖動緩衝區,解碼緩衝區,DSP算法緩衝區和語音緩衝區。       抖動緩衝區用於暫存網絡中到來的未解碼的音頻數據包,

原创 C/C++:std::function 和 std::bind 以及佔位符 std::placeholders::_n 的使用

頭文件:<functional> std::function<...>        std::function的實例可以對任何能夠調用的目標實體進行封裝調用,這些目標實體包括普通函數、lambda表達式、函數指針、仿函數、類的普通成員函

原创 WebRTC:如何從WebRTC中提取出音頻QoS代碼(Windows下並編譯成dll庫文件)

轉載請註明出處:https://blog.csdn.net/qq_29621351/article/details/80991615 WebRTC版本:M66        WebRTC的語音QoS機制幾乎可以說是行業的標杆,其實現的方式

原创 WebRTC:如何編譯Windows版本的WebRTC(M66)

我主要做安卓上的WebRTC,然而爲了讀懂源碼,不得不使用PC版本來調試源碼。so...   環境: Windows 10,Visual Studio 2017(企業版),Python,depot_tools VS 2017下載器鏈接 h

原创 OpenGL ES:渲染管線

      頂點着色器     頂點着色器是一個可編程的處理單元 執行頂點的變換(透視矩陣)、光照、材質的應用等與計算等頂點的相關操作 每個頂點執行一次頂點着色器 OpenGL ES的工作流程爲首先將原始的頂點幾何信息及其他屬性傳送到頂

原创 OpenGL ES:紋理參數設置

        在使用OpenGL ES渲染視頻流時,需要將圖像以紋理的方式送入渲染,這個過程需要設置紋理的相關參數,包括紋理的拉伸方式和紋理的過濾方式。OpenGL ES設置紋理參數的函數是 glTexParameterx( x 可以是

原创 音視頻基礎:RTP/RTCP協議

RTP協議       RFC3550定義實時傳輸協議RTP和它的控制協議RTCP。RTP協議是Internet上針對流媒體傳輸的基礎協議,該協議詳細說明在互聯網上傳輸音視頻的標準數據包格式。RTP本身只保證實時數據的傳輸,並不能提供可靠

原创 C/C++:lambda

一篇極好的文章,建議直接轉到 https://shaharmike.com/cpp/lambdas-and-functions/ 然後...再多說一點,lambda表達式只要沒有最後表示執行的括號,其實就是一個對象,如下 int mai

原创 OpenGL ES:理解VBO和VAO

        VBO(Vertex Buffer Object)頂點緩衝區對象,是OpenGL ES 2.0之後一個可使用的功能。表示存在於顯存中的一個對象,用於存儲頂點座標、紋理座標等相關信息。如果不使用VBO則是將頂點、紋理座標等數

原创 C/C++:繼承基類模版之後的友元聲明

       這段代碼中如果不將繼承的基類模版聲明爲友元類就會出現編譯錯誤,因爲基類函數調用了子類的保護(也可以是私有)構造函數 template <typename T> class Base { public: static

原创 C/C++:用ifstream/FILE重複讀取同一個文件

       在音頻的採集編碼發送端,用 std::ifstream 將採集到的原始數據、前處理後的pcm數據或編碼後的RTP數據包替換掉,就可以指定音頻的輸入源,在特定的輸入源之下衡量音頻傳輸/處理的效果。 假如要替換pcm原始音頻數據

原创 C/C++: Pure virtual function called! 錯誤解析

       瞭解這個錯誤的原因,首先要知道 C++對象 在構造和析構時,都做了什麼事情?首先要說明這種情況是在 C++基類包含純虛函數以及虛析構函數的時候出現的。 那麼,C++構造函數都做了什麼事情呢? 第一步:構造最頂層的基類部分  

原创 Android:OpenSLES採集和渲染的選項設置

轉載請標明原創:https://blog.csdn.net/qq_29621351/article/details/94562600        在Android應用程序中採用NDK原生的OpenSLES進行聲音的播放是一個不錯的選擇(